マイクロサービス
API はマイクロサービスの玄関口です。つまり、API は一連のプログラムインターフェイス (通常は REST
マイクロサービスの実装
AWS は、マイクロサービスの開発をサポートするための統合された構成ブロックを備えています。2 つの一般的なアプローチは、AWS Lambda
AWS Lambda を使用すると、コードをアップロードするだけで、高可用性を維持しながら実装を実行およびスケールして実際の需要曲線を満たすために必要なすべてのことを Lambda が引き受けます。インフラストラクチャの管理は不要です。Lambda は数種類のプログラミング言語をサポートしており、AWS の他のサービスからトリガーすることも、任意のウェブアプリケーションやモバイルアプリケーションから直接呼び出すこともできます。AWS Lambda を利用する最大のメリットの 1 つが、迅速に対応できるという点です。AWS がセキュリティとスケーリングを管理するので、ユーザーはビジネスロジックに集中できます。Lambda の自律的なアプローチによって、スケーラブルなプラットフォームが実現します。
デプロイの運用作業を低減する一般的な方法は、コンテナベースのデプロイです。Docker
AWS Fargate は、コンテナ向けサーバーレスコンピューティングエンジンであり、Amazon ECS および Amazon EKS の両方と連携します。Fargate では、コンテナアプリケーションに対して十分なコンピューティングリソースのプロビジョニングを心配する必要はなくなります。Fargate では、何万ものコンテナを起動して、簡単にスケーリングし、最もミッションクリティカルなアプリケーションを実行できます。
Amazon ECS は、タスクを配置および終了する方法をカスタマイズするためのコンテナ配置戦略と制約事項をサポートしています。タスク配置の制約事項とは、タスクを配置する際に考慮するルールを指します。コンテナインスタンスに属性 (基本的にキーと値のペア) を関連付けた後で、制約事項を使用して、これらの属性に基づいてタスクを配置できます。例えば、制約事項を使用して、インスタンスタイプやインスタンス機能 (GPU を使用するインスタンスなど) に基づいて特定のマイクロサービスを配置できます。
Amazon EKS は、オープンソース Kubernetes ソフトウェアの最新バージョンを実行します。これにより、ユーザーは Kubernetes コミュニティのすべての既存のプラグインとツールを使用できます。Amazon EKS で実行されるアプリケーションは、オンプレミスのデータセンターで実行されるものであれ、パブリッククラウドで実行されるものであれ、標準的な Kubernetes 環境で実行されるアプリケーションと完全な互換性があります。Amazon EKS では IAM と Kubernetes を統合しているため、IAM エンティティを Kubernetes のネイティブ認証システムに登録できます。Kubernetes コントロールプレーンで認証するための認証情報を手動で設定する必要はありません。IAM 統合により、IAM を使用してコントロールプレーン自体で直接認証し、Kubernetes コントロールプレーンのパブリックエンドポイントにきめ細かくアクセスできるようになります。
Amazon ECS と Amazon EKS で使用する Docker イメージは、Amazon Elastic Container Registry
継続的インテグレーションと継続的デリバリー (CI/CD) はベストプラクティスであり、システムの安定性とセキュリティを維持しながら、ソフトウェアを迅速に変更できるようにする DevOps イニシアチブの重要な部分です。ただし、このホワイトペーパーでは対象外です。詳細については、「AWS での継続的インテグレーションと継続的デリバリーの実践」ホワイトペーパーを参照してください。
プライベートリンク
AWS PrivateLink
プライベートリンクは、マイクロサービスアーキテクチャの分離とセキュリティを強化する優れた方法です。例えば、マイクロサービスを完全に独立した VPC にデプロイして、ロードバランサーを前に配置し、AWS PrivateLink エンドポイントを介して他のマイクロサービスに公開できます。このセットアップでは、AWS PrivateLink を使用することで、マイクロサービスとの間で送受信されるネットワークトラフィックがパブリックインターネットを通過することはありません。このような分離のユースケースの 1 つとして、PCI、HIPPA、EU/US Privacy Shield などの機密データを扱うサービスに対する規制コンプライアンスがあります。さらに、AWS PrivateLink を使用すると、ファイアウォールルール、パス定義、またはルートテーブルを必要とせずに、複数の異なるアカウントや Amazon VPC をまたいでマイクロサービスを接続できるため、ネットワーク管理が簡素化されます。PrivateLink を利用することで、Software as a Service (SaaS) プロバイダーや ISV は、運用を完全に分離してアクセスをセキュリティで保護した、マイクロサービスベースのソリューションも提供できます。