

# Amazon ECS 外部インスタンスの登録を解除する
<a name="ecs-anywhere-deregistration"></a>

インスタンスの使用が終了したら、Amazon ECS とAWS Systems Manager をインスタンスから登録解除することをお勧めします。登録解除後、コンテナインスタンスは新しいタスクを受けることができなくなります。

登録解除するときにコンテナインスタンスでタスクが実行されている場合、インスタンスを削除するかタスクが他の手段で停止するまで、これらのタスクは実行されたままになります。ただし、これらのタスクは Amazon ECS によるモニタリングや情報収集の対象外になります。外部インスタンス上のこれらのタスクが Amazon ECS サービスに含まれる場合、サービススケジューラは、可能であれば、別のコンテナインスタンスでそのタスクの別のコピーを開始します。

インスタンスの登録を解除した後、インスタンス上の残りの AWS リソースをクリーンアップします。その後、新しいクラスターに登録できます。

## 手順
<a name="ecs-anywhere-deregistration-procedure"></a>

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

1. コンソール ([https://console.aws.amazon.com/ecs/v2](https://console.aws.amazon.com/ecs/v2)) を開きます。

1. ナビゲーションバーから、外部インスタンスが存在するリージョンを選択します。

1. ナビゲーションペインで **[Clusters]** (クラスター) を選択し、外部インスタンスをホストするクラスターを選択します。

1. **[Cluster : *name*]** (クラスター: 名前) のページで、**[Infrastructure]** (インフラストラクチャ) タブを選択します。

1. **[Container instances]** (コンテナインスタンス)で、登録解除する外部のインスタンス ID を選択します。コンテナインスタンスの詳細ページにリダイレクトされます。

1. **[Container Instance : *id*]** (コンテナインスタンス: id) ページで、**[Deregister]** (登録解除) を選択します。

1. 登録解除メッセージを確認します。[**Deregistered fromAWS Systems Manager**]を選択して、外部インスタンスを Systems Manager 管理対象インスタンスとして登録解除することもできます。**[Deregister]** (登録解除) を選択します。
**注記**  
Systems Manager コンソールで、外部インスタンスを Systems Manager 管理対象インスタンスとして登録解除できます。手順については、「*AWS Systems Manager ユーザーガイド*」の「[ハイブリッドおよびマルチクラウド環境でのマネージドノードの登録解除](https://docs.aws.amazon.com/systems-manager/latest/userguide/fleet-manager-deregister-hybrid-nodes.html)」を参照してください。

1. インスタンスの登録を解除した後は、オンプレミスサーバーまたは VM にある AWS リソースをクリーンアップします。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/ecs-anywhere-deregistration.html)

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

1. コンテナインスタンスを登録解除するには、インスタンス ID とコンテナインスタンス ARN が必要です。これらの値がない場合は、次のコマンドを実行してください

   次のコマンドを実行して、インスタンス ID を取得します。

   インスタンス ID (`instanceID`) を使用し、コンテナインスタンス ARN (`containerInstanceARN`) を取得します。

   ```
   instanceId=$(aws ssm describe-instance-information --region "{{ region }}" | jq ".InstanceInformationList[] |select(.IPAddress==\"{{ IPv4 Address }}\") | .InstanceId" | tr -d'"'
   ```

   以下のコマンドを実行します。

   インスタンス (`deregister-container-instance`) を登録解除するには、コマンドのパラメータとして `containerInstanceArn` を使用します。

   ```
   instances=$(aws ecs list-container-instances --cluster "{{ cluster }}" --region "{{ region }}" | jq -c '.containerInstanceArns')
   containerInstanceArn=$(aws ecs describe-container-instances --cluster "{{ cluster }}" --region "{{ region }}" --container-instances $instances | jq ".containerInstances[] | select(.ec2InstanceId==\"{{ instanceId }}\") | .containerInstanceArn" | tr -d '"')
   ```

1.  次のコマンドを実行して、インスタンスをドレインします。

   ```
   aws ecs update-container-instances-state --cluster "{{ cluster }}" --region "{{ region }}" --container-instances "{{ containerInstanceArn }}" --status DRAINING
   ```

1. コンテナインスタンスのドレインが終了したら、次のコマンドを実行してインスタンスを登録解除します。

   ```
   aws ecs deregister-container-instance --cluster "{{ cluster }}" --region "{{ region }}" --container-instance "{{ containerInstanceArn }}"
   ```

1. 次のコマンドを実行し、SSM からコンテナインスタンスを削除します。

   ```
   aws ssm deregister-managed-instance --region "{{ region }}" --instance-id "{{ instanceId }}"
   ```

1. インスタンスの登録を解除した後は、オンプレミスサーバーまたは VM にある AWS リソースをクリーンアップします。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/ecs-anywhere-deregistration.html)

------