AWS CodeBuild GitHub Actions Runnerの代替: Latchkey
CodeBuildは強力なAWSネイティブの選択肢です。LatchkeyはAWS上でCIインフラを一切運用したくない場合のマネージドな代替です。
CodeBuildでホストされるGitHub Actions runnerは、AWSに全面的に取り組んでいる場合の自然な選択です。AWS CodeBuildのドキュメントによると、それらはIAM service roleとオプションのVPCアクセスを備えてあなたのアカウント内で実行され、WORKFLOW_JOB_QUEUED webhookとcodebuild-<project>-${{ github.run_id }}-${{ github.run_attempt }}というruns-onラベルによってトリガーされます。Latchkeyは、そのAWSフットプリントを運用せずにマネージドrunnerを望むチームのための代替です。このページは両者を正直に比較します。
一目でわかる比較
| 機能 | AWS CodeBuild | Latchkey |
|---|---|---|
| Runnerモデル | あなたのAWS内でself-hosted | 完全マネージド |
| AWSアカウント / IAM / VPCが必要 | はい | いいえ |
| Webhook設定 | はい | いいえ |
| 自己修復CI | いいえ | はい |
| VPC内のAWSリソースアクセス | はい | AWSネイティブではない |
| セットアップの手間 | Project + role + webhook | runs-on一行 |
| 最適な用途 | AWSネイティブなチーム | マネージドrunner、AWS運用なし |
CodeBuildが正しい選択となる場合
パイプラインがIAM roleを介したAWS認証情報を必要とする、プライベートサービスに到達するためVPC内で実行しなければならない、またはAWS環境の残りとの緊密な統合から恩恵を受ける場合、CodeBuildは堅実なファーストパーティの選択です。AWS CodeBuildのドキュメントによると、Linux、ARM (Graviton)、Windows、Lambda、GPU対応のcomputeに加え、予約容量フリートをサポートします。
Latchkeyのような代替が適合する場合
VPC内のAWSアクセスが不要で、CodeBuildのproject、service role、webhookを所有したくないなら、完全マネージドrunnerがそのサーフェスエリアを取り除きます。Latchkeyは自己修復を追加し、メモリ不足によるkill、ディスクフルエラー、registryのタイムアウトがjobを失敗させる代わりに自動的に検出・再試行されるようにします。
決め方
- AWSネイティブのIAMとVPCアクセスが要件なら、CodeBuildを選びましょう。
- AWS統合よりも低運用が重要なら、マネージドな代替を選びましょう。
- どちらを選ぶにせよ、決定する前に実際のworkflowでベンチマークしましょう。
結論
CodeBuildは強力なAWSネイティブのrunnerホストです。その統合が必要なら維持してください。自己修復を備えAWSのセットアップ不要なマネージドrunnerが欲しいなら、Latchkeyは並べて評価する価値があります。無料で始めて実際のbuildと比較しましょう。