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

所要時間2分
0

Amazon Elastic Container Service (Amazon ECS) クラスタの新規のキャパシティプロバイダーの設定や既存のキャパシティプロバイダーの更新ができません。

簡単な説明

以下では、Amazon ECS クラスターの新規のキャパシティプロバイダーを設定したり、既存のキャパシティプロバイダーを更新したりする際によく発生する問題を紹介します。

  • AWS コマンドラインインターフェイス (AWS CLI) を使用して Auto Scaling グループのキャパシティプロバイダーを作成すると、エラーが表示されます。
  • 次のエラーが表示されます。 「指定されたキャパシティプロバイダーがすでに存在します。既存のキャパシティプロバイダーのコンフィギュレーションを変更するには、キャパシティプロバイダーを更新してください。」
  • 次のエラーが表示されます。 「指定された Auto Scaling グループ ARN は、既に別のキャパシティプロバイダーによって使用されています。一意の Auto Scaling グループ ARN を指定して、もう一度お試しください。
  • キャパシティプロバイダー戦略を策定するときに以下のエラーが表示されます。 「指定されたクラスターは、ビジー状態です。クラスターの添付ファイルは、更新する前に、UPDATE_COMPLETE または UPDATE_FAILED 状態でなければなりません。しばらくたってから、もう一度やり直してください。」
  • キャパシティプロバイダーの制限により、エラーが発生します。
  • キャパシティプロバイダーは、AWS CloudFormation で正常に作成されますがコンソールには表示されません。

解決策

AWS CLI を使用して Auto Scaling グループのキャパシティプロバイダーを作成すると、エラーが表示されます

AWS CLI を使用してキャパシティプロバイダーを作成する場合はAWS CloudTrail イベントを確認して、キャパシティプロバイダーの作成 API を確認します。これらのエラーは、一般的な CapacityProvider API のエラーです。

  • ClientException: これらのエラーは、通常、クライアント アクションによって発生します。このクライアントアクションは、アクションまたはリソースを使用するために必要なアクセス許可を持たない AWS Identity and Access Management (IAM) ユーザーの代わりにアクションまたはリソースを使用している可能性があります。このエラーは、識別子が無効であることを示す場合もあります。
  • UpdateInProgressException: このエラーが表示されるのは、指定されたコンテナインスタンスで進行中の現在の Amazon ECS コンテナエージェントの更新が既に進行中であるためです。PENDING や STAGING などの移行段階でコンテナエージェントが切断されると、更新がその状態で固まる (スタックする) 可能性があります。ただし、エージェントが再接続するときは、以前に停止したところから再開されます。

詳細については、「エラー」を参照してください:

**メモ:**AWS CLIコマンドを実行する際にエラーが発生する場合は、最新バージョンのAWS CLIを使用しているか確認してください

次のエラーが表示されます。 「指定されたキャパシティプロバイダーがすでに存在します。既存のキャパシティプロバイダーのコンフィギュレーションを変更するには、キャパシティプロバイダーを更新してください」

キャパシティプロバイダーを設定するときは、以前使用したキャパシティプロバイダー名とは別の名前を使用します。または、その名前の既存のキャパシティプロバイダーを削除してから、新規キャパシティプロバイダーを作成することもできます。

作成済みのすべてのキャパシティプロバイダーのリストを表示するには以下のコマンドを実行します。

aws ecs describe-capacity-providers --query capacityProviders\[\].name --region example-region

出力は次のようになります。

[
    "FARGATE",
    "FARGATE_SPOT",
    "ecs-capacityprovider-1"
]

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

aws ecs delete-capacity-provider --capacity-provider ecs-capacityprovider-1 --region example-region

サンプル出力などのオプションについては、「delete-capacity-provider」を参照してください。

新規のキャパシティプロバイダーを作成するには、以下のコマンドを実行します。

aws ecs create-capacity-provider --name "example-capacity=provider" --auto-scaling-group-provider "autoScalingGroupArn=arn:aws:autoscaling:us-east-1:123456789012:autoScalingGroup:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111:autoScalingGroupName/MyAutoScalingGroup,managedScaling={status=ENABLED,targetCapacity=100,minimumScalingStepSize=1,maximumScalingStepSize=100},managedTerminationProtection=ENABLED"

サンプル出力などのオプションについては、「create-capacity-provider」を参照してください。

次のエラーが表示されます。 「指定された Auto Scaling グループ ARN は、既に別のキャパシティプロバイダーによって使用されています。ユニークな Auto Scaling グループ (ARN) を指定して、もう一度お試しください。」

Auto Scaling グループとキャパシティプロバイダーには、1 対 1 の関係が必要です。Auto Scaling グループを、ただ 1 つのキャパシティプロバイダーに添付することもできますが、その逆もできます。キャパシティプロバイダーは 1 つの Auto Scaling グループにのみ関連付けられるようにしてください。

次のエラーが表示されます。 「指定されたクラスターは、ビジー状態です。クラスターの添付ファイルは、更新する前に、UPDATE_COMPLETE または UPDATE_FAILED 状態でなければなりません。しばらくしてから、もう一度お試しください。」

このエラーは、数分たつと自動的に解決されます。しばらくしてから、キャパシティプロバイダーの更新をもう一度お試しください。または、この CLI コマンドを実行すると、添付ファイルの現在のステータスが表示されます。次に、添付ファイルが UPDATE_COMPLETE ステータスになるまで待ちます。

aws ecs describe-clusters --clusters example-ARN --include ATTACHMENTS --query clusters\[\].attachmentsStatus --region example-region

出力は次のようになります。

[
    "UPDATE_COMPLETE"
]

キャパシティプロバイダーの制限が原因でエラーが表示される

キャパシティプロバイダーを作成または更新する前に以下の点を確認してください。

  • 1 つのキャパシティ戦略で、6 つを超えるキャパシティプロバイダーを指定することはできません。
  • クラスター戦略では、Auto Scaling グループのキャパシティプロバイダーまたは AWS Fargate キャパシティプロバイダーのいずれかを使用します。両方のタイプを組み合わせて使用 (併用) することはできません。
  • キャパシティプロバイダー戦略の基本の値はタスクを実行する場合にのみサポートされます。

キャパシティプロバイダーは、CloudFormation で正常に作成されますがコンソールには表示されません。

これは CloudFormation テンプレートでキャパシティプロバイダーがクラスターに関連付けされていない場合に発生する可能性があります。この問題が発生しないようにするには、CloudFormation テンプレート内で、次のスニペットを使用してキャパシティプロバイダーをクラスターに関連付けてください。

...
ECSCluster:
  Type: 'AWS::ECS::Cluster'
  Properties:
    ClusterName: example-cluster
    CapacityProviders:
      - !Ref ECSCapacityProvider
...

関連情報

Amazon ECS キャパシティプロバイダー

Auto Scaling グループのキャパシティプロバイダー

Amazon ECS でキャパシティプロバイダーを削除するときの DELETE_FAILED エラーを解決するにはどうすればよいですか?

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