AWS Cloud Map 名前空間の作成 - AWS Cloud Map

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

AWS Cloud Map 名前空間の作成

名前空間を作成するには、次の手順を使用します。

AWS Management Console
  1. にサインイン AWS Management Console し、https://console.aws.amazon.com/cloudmap/ で AWS Cloud Map コンソールを開きます。

  2. [名前空間の作成] を選択します。

  3. [名前空間の作成] ページに、適切な値を入力します。詳細については、「名前空間の作成時に指定する値」を参照してください。

  4. [名前空間の作成] を選択します。

AWS CLI
  • 希望するインスタンスディスカバリタイプのコマンドで名前空間を作成します(red の値は独自の値に置換):

    • create-http-namespace を使用して HTTP 名前空間を作成します。HTTP 名前空間を使用して登録したサービスインスタンスは、DiscoverInstances リクエストを使用して検出できますが、DNS を使用して検出することはできません。

      aws servicediscovery create-http-namespace --name name-of-namespace
    • DNS に基づいてプライベート名前空間を作成します。これは、create-private-dns-namespaceを使用して、指定した Amazon VPC 内でのみ表示されます。 リクエストまたは DNSDiscoverInstances を使用して、プライベート DNS 名前空間に登録されたインスタンスを検出できます。

      aws servicediscovery create-private-dns-namespace --name name-of-namespace --vpc vpc-xxxxxxxxx
    • create-public-dns-namespace を使用して DNS に基づいてパブリック名前空間を作成します。これは、インターネットで表示されます。DiscoverInstances リクエストまたは DNS を使用して、プライベート DNS 名前空間で登録したインスタンスを検出できます。

      aws servicediscovery create-public-dns-namespace --name name-of-namespace
      注記
      名前空間の要件:
      • パブリック DNS クエリ用に設定された名前空間は、最上位ドメイン (.com など) で終わる必要があります。

      • 名前空間名は最大 1,024 文字で、先頭と末尾は文字でなければなりません。

      • 有効な文字は、A~Z、a~z、0~9、-(ハイフン)、_(アンダースコア)、.(ピリオド) です。

AWS SDK for Python (Boto3)
  1. まだBoto3がインストールしていない場合は、[こちら]のインストール、設定、使用に関する説明をBoto3参照してください。

  2. Boto3をインポートしてサービスとしてservicediscoveryを使用してください。

    import boto3 client = boto3.client('servicediscovery')
  3. 希望するインスタンスディスカバリタイプのコマンドで名前空間を作成します(red の値は独自の値に置換):

    • create_http_namespace() を使用して HTTP 名前空間を作成します。HTTP 名前空間を使用して登録したサービスインスタンスは、discover_instances() を使用して検出できますが、DNS を使用して検出することはできません。

      response = client.create_http_namespace( Name='name-of-namespace', ) # If you want to see the response print(response)
    • DNS に基づいてプライベート名前空間を作成します。これは、create_private_dns_namespace()を使用して、指定した Amazon VPC 内でのみ表示されます。discover_instances()または DNS を使用して、プライベート DNS 名前空間に登録されたインスタンスを検出できます。

      response = client.create_private_dns_namespace( Name='name-of-namespace', Vpc='vpc-1c56417b', ) # If you want to see the response print(response)
    • create_public_dns_namespace() を使用して DNS に基づいてパブリック名前空間を作成します。これは、インターネットで表示されます。discover_instances() リクエストまたは DNS を使用して、プライベート DNS 名前空間で登録したインスタンスを検出できます。

      response = client.create_public_dns_namespace( Name='name-of-namespace', ) # If you want to see the response print(response)
    • レスポンスオブジェクトの例

      { 'OperationId': 'gv4g5meo7ndmeh4fqskygvk23d2fijwa-k9302yzd', 'ResponseMetadata': { '...': '...', }, }
      注記
      名前空間の要件:
      • パブリック DNS クエリ用に設定された名前空間は、最上位ドメイン (.com など) で終わる必要があります。

      • 名前空間名は最大 1,024 文字で、先頭と末尾は文字でなければなりません。

      • 有効な文字は、A~Z、a~z、0~9、-(ハイフン)、_(アンダースコア)、.(ピリオド) です。

名前空間の作成時に指定する値

AWS Cloud Map 名前空間を作成するときは、次の値を指定します。

注記

名前空間を作成すると、タグを変更できます。ただし、他の値を変更することはできません。

[]

名前空間名

名前空間に指定する名前は、アプリケーションがインスタンスを検出する方法によって異なります。インスタンスの検出方法は、インスタンスの検出で選択したオプションによって決まります。オプションは、コンソールの現在のページの後半に表示されます。その内容は次のとおりです。

API コール

このオプションを選択した場合は、DiscoverInstances リクエストで名前空間名およびサービス名を指定することによって、アプリケーションでサービスインスタンスが検出されます。詳細については、AWS Cloud Map API リファレンスDiscoverInstances を参照してください。

