AWS CloudFormation を使用して、Amazon Elastic Container Service (Amazon ECS) リソース (AWS::ECS::Service) を起動すると、エラーメッセージが表示されます。
簡単な説明
Classic Load Balancer の場合は、次のようなエラーメッセージが表示されます。
「CREATE_FAILED AWS::ECS::Service ECSService ロールを適用し、ロードバランサーに設定されたリスナーを検証できません。渡されたロールに適切なアクセス許可があることを確認してください。」
Application Load Balancer の場合は、次のようなエラーメッセージが表示されます。
「CREATE_FAILED AWS::ECS::Service ECSService ロールを適用し、特定の targetGroupArn を検証できません。渡された ECS サービスロールに適切なアクセス許可があることを確認してください」
解決策
Classic Load Balancer または Application Load Balancer のいずれかのエラーを解決するには、以下の解決策を 1 つ以上を適用してください。
- CloudFormationテンプレートのロールプロパティセクションにあるAWS Identity and Access Management (IAM) ロールパラメータを使用するか、ECSのIAMサービスにリンクされたロールを使用します。次に、IAM サービスにリンクされたロールに正しいアクセス許可があることを確認します。
**ヒント:**CloudFormation テンプレートを使用して、ECS アーキテクチャのコンポーネントを適切な依存関係で構築できます。アーキテクチャコンポーネントには、ECS クラスター、サービス、ロードバランサー、コンテナインスタンス、IAM リソースがあります。
- TargetGroupArn プロパティが Elastic Load Balancing ターゲットグループの完全な ARN であることを確認します。
注: ターゲットグループ ARN は、Application Load Balancer または Network Load Balancer を設定するときに指定します。
- Amazon EC2 Auto Scaling グループまたは ECS コンテナインスタンスに、属性としてインスタンスプロファイルが関連付けられていることを確認します。
- DependsOn 属性を使用して、ECS、Application Load Balancer リソース、および IAM リソースの依存関係を指定します。また、CloudFormation テンプレートを参照することもできます。または、カスタムリソースを使用して、スタック作成プロセスを遅らせて、サービスロールのアクセス許可に伝播する時間を増やすことができます。