2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GitHub ActionsのDocker ARM64ビルドを30分→5分に短縮した話

Last updated at Posted at 2026-01-01

TL;DR

  • GitHub ActionsでのDocker ARM64ビルド(QEMU)が激遅だった
  • ビルド処理だけAWS CodeBuildに任せた
  • 30分かかっていたビルドが5分に短縮された
  • 月1ドル程度で、ビルド待ちのストレスが解消された

はじめに

個人プロジェクトのWebアプリをなるべく安く運用したくて、EC2のt4g.smallを採用しました。

コスパは抜群なのですが、いざCI/CDを組んでみると大問題が。フロントとAPI、それぞれのビルドに15分ずつかかり、合計30分も待たされるようになったのです。

ひよっこエンジニアである私は、APIの接続先URLミスや環境変数の入れ忘れなど、実際にデプロイして初めて気づく凡ミスが頻発します。GitHub Actionsは無料で使えて本当にありがたいのですが、たった1行の修正を反映するために30分も待ち続けるのは、無料というメリットを打ち消すほどの大きなストレスでした。

なぜ30分もかかっていたのか?

当時の構成はこうでした。

  • デプロイ先:ARM(t4g.small)
  • CI:GitHub Actions(プライベートリポジトリ)
  • 作りたいもの:ARM64向けDockerイメージ

ところが、プライベートリポジトリの標準ランナーは基本x64です。
そのためARM64イメージを作るには、QEMUというエミュレーションを通す必要がありました。
ARM64の命令をx64で逐次変換しながら動かすので、ビルド処理が激遅になっていました。これは例えるなら、辞書を引きながら慣れない外国語で仕事をするような状態です。

※公開リポジトリやEnterpriseプランならARMランナーも利用可能だそうです

ビルドをARMネイティブな環境に任せる

ARMのビルドなら、最初からARMのマシンでやればいいじゃないか?
ということで、ビルド作業だけAWS CodeBuildに任せました。
CodeBuildはARM系の実行環境を選べるので、エミュレーションなしの爆速ビルドが可能です。
結果、ビルド時間が30分から5分まで短縮しました。

1ドルで25時間を買った計算

一番の懸念だった追加コストですが、計算してみると驚くほど安上がりでした。

私が1ヶ月にかかったCodeBuildのコストは約1ドル。CodeBuildは実行時間の従量課金で、私の環境の単価が約$0.005/分、無料枠が100分/月あります。

そこから逆算すると
1ドル / 0.005 = 200分、に無料枠の100分で合計300分のビルド時間。
1回のビルドが約5分なので、1ヶ月でおよそ300分 / 5分 = 60回ビルドしていた計算になります。

もしQEMUのままだったとしたら、
60回 × 30分 = 1800分、約30時間もビルド時間に費やしていたことになります。

つまり今回の構成にしたことで、
(30分 − 5分)× 60回 = 1500分、約25時間分の待ち時間を削減できたことになります。

たった1ドルでこのストレスが消えるなら、私にとっては十分すぎる投資でした。

おわりに

CI/CDといえばGitHub Actionsくらい、という知識しかなかったので、今回CodeBuildというサービスを知れたこと自体が、私にとって大きな学びになりました。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?