

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 取消註冊 Amazon ECS 外部執行個體
<a name="ecs-anywhere-deregistration"></a>

我們建議您在完成執行個體 AWS Systems Manager 之後，從 Amazon ECS 和 取消註冊執行個體。取消註冊後，外部執行個體即不再接受新的任務。

如果在您取消註冊容器執行個體時，還有執行中的任務，則這些任務會繼續執行，直到透過一些其他方式停用為止。不過，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. 檢閱取消註冊訊息。選取 **Deregister from AWS Systems Manager** (從 AWS Systems Manager中取消註冊)，也將作為 Systems Manager 受管執行個體來取消註冊外部執行個體。選擇 **Deregister (取消註冊)**。
**注意**  
在 Systems Manager 主控台中，可作為 Systems Manager 受管執行個體來取消註冊外部執行個體。如需說明，請參閱 *AWS Systems Manager User Guide* 中的 [Deregistering managed nodes in a hybrid and multicloud environment](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/zh_tw/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'"'
   ```

   執行下列命令。

   您可以在命令中使用 `containerInstanceArn` 做為參數來取消註冊執行個體 (`deregister-container-instance`)。

   ```
   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/zh_tw/AmazonECS/latest/developerguide/ecs-anywhere-deregistration.html)

------