投稿日: Nov 28, 2018

AWS FargateAmazon Elastic Container Service for Kubernetes (EKS)Amazon Elastic Container Service (ECS) のアプリケーションを AWS Cloud Map と統合できるようになりました。これにより、コンテナ化されたサービス同士が簡単に互いを検出し、相互接続できるようになります。AWS Cloud Map は、クラウドリソースを検出するサービスです。Cloud Map では、アプリケーションリソースのカスタム名を定義して、動的に変化するこれらのリソースの更新された場所を管理できます。ウェブサービスは必ず最新のリソースのロケーションを検出するため、アプリケーションの可用性が高まります。 

これまでは、ECS サービスディスカバリを使用して IP アドレスやポートなどのサービスエンドポイント情報を検出できました。このアプローチでは、DNS を使用した検出のみがサポートされ、使用は簡単でした。しかし、これらのサービスの相互接続方法の管理は限定的なもので、クライアント側の古いデータのキャッシュ、解決済みのエンドポイント間のロードバランシング、伝播遅延の処理などの問題の管理が難しいことがわかりました。Amazon DynamoDB テーブルや Amazon S3 バケットなどの AWS サービス間で、サービスの検出方法を一元管理するためにこのアプローチを使用することもできませんでした。

現在は Cloud Map を使用して、サービス同士の検出方法と接続方法を定義できるようになりました。アプリケーションコード内の依存サービスと、サービスに関連付けられたメタデータのフィルターに直接クエリを実行することができるため、サービスの相互接続方法の定義に、より一層のコントロールと柔軟性が得られます。Cloud Map API を使用して、任意の AWS リソースをサービスに関連付けられたメタデータとしてマップし、ECS と Fargate で実行中のサービスからクエリを実行できるため、他の AWS サービスに接続するために必要な設定を統一された方法で保存できます。さらに、オープンソースの Kubernetes のコネクタである ExternalDNS に Cloud Map プロバイダーを作成しました。これにより自動的に、Amazon EKS サービスの起動時に内部のサービスロケーションを AWS Cloud Map サービスレジストリに伝播し、終了時にそれらを削除します。その後すべての EKS サービスは、EKS のすべてのコンテナワークロードに統合されたサービスのレジストリを提供する AWS Cloud Map を通して検出可能になります。


Cloud Map についての詳細は、製品ページまたはブログをご覧ください。Fargate、EKS、ECS と Cloud Map の統合方法の詳細については、ドキュメントを参照してください。