最大で 1,024 文字までの名前を指定できます。名前には、大文字および小文字の文字、数字、アンダースコア(_)、またはハイフン(-)を含めることができます。

API コールと VPC の DNS クエリ

VPC 内のアプリケーションが DNS クエリを送信してインスタンスを検出する際に使用するドメイン名を入力します。 は、この名前の Amazon Route 53 プライベートホストゾーン AWS Cloud Map を自動的に作成します。サービスインスタンスを登録すると、 AWS Cloud Map によって、次の形式の名前を持つ DNS レコードがホストゾーンに作成されます。

service-name.namespace-name

このオプションを選択した場合は、DiscoverInstances リクエストで名前空間名およびサービス名を指定することによって、アプリケーションでサービスインスタンスを検討することもできます。詳細については、AWS Cloud Map API リファレンスDiscoverInstances を参照してください。

まず名前を Punycode に変換する場合は、国際化ドメイン名 (IDN) を指定します。オンラインコンバーターについては、インターネットで「punycode コンバーター」を検索してください。

プログラムで名前空間を作成する際、国際化ドメイン名 (IDN) を Punycode に変換することもできます。たとえば、Java を使用する場合は、java.net.IDN ライブラリの toASCII メソッドを使って Unicode 値を Punycode に変換できます。

API コールとパブリック DNS クエリ

パブリック DNS クエリを送信してインスタンスを検出する際にアプリケーションで使用するドメイン名を入力します。登録したドメイン名を使用します。名前空間を作成すると、 は同じ名前の Amazon Route 53 パブリックホストゾーン AWS Cloud Map を自動的に作成します。サービスインスタンスを登録すると、 AWS Cloud Map によって、次の形式の名前を持つ DNS レコードがホストゾーンに作成されます。

service-name.namespace-name

このオプションを選択した場合は、DiscoverInstances リクエストで名前空間名およびサービス名を指定することによって、アプリケーションでサービスインスタンスを検討することもできます。詳細については、AWS Cloud Map API リファレンスDiscoverInstances を参照してください。

まず名前を Punycode に変換する場合は、国際化ドメイン名 (IDN) を指定します。オンラインコンバーターについては、インターネットで「punycode コンバーター」を検索してください。

プログラムで名前空間を作成する際、国際化ドメイン名 (IDN) を Punycode に変換することもできます。たとえば、Java を使用する場合は、java.net.IDN ライブラリの toASCII メソッドを使って Unicode 値を Punycode に変換できます。

名前空間の説明

名前空間の説明を入力します。ここに入力した値は、[名前空間] ページと、各名前空間の詳細ページに表示されます。

インスタンス検出

登録されたインスタンスをアプリケーションで検出する方法を選択します。

API コール

アプリケーションで API コールのみを使用して、登録されたインスタンスを検出する場合は、このオプションを選択します。

API コールと VPC の DNS クエリ

アプリケーションで API コール、または VPC の DNS クエリを使用して、インスタンスを検出できるようにするには、このオプションを選択します。両方の方法を使用する必要はありません。

API コールとパブリック DNS クエリ

アプリケーションで API コール、またはパブリック DNS クエリを使用して、インスタンスを検出できるようにするには、このオプションを選択します。両方の方法を使用する必要はありません。

SOA TTL

API コールと VPC の DNS クエリまたはAPI コールとパブリック DNS クエリの場合、名前空間で作成された Route 53 ホストゾーンの認証局の開始 (SOA) DNS レコードの存続可能時間 (TTL) の値。この値は、リゾルバーが別の DNS クエリを Amazon Route 53 に転送して、更新された設定を取得するまでに、DNS リゾルバーがこのレコードの情報をキャッシュする期間を決定します。値を小さくすると、欠落しているエントリがキャッシュされる時間(負のキャッシュ)が短縮され、その名前空間に対する追加のクエリが犠牲になります。

タグ

1 つ以上のタグを指定して、名前空間に追加することができます。タグは、 AWS リソースに割り当てることができるオプションのラベルです。各タグは、キーと値から構成されます。例えば、Key = Environment および Value = Production のタグを定義できます。タグを使用すると、 AWS リソースをより簡単に管理できるようにリソースを分類できます。

名前空間のタグは、作成後に更新または削除できます。詳細については、「AWS Cloud Map リソースのタグ付け」を参照してください。

VPC

インスタンス検出の値として VPCs で API コールと DNS クエリを選択すると、 は同じ名前の Amazon Route 53 プライベートホストゾーン AWS Cloud Map を作成します。VPC リストで選択した VPC をそのプライベートホストゾーンに AWS Cloud Map 関連付けます。

Route 53 リゾルバーは、プライベートホストゾーンのレコードを使用して、VPC で発生した DNS クエリを解決します。DNS クエリのドメイン名に一致するレコードが、プライベートホストゾーンに含まれていない場合、Route 53 は、NXDOMAIN (存在しないドメイン) でクエリに応答します。

VPC をさらにプライベートホストゾーンに関連付けることができます。詳細については、Amazon Route 53 API リファレンスの「AssociateVPCWithHostedZone」を参照してください。