WebLog

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

2023/08/19 09:25

はじめに

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

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

普段は 3 分程度でビルドが終わるので、「なにかおかしい」と思い詳しくみたところ、QUEUEDされてから次のプロセスに移行できていなかった。

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

結論

redditで「クォータあげたら治った」みたいな情報があったので、ダメ元で「Concurrently running builds」のクォータを上げてみたら本当に治った。

Blocked

Blocked

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

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

サービスクォータの緩和をリクエストする
サービスクォータの緩和をリクエストする

サービスクォータの緩和をリクエストする

サービスクォータでクォータの緩和をリクエストする

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

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

AWS リソースの再作成

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

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

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

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

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

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

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

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

Blocked

Blocked

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

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

最後に

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

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

最新の投稿