AWS Cloud Map を使用する - AWS Cloud Map

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS Cloud Map を使用する

AWS Cloud Map は、論理名をアプリケーションのリソースにマッピングするために使用できる管理ソリューションです。また、AWS SDK、RESTful API 呼び出し、または DNS クエリのいずれかを使用してアプリケーションがリソースを検出するのにも役立ちます。AWS Cloud Map は、Amazon DynamoDB (DynamoDB) テーブル、Amazon Simple Queue Service (Amazon SQS) キュー、または Amazon Elastic Compute Cloud(Amazon EC2)インスタンスまたは Amazon Elastic Container Service (Amazon ECS) タスクを使用して構築された高レベルのアプリケーションサービスなどの正常なリソースのみを提供します。

AWS Cloud Map の使用方法に関する概要

AWS Cloud Map の使用方法に関する概要は次のとおりです:

  1. 名前空間 (サービスの論理グループ) を作成します。名前空間を作成する際、アプリケーションでインスタンスの検出に使用する名前を指定します。また、AWS Cloud Map に登録するサービスインスタンスを検出する方法を指定します。この際、API コールまたは DNS クエリを使用します。

    詳細については、次のトピックを参照してください。

    パブリックまたはプライベートの DNS 名前空間を作成すると、名前空間と同じ名前を持つ Amazon Route 53 のパブリックまたはプライベートのホストゾーンが AWS Cloud Map によって自動的に作成されます。パブリックまたはプライベートの DNS 名前空間を使用する場合でも、AWS Cloud Map の DiscoverInstances リクエストを使用してインスタンスを検出することができます。

    AWS Cloud MapAPIリクエストを送信できるエンドポイントのリストについては、Amazon Web Services 全般のリファレンスの「AWSリージョンとエンドポイント」の章のAWS Cloud Mapを参照のこと。

  2. パブリック DNS 名前空間を作成した場合は、次のステップを実行して、ドメイン登録用のネームサーバーを、名前空間作成時に AWS Cloud Map によって作成された Route 53 ホストゾーンのネームサーバーに変更します。

    1. パブリック DNS 名前空間と同じ名前のドメインを登録済みの場合は、ステップ 2b に進みます。

      この名前空間と同じ名前のドメインをまだ登録していない場合は、ドメインを登録します。ドメイン登録に Route 53 を使用する場合は、、Amazon Route 53 デベロッパーガイド の「新しいドメインを登録する」を参照してください。ステップ 3 に進みます。

    2. 名前空間を作成し、名前空間 ID を取得した際に返った OperationId を使用します。詳細については、「GetOperation」を参照してください。

      注記

      プログラムによる方法を使用してこれらのステップを実行する場合は、プロセスの後半でもこの名前空間 ID を使用してサービスを作成します。

    3. ステップ 2b で取得した名前空間 ID を使用して、AWS Cloud Map によって作成された Route 53 ホストゾーンの ID を取得します。詳細については、AWS Cloud Map API リファレンスの「GetNamespace」を参照してください。

    4. ステップ 2c で取得したホストゾーン ID を使用して、Route 53 でホストゾーンに割り当てられたネームサーバーの名前を取得します。詳細については、「パブリックホストゾーンに対するネームサーバーの取得」を参照してください。

    5. ドメインに割り当てられているネームサーバーを変更します。ドメインが Route 53 に登録されている場合は、詳細について「ドメインのネームサーバーおよびグル―レコードを追加または変更する」を参照してください。

  3. サービスを作成します。このサービスには、アプリケーションのリソースへのアクセス方法を識別するサービスインスタンス (例: ウェブサーバー、DynamoDB テーブル、Amazon S3 バケット) が含まれます。

    ステップ 1 でパブリックまたはプライベートの DNS 名前空間を作成した場合、サービスで指定する名前は、ステップ 1 で AWS Cloud Map によって自動的に作成された Route 53 のパブリックまたはプライベートのホストゾーンのレコード名の一部になります。次のステップでインスタンスを登録すると、AWS Cloud Map によってレコードがホストゾーンに作成されます。レコード名は、サービスの名前 (例: backend) と名前空間の名前 (例: example.com) を組み合わせたもの backend.example.com になります。

    サービスを作成する際、サービスインスタンスで指定するリソースの状態を確認するかどうかを選択することもできます。

    • ヘルスチェックを設定しない場合は、対応するリソースの状態にかかわらず、AWS Cloud Map または Route 53 によりサービスインスタンスが返されます。

    • Route 53 ヘルスチェック (パブリック DNS 名前空間の場合のみ) を選択した場合は、AWS Cloud Map によって自動的に Route 53 ヘルスチェックが作成され、対応する Route 53 レコードと関連付けられます。Route 53 は、正常なリソースのレコードのみを使用して DNS クエリに応答します。

    • カスタムのヘルスチェックを選択する場合は、サードパーティーアプリケーションでリソースの状態を判断します。サードパーティーのヘルスチェックの結果に基づき、UpdateInstanceCustomHealthStatus リクエストを AWS Cloud Map に送信して、サービスインスタンスのステータスを更新します。

    ヘルスチェックを構成する場合、AWS Cloud Map または Route53 は、DiscoverInstances リクエストまたは DNS クエリに応答して、正常なリソースのサービスインスタンスのみを返します。

    詳細については、次のトピックを参照してください。

  4. 1 つ以上のサービスインスタンスを登録します。各サービスインスタンスには、アプリケーションの 1 つのリソースにアクセスする方法に関する情報が含まれます。

    詳細については、次のトピックを参照してください。

  5. アプリケーションを記述し、AWS Cloud Map の DiscoverInstances API アクション、または DNS クエリを使用してインスタンスを検出します。

    • アプリケーションで DiscoverInstances を使用している場合は、AWS Cloud Map によって、指定された条件に合う利用可能なインスタンスに関する情報が返されます。

    • アプリケーションで DNS クエリを使用している場合は、1 つ以上のレコードが Route 53 により返されます。

    サービスの作成時にヘルスチェックの設定を指定した場合は、AWS Cloud Map または Route 53 により、ヘルスインスタンスの値のみが返されます。

  6. リソースを使用して停止する場合は、対応するサービスインスタンスを登録解除します。関連する Route 53 レコードおよびヘルスチェックが AWS Cloud Map によって削除されます (存在する場合)。

    詳細については、次のトピックを参照してください。

  7. サービスおよび名前空間が不要になった場合は、削除することができます。次の点に注意してください。

    • サービスを削除する前に、サービスを使用して登録されたインスタンスはすべて、登録を解除する必要があります。

    • 名前空間を削除する前に、名前空間に作成したサービスはすべて削除する必要があります。

    詳細については、次のトピックを参照してください。