tatsumiyamamoto.com

CodeBuildが突然動かなくなったけど、アカウントのクォータを上げたら治った話

2023-08-19

# はじめに

このブログは S3 + CloudFront の構成でホスティングされていて、CD 部分を CodeBuild で組んでいる。

いつものようにデプロイをしようと思ったら、なぜかサイトに反映されておらず、CodeBuild のマネジメントコンソール画面を見るとビルド時間が何時間とかになっていた。

普段は 3 分程度でビルドが終わるのだが、QUEUED されてから次のプロセスに移行できていなかった。

マネジメントコンソールのエラーメッセージとしては「BUILD_TIMED_OUT: Build has timed out in the queued phase」と書いてあった。

# 結論

以下のサイトに書いている情報を元に、AWS のアカウントのクォータを上げてみたら治った。

www.reddit.com
www.reddit.com favicon https://www.reddit.com/r/aws/comments/nznefd/codebuild_stuck_in_queue_state/

このブログでは CodeBuild の環境を Linux/Small で実行しているので、「Concurrently running builds for Linux/Small environment」を引き上げを AWS 側に申請し、数日後に承認され、その後はビルドが成功するようになった。

クォータの上げ方は以下のサイトに詳しく載っている

サービスクォータの緩和をリクエストする
サービスクォータでクォータの緩和をリクエストする
サービスクォータの緩和をリクエストする favicon https://aws.amazon.com/jp/getting-started/hands-on/request-service-quota-increase/
サービスクォータの緩和をリクエストする

# 試したけどだめだったこと

アカウントのクォータ引き上げに至るまでなんやかんやで 3 日くらいかかった。 以下はその間に試したけど解決しなかったことを書く。

## AWS リソースの再作成

aws-cdk で作っていたので、全部を作り直せば解決するんじゃないかと思い、npx cdk destroy --allをしたあとに、もう一回npx cdk deploy --allを実行。 結果としては何も変わらず。

## ビルドが成功していたときまで commit を戻す

ソースコードの問題かどうかの切り分けを行うため、ビルドがうまくいっていたときまで commit を戻して再実行した。こちらも結果はだめだった。

## いま走っているビルドがないか確認する

エラーの現象としては、QUEUED されるけど BUILD が始まらないというものだった。 この時点では、「なにかの理由でビルドが常に 1 つ走っているように認識されてしまっており、後続のビルドが始まらないのでは」と考えていた。

そのため、現状実行中のビルドがないか探してみたが、マネジメントコンソール上はビルドは走っておらず、aws cli でもビルドを一覧で取得したが、実行中のビルドはなかった。

## プロジェクトのビルドの同時実行数の引き上げを試みる

ここで、先の reddit への書き込みを見つける。

AWS へクォータの上限緩和申請を行い、2 日程度待って緩和が承認され、実行してみると治っていた。 正直これで治らなかったら打つ手無しだったので本当に助かった。

ちなみに、クォータではなくプロジェクトの同時実行数を上げればいいんじゃないかと思ったが、プロジェクトのビルドの同時実行数はデフォルトが 1 であり、アカウントの上限値以上に設定することはできない。アカウントの上限値もデフォルトが 1 であるので、クォータを上げるしかない。

# 最後に

結局、根本的な原因がはっきりしておらず、こちらに原因があるのか AWS 側に原因があるのかもわからない。

この現象に対して、より詳細な情報を知っている人がいれば教えてください。