Beanstalk環境がデプロイできなくなった。。。
このBeanstalk環境はこれまでずっと使用していたものなのに、突然デプロイできなくなってしまったわけだ。ステータスがUnkonw(不明)のまま。
かなり苦戦した。
ログをパッと見てもわからなかった。
状態として、アプリは起動してCloudwatchLogsにも適切に出力されており、ロードバランサーのヘルスチェックも成功していたのに、Beanstalkからだけこれらのデータが取れていないようだった。
環境起動後、いくら待ってもUnknownステータスのまま。
先に解決策
BeanstalkのInstanceProfileにelasticbeanstalk:PutInstanceStatisticsを追加する。
原因は、Beanstalkのプロファイルに対するRole不足だった。
なので、環境とアプリケーションにPutInstanceStatistics Policyを追加してあげれば動くようになる。
原因調査と見逃してたログ
eb-activity.log 等のログを見ていたけど何も問題なし。
healthd のログを見逃していたのが中々解決までたどり着けなかった原因(これは俺のせい。)
Beanstalkのダッシュボード画面からフルログを取得する。
BundleLogs-sxxxxx.zip\var\log\healthd
の中にヘルスチェックに関するログがでる。
見るべきはこのファイルだった。
下記の通りしっかりfailedエラーワーニングが出力されていた。
1 |
W, [2022-02-16T02:01:12.745362 #3092] WARN -- : sending message(s) failed: (Aws::Healthd::Errors::AccessDeniedException) User: arn:aws:sts::xx:assumed-role/myapp-InstanceProfileRole-xxx/i-xxxx is not authorized to perform: elasticbeanstalk:PutInstanceStatistics on resource: arn:aws:elasticbeanstalk:ap-northeast-1:xx:application/xxxx |
くそーーー。
こんなログみねぇよーーー。
勉強になった。
じゃあね〜〜〜。