EC2 Image Builder で自動化する AMI パイプライン - ゴールデンイメージの構築とテスト
ゴールデン AMI の構築パイプラインを自動化し、コンポーネントの作成からセキュリティ強化テスト、マルチアカウント配布までを紹介します。
Image Builder の概要
EC2 Image Builder は AMI とコンテナイメージの構築・テスト・配布を自動化するサービスです。手動で EC2 インスタンスを起動し、ソフトウェアをインストールし、AMI を作成する手順を、パイプラインとして定義して自動実行します。セキュリティテストの自動実行とマルチアカウント配布で、組織全体のゴールデンイメージを標準化します。
レシピとパイプライン
イメージレシピはベース AMI (Amazon Linux 2023、Ubuntu など)、ビルドコンポーネント (パッケージインストール、設定ファイル配置)、テストコンポーネント (起動確認、ポート確認) で構成します。コンポーネントは YAML で定義し、シェルコマンドや PowerShell スクリプトを実行します。パイプラインはレシピを定期的に実行し、毎週月曜日に最新パッチ適用済みの AMI を生成するスケジュールを設定できます。配布設定で構築した AMI を他のリージョンやアカウントに自動コピーし、Organizations 全体でゴールデンイメージを共有します。
セキュリティ強化とマルチアカウント配布
Image Builder のテストコンポーネントで CIS ベンチマークや STIG 準拠のセキュリティチェックを自動実行し、基準を満たさない AMI のリリースを防止します。 AWSTOE (Image Builder TOE) コンポーネントは YAML で記述し、パッケージインストール、ファイル配置、サービス設定、テスト実行を宣言的に定義します。ディストリビューション設定で複数のアカウントとリージョンに AMI を自動共有し、 Organizations の OU 単位での配布も可能です。 AMI のライフサイクルポリシーで古いイメージを自動削除し、 AMI の増殖によるストレージコストを抑制します。 EventBridge でパイプラインの成功・失敗を通知し、新しい AMI の利用可能を下流のデプロイパイプラインにトリガーできます。 AMI 自動化の構成パターンを把握するうえで関連書籍 (Amazon)が参考になります。
Image Builder の料金と実行最適化
Image Builder 自体に追加料金は発生しません。コストはビルド中に起動する EC2 インスタンスと EBS ボリュームの使用料金です。ビルドインスタンスタイプを適切に選定し、コンパイルが不要な軽量レシピには t3.micro、大規模なソフトウェアスタックには m5.large を使い分けます。パイプラインのスケジュールを営業時間外に設定し、スポットインスタンスが利用しやすい時間帯に実行することでコストを削減できます。ベース AMI の更新頻度に合わせてパイプラインの実行間隔を設定し、不要なビルドを避けます。コンポーネントのキャッシュを活用して、変更のないステップの再実行を省略し、ビルド時間を短縮します。
まとめ
Image Builder は AMI とコンテナイメージの構築・テスト・配布を自動化するサービスです。セキュリティテストの自動実行で CIS ベンチマーク準拠を検証し、ディストリビューション設定でマルチアカウント・マルチリージョンに AMI を自動共有します。ライフサイクルポリシーで古いイメージを自動削除し、EventBridge で新しい AMI の利用可能をデプロイパイプラインにトリガーします。