

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

# リソースを AWS Cloud Map サービスインスタンスとして登録する
<a name="registering-instances"></a>

アプリケーションのリソースを AWS Cloud Map サービス内のインスタンスとして登録できます。たとえば、ユーザーデータを管理するすべてのアプリケーションリソース`users`に対して というサービスを作成しているとします。その後、このサービスのインスタンスとしてユーザーデータを保存するために使用される DynamoDB テーブルを登録できます。

**注記**  
以下の機能は AWS Cloud Map コンソールでは使用できません。  
コンソールを使用してサービスインスタンスを登録する場合は、 Elastic Load Balancing (ELB) ロードバランサーにトラフィックをルーティングするエイリアスレコードは作成できません。インスタンスを登録する場合は、`AWS_ALIAS_DNS_NAME` 属性を含める必要があります。詳細については、*AWS Cloud Map API リファレンス*の [RegisterInstance](https://docs.aws.amazon.com/cloud-map/latest/api/API_RegisterInstance.html) を参照してください。
カスタムのヘルスチェックを含むサービスを使用してインスタンスを登録する場合、カスタムのヘルスチェックの初期ステータスは指定できません。デフォルトでは、カスタムのヘルスチェックの初期ステータスは [**正常**] です。初期のヘルスステータスを [**異常**] にするには、プログラムでインスタンスを登録し、`AWS_INIT_HEALTH_STATUS` 属性を含めます。詳細については、[AWS Cloud Map API リファレンス](https://docs.aws.amazon.com/cloud-map/latest/api/API_RegisterInstance.html)の *RegisterInstance* を参照してください。

サービスにインスタンスを登録するには、次の手順に従います。

------
#### [ AWS マネジメントコンソール ]

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/cloudmap/](https://console.aws.amazon.com/cloudmap/) で AWS Cloud Map コンソールを開きます。

1. ナビゲーションペインで [**名前空間**] を選択します。

1. [**名前空間**] ページで、サービスインスタンスを登録するためのテンプレートとして使用するサービスを含む名前空間を選択します。

1. [**名前空間:{{namespace-name}}**] ページで、使用するサービスを選択します。

1. [**Service:{{service-name}}**] ページで、[**サービスインスタンスの登録**] を選択します。

1. **サービスインスタンスの登録**ページで、**インスタンスタイプ**を選択します。名前空間インスタンス検出設定に応じて、IP アドレス、Amazon EC2 インスタンス ID、または IP アドレスを持たないリソースのその他の識別情報を指定できます。
**注記**  
**EC2 インスタンス**は HTTP 名前空間でのみ選択できます。

1. **サービスインスタンス ID** には、サービスインスタンスに関連付けられた識別子を指定します。
**注記**  
既存のインスタンスを更新する場合は、更新するインスタンスに関連付けられた識別子を指定します。次に、次のステップを使用して値を更新し、インスタンスを再登録します。

1. 選択した**インスタンスタイプ**に基づいて、次の手順を実行します。
**重要**  
カスタム属性を指定する場合、キーで`AWS_`プレフィックス (大文字と小文字を区別しない) を使用することはできません。    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/cloud-map/latest/dg/registering-instances.html)

1. [**サービスインスタンスの登録**] を選択します。

------
#### [ AWS CLI ]
+ 

  `RegisterInstance` リクエストを送信すると:
  + `ServiceId` で指定したサービスで定義した DNS レコードごとに、対応する名前空間に関連付けられたホストゾーンでレコードが作成または更新されます。
  + サービスに `HealthCheckConfig` が含まれる場合、ヘルスチェック設定の設定に基づいてヘルスチェックが作成されます。
  + ヘルスチェックは、新しいレコードまたは更新された各レコードに関連付けられます。

  `[register-instance](https://docs.aws.amazon.com/cli/latest/reference/servicediscovery/register-instance.html)` コマンドでサービスインスタンスを登録します ({{red}} の値は独自の値で置き換え)。

  ```
  aws servicediscovery register-instance \
      --service-id {{srv-xxxxxxxxx}} \
      --instance-id {{myservice-xx}} \
      --attributes={{AWS_INSTANCE_IPV4=172.2.1.3,AWS_INSTANCE_PORT=808}}
  ```

------
#### [ AWS SDK for Python (Boto3) ]

1. まだ`Boto3`がインストールしていない場合は、[[こちら](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html#installation)]のインストール、設定、使用に関する説明を`Boto3`参照してください。

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

   ```
   import boto3
   client = boto3.client('servicediscovery')
   ```

1. 

   `RegisterInstance` リクエストを送信すると:
   + `ServiceId` で指定したサービスで定義した DNS レコードごとに、対応する名前空間に関連付けられたホストゾーンでレコードが作成または更新されます。
   + サービスに `HealthCheckConfig` が含まれる場合、ヘルスチェック設定の設定に基づいてヘルスチェックが作成されます。
   + ヘルスチェックは、新しいレコードまたは更新された各レコードに関連付けられます。

   `register_instance()` コマンドでサービスインスタンスを登録します ({{red}} の値は独自の値で置き換え)。

   ```
   response = client.register_instance(
       Attributes={
           'AWS_INSTANCE_IPV4': '172.2.1.3',
           'AWS_INSTANCE_PORT': '808',
       },
       InstanceId='{{myservice-xx}}',
       ServiceId='{{srv-xxxxxxxxx}}',
   )
   # If you want to see the response
   print(response)
   ```

   レスポンスオブジェクトの例

   ```
   {
       'OperationId': '4yejorelbukcjzpnr6tlmrghsjwpngf4-k95yg2u7',
       'ResponseMetadata': {
           '...': '...',
       },
   }
   ```

------