翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
アプリケーションコンポーネントの AWS Cloud Map サービスの作成
名前空間を作成したら、特定の目的を果たすアプリケーションのさまざまなコンポーネントを表すサービスを作成できます。例えば、支払いを処理するアプリケーション内のリソースのサービスを作成できます。
注記
DNS クエリによってアクセス可能な複数のサービスを、大文字と小文字だけが異なる名前で作成することはできません (例: EXAMPLE や example)。そうしようとすると、これらのサービスが同じ DNS 名になります。API コールでのみアクセス可能な名前空間を使用する場合は、大文字と小文字によってのみ異なる名前を持つサービスを作成できます。
AWS Management Console、、および SDK for Python を使用してサービスを作成するには AWS CLI、次の手順に従います。
- AWS Management Console
-
にサインイン AWS Management Console し、https://console.aws.amazon.com/cloudmap/
で AWS Cloud Map コンソールを開きます。 -
ナビゲーションペインで [名前空間] を選択します。
-
[名前空間] ページで、サービスを追加する名前空間を選択します。
-
[名前空間:
namespace-name
] ページで、[サービスの作成] を選択します。 -
サービス名 には、このサービスの使用時に登録するインスタンスを説明する名前を入力します。値は、API コールまたは DNS クエリで AWS Cloud Map サービスインスタンスを検出するために使用されます。
注記
インスタンスの登録時に SRV AWS Cloud Map レコードを作成し、特定の SRV 形式 (HAProxy
など) を必要とするシステムを使用している場合は、サービス名 に以下を指定します。 -
例えば、アンダースコア (_) で名前を開始します。例、_exampleservice。
-
._protocol
で名前を終わらせる。例、._tcp。
インスタンスを登録すると、 は SRV レコード AWS Cloud Map を作成し、サービス名と名前空間名を連結して名前を割り当てます。次に例を示します。
_exampleservice._tcp.example.com
-
-
(オプション) サービスの説明 に、サービスの説明を入力します。ここで入力した説明は、サービスページと各サービスの詳細ページに表示されます。
-
名前空間が DNS クエリをサポートしている場合、サービス検出設定 で、サービスレベルで検出可能性を設定できます。API コールと DNS クエリの両方を許可するか、このサービス内のインスタンスを検出するための API コールのみを許可するかを選択します。
注記
API コール を選択した場合、インスタンスの登録時に は SRV レコードを作成し AWS Cloud Map ません。
API と DNS を選択した場合は、以下の手順に従って DNS レコードを設定します。DNS レコードを追加または削除できます。
-
ルーティングポリシー で、インスタンスの登録時に が作成する DNS レコード AWS Cloud Map の Amazon Route 53 ルーティングポリシーを選択します。加重ルーティングと複数値回答ルーティングのどちらかを選択できます。詳細については、「ルーティングポリシー」を参照してください。
注記
コンソールを使用して、インスタンスの登録時に Route 53 エイリアスレコードを作成する AWS Cloud Map ように を設定することはできません。プログラム AWS Cloud Map でインスタンスを登録するときに Elastic Load Balancing ロードバランサーのエイリアスレコードを作成する場合は、ルーティングポリシー の加重ルーティング を選択します。
-
レコードタイプ で、 によって DNS クエリに応答して Route 53 が返すものを決定する DNS レコードタイプを選択します AWS Cloud Map。詳細については、「レコードタイプ」を参照してください。
-
TTL には、数値を指定して、サービスレベルで有効期限 (TTL) 値を秒単位で定義します。TTL の値は、リゾルバーが別の DNS クエリを Amazon Route 53 に転送して、更新された設定を取得するまでに、DNS リゾルバーがこのレコードの情報をキャッシュする期間を決定します。
-
-
ヘルスチェック設定 のヘルスチェックオプション で、サービスインスタンスに適用されるヘルスチェックのタイプを選択します。ヘルスチェックを設定しないか、インスタンスの Route 53 ヘルスチェックまたは外部ヘルスチェックのいずれかを選択できます。詳細については、「AWS Cloud Map サービスヘルスチェックの設定」を参照してください。
注記
Route 53 ヘルスチェックは、パブリック DNS 名前空間内のサービスに対してのみ設定できます。
Route 53 ヘルスチェック を選択した場合は、次の情報を入力します。
-
障害しきい値 には、サービスインスタンスがヘルスステータスを変更するために合格または不合格にする必要がある連続する Route 53 ヘルスチェックの数を定義する 1~10 の数値を指定します。
-
ヘルスチェックプロトコル で、Route 53 がサービスインスタンスのヘルスをチェックするために使用する方法を選択します。
-
HTTP または HTTPS ヘルスチェックプロトコルを選択した場合、ヘルスチェックパス に、ヘルスチェックの実行時に Amazon Route 53 がリクエストするパスを指定します。パスには、ファイル
/docs/route53-health-check.html
などの任意の値を指定できます。リソースが正常である場合、2xx または 3xx 形式の HTTP ステータスコードが返されます。クエリ文字列パラメータ (/welcome.html?language=jp&login=y
など) を含めることもできます。 AWS Cloud Map コンソールでは、先行するスラッシュ (/) 文字が自動的に追加されます。
Route 53 ヘルスチェックの詳細については、「Amazon Route 53 デベロッパーガイド」の「Amazon Route 53 がヘルスチェックが正常かどうかを判断する方法」を参照してください。
-
-
(オプション) タグ でタグを追加 を選択し、名前空間にタグを付けるキーと値を指定します。1 つ以上のタグを指定して、名前空間に追加することができます。タグを使用すると、 AWS リソースをより簡単に管理できるようにリソースを分類できます。詳細については、「AWS Cloud Map リソースのタグ付け」を参照してください。
-
[Create service (サービスの作成)] を選択します。
- AWS CLI
-
-
create-service
コマンドを使用してサービスを作成します。レッド
の値を自分の値に置き換えてください。aws servicediscovery create-service \ --name
service-name
\ --namespace-idns-xxxxxxxxxxx
\ --dns-config "NamespaceId=ns-xxxxxxxxxxx
,RoutingPolicy=MULTIVALUE,DnsRecords=[{Type=A
,TTL=60
}]"出力:
{ "Service": { "Id": "srv-xxxxxxxxxxx", "Arn": "arn:aws:servicediscovery:us-west-2:123456789012:service/srv-xxxxxxxxxxx", "Name": "service-name", "NamespaceId": "ns-xxxxxxxxxxx", "DnsConfig": { "NamespaceId": "ns-xxxxxxxxxxx", "RoutingPolicy": "MULTIVALUE", "DnsRecords": [ { "Type": "A", "TTL": 60 } ] }, "CreateDate": 1587081768.334, "CreatorRequestId": "567c1193-6b00-4308-bd57-ad38a8822d25" } }
-
- AWS SDK for Python (Boto3)
-
まだ
Boto3
がインストールしていない場合は、[こちら]のインストール、設定、使用に関する説明を Boto3
参照してください。-
Boto3
をインポートしてサービスとしてservicediscovery
を使用してください。import boto3 client = boto3.client('servicediscovery')
-
を使用してサービスを作成します
create_service()
。レッド
の値を自分の値に置き換えてください。詳細については、「create_service」を参照してください。 response = client.create_service( DnsConfig={ 'DnsRecords': [ { 'TTL':
60
, 'Type': 'A
', }, ], 'NamespaceId': 'ns-xxxxxxxxxxx
', 'RoutingPolicy': 'MULTIVALUE
', }, Name='service-name
', NamespaceId='ns-xxxxxxxxxxx
', )レスポンスオブジェクトの例
{ 'Service': { 'Arn': 'arn:aws:servicediscovery:us-west-2:123456789012:service/srv-xxxxxxxxxxx', 'CreateDate': 1587081768.334, 'DnsConfig': { 'DnsRecords': [ { 'TTL': 60, 'Type': 'A', }, ], 'NamespaceId': 'ns-xxxxxxxxxxx', 'RoutingPolicy': 'MULTIVALUE', }, 'Id': 'srv-xxxxxxxxxxx', 'Name': 'service-name', 'NamespaceId': 'ns-xxxxxxxxxxx', }, 'ResponseMetadata': { '...': '...', }, }
-
次のステップ
サービスを作成したら、アプリケーションリソースを、アプリケーションがリソースを見つける方法に関する情報を含むサービスインスタンスとして登録できます。 AWS Cloud Map サービスインスタンスの登録の詳細については、「」を参照してくださいリソースを AWS Cloud Map サービスインスタンスとして登録する。