スキップしてコンテンツを表示

Amazon ECS クラスターを削除できない理由を知りたいです。

所要時間3分
0

Amazon Elastic Container Service (Amazon ECS) クラスターを削除できません。

簡単な説明

クラスターを削除しようとすると、次のいずれかのエラーメッセージが表示される場合があります。

  • Error occurred during operation 'DeleteClusters SDK Error: The Cluster cannot be deleted while Tasks are active. (タスクがアクティブである間はクラスターを削除できません)(Service: AmazonECS; Status Code: 400; Error Code: ClusterContainsTasksException; Request ID: 144948ca-1614-40e7-a08b-80d7f1fe38f6; Proxy: null)'." (RequestToken: f389c9fe-8ce3-855c-581a-ebe32a9a9901, HandlerErrorCode: GeneralServiceException)
  • Error occurred during operation 'DeleteClusters SDK Error: The Cluster cannot be deleted while Services are active. (サービスがアクティブである間はクラスターを削除できません)(Service: AmazonECS; Status Code: 400; Error Code: ClusterContainsServicesException; Request ID: 1eb29389-dab7-4345-a453-cde2c2b54c60; Proxy: null)'." (RequestToken: ec646d54-de77-f96c-d9a6-ac04c520f45a, HandlerErrorCode: GeneralServiceException)
  • Error: deleting ECS Cluster (arn:aws:ecs:REGION:000000000000:cluster/my-ecs-cluster): operation error ECS: DeleteCluster, https response error StatusCode: 400, RequestID: 128b7de0-45e3-4130-8c8c-dcceb27a8bb9, ClusterContainsContainerInstancesException: The Cluster cannot be deleted while Container Instances are active or draining. (コンテナインスタンスがアクティブであるかドレイン中の間はクラスターを削除できません)
  • An error occurred (UpdateInProgressException) when calling the DeleteCluster operation: The specified cluster is in a busy state. (指定したクラスターはビジー状態です)Cluster attachments must be in UPDATE_COMPLETE or UPDATE_FAILED state before they can be updated. (クラスターアタッチメントを更新するには、UPDATE_COMPLETE または UPDATE_FAILED 状態になっている必要があります)Wait and try again. (しばらく待ってから再試行してください)

Amazon ECS クラスターを削除する前に、すべてのサービスを削除し、実行中のすべてのタスクを停止し、すべてのコンテナインスタンスを登録解除し、すべての名前空間を削除する必要があります。

解決策

注: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI で発生したエラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。

(オプション) Amazon ECS サービスの名前空間を特定する

サービスとタスクを削除する前に、サービスに関連付けられている不必要な AWS Cloud Map 名前空間を特定することをおすすめします。

お使いのサービスがサービス検出を使用している場合は、次の AWS CLI コマンド describe-services を実行してサービス検出サービスの ARN を特定します。

aws ecs describe-services --cluster CLUSTER_NAME --service SERVICE_ARN --query services[*].serviceRegistries[*].registryArn --output text

注: 実際のものでそれぞれ、CLUSTER_NAME をクラスター名に、SERVICE_ARN を Amazon ECS サービスの ARN に置き換えます。

次に、以下の get-service コマンドを実行して名前空間 ID を特定します。

aws servicediscovery get-service --id SERVICE_ID --query Service.NamespaceId --output text

注: SERVICE_ID は、サービス検出サービスの ID に置き換えます。

サービスで Service Connect を使用している場合は、次の describe-services コマンドを実行して名前空間 ID を特定します。

aws ecs describe-services --cluster CLUSTER_NAME --service SERVICE_ARN --query services[*].deployments[].serviceConnectConfiguration.namespace --output text

注: 実際のものでそれぞれ、CLUSTER_NAME をクラスター名に、SERVICE_ARN を Amazon ECS サービスの ARN に置き換えます。

実行中のすべてのタスクを停止する

実行中のすべてのタスクを一覧表示するには、次の list-tasks コマンドを実行します。

aws ecs list-tasks --cluster CLUSTER_NAME --region REGION

注: 実際のものでそれぞれ、CLUSTER_NAME をクラスター名に、REGION を AWS リージョンに置き換えます。

タスクを停止するには、次の stop-task コマンドを実行します。

aws ecs stop-task --cluster CLUSTER_NAME --task TASK_ARN --region REGION

注: 実際のものでそれぞれ、CLUSTER_NAME をクラスター名に、TASK_ARN をタスクの ARN に、REGION をリージョンに置き換えます。

または、Amazon ECS コンソールを使用してタスクを停止します。

Amazon ECS サービスを削除する

クラスター内のすべてのサービスを一覧表示するには、次の list-services コマンドを実行します。

aws ecs list-services --cluster CLUSTER_NAME

注: CLUSTER_NAME は、実際のクラスター名に置き換えます。

サービスを削除するには、次の delete-service コマンドを実行します。

aws ecs delete-service --cluster CLUSTER_NAME --service SERVICE_ARN --force --region REGION

注: 実際のものでそれぞれ、CLUSTER_NAME をクラスター名に、SERVICE_ARN をサービスの ARN に、REGION をリージョンに置き換えます。

または、Amazon ECS コンソールを使用してサービスを削除します。

Amazon ECS コンテナインスタンスを登録解除する

登録されているすべてのコンテナインスタンスを一覧表示するには、次の list-container-instances コマンドを実行します。

