AWS Cloud Map とは
AWS Cloud Map は、クラウドリソース検出サービスです。Cloud Map ではアプリケーションリソースにカスタム名を付けることができ、これらの動的に変化するリソースの場所を自動的に更新します。アプリケーションがそのリソースの最新の場所を常に検出するため、アプリケーションの可用性が向上します。
Cloud Map を使用する理由
モダンアプリケーションは一般的に、API を通じてアクセス可能な、特定の機能を実行する複数のサービスから構成されています。各サービスは、データベース、キュー、オブジェクトストア、カスタマー定義のマイクロサービスといったさまざまな他のリソースと対話をしますが、機能するためには、依存しているインフラストラクチャリソースすべての場所を見つけることができなければなりません。
Cloud Map により、データベース、キュー、マイクロサービス、カスタム名を持つその他クラウドリソースなどのアプリケーションリソースを登録できます。その後、Cloud Map はリソースの状態を継続的にチェックし、その場所が最新であることを確認します。そして、アプリケーションのリソースは、アプリケーションバージョンとデプロイ環境に基づき、必要な実際のリソースの場所をレジストリにクエリできます。
Amazon Route 53 Auto Naming と AWS Cloud Map にはどのような違いがありますか?
2017 年 12 月 5 日にリリースされた Amazon Route 53 Auto Naming は、DNS およびサポートされている IP ベースのリソースでのみ、サービス名の管理を自動化します。AWS Cloud Map は、IP、URL、および ARN によって表されるリソース用のサービスレジストリを提供することで Auto Naming API の機能を拡張し、変更が迅速に適用される API ベースのサービス検出メカニズムと、属性を使用して検出されたリソースのセットを絞り込む機能を提供します。Amazon Route 53 Auto Naming の既存のすべてのリソースは、自動的に AWS Cloud Map にアップグレードされ、API ベースの検出で使用可能になります。
名前空間とは
名前空間は AWS Cloud Map の論理エンティティであり、サービスのグループ化と、パブリック (パブリックインターネットからアクセス可能) またはプライベート (特定の VPC でのみ表示) のいずれかの一般的なレベルの可視性の適用を可能にします。アプリケーションが名前空間のレベルでサービスを検出する方法を定義するには、AWS SDK および API を介した検出を許可するか、DNS を介したオプションの検出を有効にします。
AWS Cloud Map では「サービス」と「リソース」にどのような違いがありますか?
AWS Cloud Map では、サービスはアプリケーションコンポーネントであり、請求書の作成やサムネイル画像のサイズ変更などの特定の目的を果たします。デプロイされたサービスは、EC2 インスタンス、ECS タスク、DynamoDB テーブル、SQS キュー、Lambda 関数など、何らかのインフラストラクチャ上で実行されます。AWS Cloud Map では、これらがリソースです。サービスは、リソースを 1 つしか必要としないこともあれば、スケールに応じて動的に入れ替わる何千ものリソースで実行されていることもあります。
DNS 経由と HTTPS 経由では AWS Cloud Map が返す回答にどのような違いがありますか?
DNS 経由の場合、AWS Cloud Map は、IP アドレスまたは IP:ポートの組み合わせ (IPv4 または IPv6 のいずれかを使用) で構成されるリソースの場所を提供します。AWS Cloud Map は、API ベースの検出を使用して、それらのすべてのタイプの場所と、URL や ARN を返すことができます。IP または IP:ポートの場所があるリソースの場合は、DNS、API、またはその両方を経由してクエリしたときに AWS Cloud Map がリソースを返す必要があるかどうかを指定できます。URL または ARN の場所があるリソースの場合、アプリケーションは API を使用してクエリを実行する必要があります。クライアントが API 経由で AWS Cloud Map のクエリを実行する場合は、属性を使用して結果を絞り込むことができます。
AWS Cloud Map は IP ベースのリソースのヘルスチェックをどのように行うのですか?
AWS Cloud Map にリソースを登録する際は、オプションで、ヘルスチェックのタイプ (定期的またはパスベース)、チェックするオプションのパス、リソースを異常と判断するための再試行回数などの、ヘルスチェックの設定を指定できます。IP ベースのリソースを登録するとすぐに、AWS Cloud Map が自動的に、サービスでの設定に基づいてこれらのリソースのヘルスチェックをプロビジョニングします。また、AWS Cloud Map は、/describeHealthStatus API を使用してリソースのヘルス情報も利用可能にします。
AWS Cloud Map は VPC 内のリソースと連携しますか?
はい。AWS Cloud Map では、VPC にリソースを登録して検出可能にすることができます。また、AWS Cloud Map には、VPC の内外のリソースの登録と登録解除に使用できるリージョン API も含まれています。
Amazon Elastic Container Service (ECS) との統合はどのような仕組みですか?
ECS サービスを作成する際は、サービスのカスタム名、属性、およびオプションのヘルスチェック設定を指定することで、サービス検出を有効にすることを選択できます。ECS がサービス用のタスクを起動すると、タスクは AWS Cloud Map サービスレジストリのリソースとして登録され、タスクは確実に、API コールと DNS クエリを使用して検出可能になります。
Amazon Elastic Container Service for Kubernetes (EKS) との統合はどのような仕組みですか?
オープンソースの Kubernetes のコネクタである ExternalDNS に Cloud Map プロバイダーを作成しました。これにより自動的に、Amazon EKS サービスの起動時に内部のサービスロケーションを AWS Cloud Map サービスレジストリに伝播し、終了時にそれらを削除します。その後すべての EKS サービスは、EKS のすべてのコンテナワークロードに統合されたサービスのレジストリを提供する AWS Cloud Map を通して検出可能になります。