AWSインフラ構築時のエラー対処備忘録
ECSコンテナサービスを作成中に、バックエンドサービスの作成を実行した際、サーキットブレーカーが発動してエラーが発生した事例について記録します。
使用技術
・フロントエンド
UIフレームワーク:Nuxt.js(Vue.js), Vuetify
HTTP通信:axios
コード整形:ESLint/Prettier
・バックエンド
言語・フレームワーク:Ruby 3.1.3・Rails 7.0.4
コード品質:RuboCop
テスト:RSpec
サーバー:Nginx, Puma
データベース:MySQL 8.0.31
・インフラ/デプロイメント
コンテナ:Docker
クラウド:AWS (ECR,ECS,Fargate,VPC,S3,Route53,ALB,RDS,ACM,SSM,CloudWatch)
IaC(インフラコード化) :Terraform
CI/CD :GitHub Actions
エラーが発生するまでの手順は以下の通りです。
(1)タスク定義作成
(2)サービス作成
その後、AWS画面上に以下のエラーメッセージが表示されました。
Resource handler returned message: "Error occurred during operation 'ECS Deployment Circuit Breaker was triggered'." (RequestToken: cdf432b2-ef09-f7cc-074d-6d8fef56cc16, HandlerErrorCode: GeneralServiceException)
原因を確かめるため、以下のような検証作業を行ってみましたが、
問題の解決には至りませんでした。
(作業1)
タスク定義のURIの設定が正しいか確認しました。
nginxコンテナのイメージ URIがlatestになっていなかったので
9xxxxxxxxxxx.dkr.ecr.ap-northeast-1.amazonaws.com/myapp-prod-nginx
を以下に変更し、タスク定義を修正。
9xxxxxxxxxxx.dkr.ecr.ap-northeast-1.amazonaws.com/myapp-prod-nginx:latest
失敗しているサービスを削除し、サービスを再作成したが、同じエラーが発生し解決せず。
(作業2)
下記の記事に記載されている手法で一時的にデプロイサーキットブレーカーをオフにするとエラー時のログを確認。
(結果)
AWSのIAMの権限設定に起因する問題であったことが判明し、問題解決。