aws ecs list-container-instances --cluster CLUSTER_NAME --region REGION --output text --query containerInstanceArns

注: 実際のものでそれぞれ、CLUSTER_NAME をクラスター名に、REGION をリージョンに置き換えます。

コンテナインスタンスをクラスターから登録解除するには、次の deregister-container-instance コマンドを実行します。

aws ecs deregister-container-instance --cluster CLUSTER_NAME --region REGION --container-instance CONTAINER_INSTANCE_ARN --force

注: 実際のものでそれぞれ、CLUSTER_NAME をクラスター名に、REGION をリージョンに、CONTAINER_INSTANCE_ARN をコンテナインスタンスの ARN に置き換えます。

または、Amazon ECS コンソールを使用してコンテナインスタンスを登録解除します。

名前空間を削除する

すべてのサービスインスタンスを登録解除する

サービス内のすべてのサービス検出インスタンスを一覧表示するには、次の list-instances コマンドを実行します。

aws servicediscovery list-instances --service-id SERVICE_DISCOVERY_ID_EXAMPLE

注: SERVICE_DISCOVERY_ID_EXAMPLE は、サービス検出サービスの実際の ID に置き換えます。

サービス検出サービスからインスタンスを登録解除するには、次の deregister-instance コマンドを実行します。

aws servicediscovery deregister-instance --service-id SERVICE_DISCOVERY_ID_EXAMPLE --instance-id INSTANCE_EXAMPLE

注: 実際のものでそれぞれ、SERVICE_DISCOVERY_ID_EXAMPLE をサービス検出サービスの ID に、INSTANCE_EXAMPLE をインスタンス ID に置き換えます。

すべてのサービス検出サービスを削除する

名前空間内のすべてのサービス検出サービスを表示するには、次の list-services コマンドを実行します。

aws servicediscovery list-services --filters Name=NAMESPACE_ID,Values=NAMESPACE_EXAMPLE,Condition=EQ

注: NAMESPACE_EXAMPLE は、実際の名前空間 ID に置き換えます。

サービス検出サービスを削除するには、次の delete-service コマンドを実行します。

aws servicediscovery delete-service --id SERVICE_ID_EXAMPLE

注: SERVICE_ID_EXAMPLE は、実際のサービス ID に置き換えます。

名前空間を削除する

名前空間を削除するには、次の delete-namespace コマンドを実行します。

aws servicediscovery delete-namespace --id NAMESPACE_EXAMPLE

注: NAMESPACE_EXAMPLE は、実際の名前空間 ID に置き換えます。

または、AWS Cloud Map コンソールを使用して名前空間を削除します。

クラスターアタッチメントのステータスを確認する

クラスターを Amazon EC2 Auto Scaling グループのキャパシティプロバイダーに関連付けている場合は、クラスターアタッチメントのステータスを確認します。クラスターを削除する前に、クラスターアタッチメントのステータスは UPDATE_COMPLETE または UPDATE_FAILED になっている必要があります。UPDATE_IN_PROGRESS ステータスのクラスターアタッチメントを含むクラスターを削除すると、UpdateInProgressException エラーが発生します。

クラスターアタッチメントを確認するには、次の describe-clusters コマンドを実行します。

aws ecs describe-clusters --cluster CLUSTER_NAME --include ATTACHMENTS --query clusters\[\].attachmentsStatus

注: CLUSTER_NAME は、実際のクラスター名に置き換えます。

クラスターアタッチメントのステータスが UPDATE_IN_PROGRESS の場合は、そのステータスが自動的に解決されるまで待ってからクラスターを削除します。

(オプション) クラスターに関連付けられているキャパシティプロバイダーを削除する

クラスターに関連付けられているキャパシティプロバイダーを表示するには、次の describe-clusters コマンドを実行します。

aws ecs describe-clusters --cluster CLUSTER_NAME --include ATTACHMENTS --query clusters\[\].capacityProviders[] --output text

注: CLUSTER_NAME は、実際のクラスター名に置き換えます。

キャパシティプロバイダーとクラスターの関連付けを解除するには、次の put-cluster-capacity-providers コマンドを実行します。

aws ecs put-cluster-capacity-providers --cluster CLUSTER_NAME --capacity-providers [] --default-capacity-provider-strategy []

注: CLUSTER_NAME は、実際のクラスター名に置き換えます。

キャパシティプロバイダーを削除するには、次の delete-capacity-provider コマンドを実行します。

aws ecs delete-capacity-provider --capacity-provider CAPACITY_PROVIDER_NAME

注: CAPACITY_PROVIDER_NAME は、実際のキャパシティプロバイダー名に置き換えます。

または、Amazon ECS コンソールを使用してキャパシティプロバイダーを削除します。

クラスターを削除する

クラスターを削除するには、次の delete-cluster コマンドを実行します。

aws ecs delete-cluster --cluster CLUSTER_NAME

注: CLUSTER_NAME は、実際のクラスター名に置き換えます。

または、Amazon ECS コンソールを使用してクラスターを削除します。

関連情報

Amazon ECS クラスターで新規のキャパシティプロバイダーの設定や既存のキャパシティプロバイダーの更新を試みると発生する問題のトラブルシューティング方法を知りたいです

AWS公式更新しました 1年前
コメントはありません

関連するコンテンツ