🚀
AWS CodeBuildでのVaporのDocker Buildに最適なインスタンスタイプを探した結果
概要
AWS CodeBuildで、ほぼ初期状態のVaporプロジェクトをdocker buildしてECRにpushするようにしました。その際に、CodeBuildのインスタンスタイプをどれくらいのものを使えば良いのかを確認するため、いろいろなインスタンスタイプで試してみました。
結果
2025/03/23時点で1ドル149.33円として以下のようになりました。
インスタンスタイプ | メモリ (GiB) | vCPU | 合計秒数 (sec) | 実行までの時間 (sec) | 実行時間 (sec) | 1分あたりの金額 ($) | 1回あたりの料金 ($) | 1回あたりの料金 (円) |
---|---|---|---|---|---|---|---|---|
arm1.small | 3 | 2 | 607 | 2 | 605 | 0.0034 | 0.03 | 5.12 |
arm1.medium | 8 | 4 | 434 | 2 | 432 | 0.007 | 0.05 | 7.53 |
arm1.large | 16 | 8 | 350 | 2 | 348 | 0.015 | 0.09 | 12.99 |
arm1.xlarge | 64 | 32 | 387 | 91 | 296 | 0.06 | 0.30 | 44.20 |
考察
実行時間
インスタンスのスペックを上げれば上げるほど、実行時間が短くなることがわかりました。流石にスペックを上げるとコスパは下がりますが、xlargeはsmallよりも2倍速くなっています。
合計秒数
しかし、合計秒数で見ると、xlargeインスタンスはQueueに入っている時間が長く合計秒数がlargeよりも増えてしまっています。たまたまかもしれませんが、xlargeはインスタンスの確保に時間がかかるのかもしれません。
あとがき
arm1.small
は毎月100分の無料枠があるため、コスパが抜群です。基本はarm1.small
がベストだと思われます。
しかし、初回のビルド設定で何度もビルドする場合や、100分を超えて何度もビルドする場合には、ビルドをもっと速くしたいこともあります。コストは2.6倍ほどかかりますが、large
を使用して、1.7倍のビルド速度で5分程度のビルド時間を実現するのもアリだと思います。
Discussion