toto_1212

技術のログをツラツラ書きます。自分用ですが参考にしていただけたら嬉しいです。間違ってたらドンドン突っ込んでください。

EC2 Image Builderのメモ

EC2インスタンス起動に必要な設定

インスタンスタイプ
・AMI(Amazon Mzchine Image)
・その他設定(NE、SG等)

ゴールデンイメージとは

事前に構成された環境をマシンイメージ化し、テンプレートとして使えるようにしたもの
これによりサービス提供の迅速化、内部共用利用による工数削減が見込める

ゴールデンイメージに含むものが増えるほど作成時間と頻度が問題になる
→イメージ作成のCI/CD化をする

ゴールデンイメージを定期的に作る課題

・CI/CD化には高いスキルを要する
・既存自動化ツールの維持運用が必要
・ソフトウェア更新の都度、手動で構築やテストが必要
・事前に問題検知ができず、本番運用後に問題が発生してしまう
☆EC2 Image Builderで課題解決する

EC2 Image Builderの機能

・OSイメージのビルド / カスタマイズ / デプロイを行う自動化されたパイプラインを作成
・セキュリティとコンプライアンスを満たした最新のイメージを作成
AWS VM Import/Exportと組み合わせることで、AWS環境だけでなくオンプレミスで使用できる
・イメージを実稼働環境で使用する前に検証する仕組みの組み込み
・リビジョン管理と AWS アカウント間での自動化スクリプト、レシピ、および
 イメージの共有

EC2 Image Builderの構成

コンポーネント
 ビルドコンポーネント
 →ソフトウェアパッケージのダウンロード、インストール、構成の手順を定義するドキュメント
 ソフトコンポーネント
 →ソフトウェアパッケージで実行するテストを定義するドキュメント

コンポーネントは「Phases」と「Steps」で構成(YAMLで記述)
 Phases
 →Stepをまとめたもの
 Steps
 →個々の作業単位で実行するアクションを定義

・イメージレシピ
作成するイメージの設計書
ソースイメージと適用するビルドコンポーネント/テストコンポーネントを定義する

・イメージパイプライン
イメージ作成を自動化するための設定
レシピ、インフラの設定、配布設定、それを実行するトリガをパイプラインとして定義する

EC2 Image Builderの動作

①ソースイメージ選択
—↓↓自動化されたパイプライン—
②イメージにソフトウェアなどをインストール
 → ソフトウェア、ミドルウェア、AP、OSアップデート、パッチ
AWS提供テストもしくは定義したテンプレートを実行しイメージをセキュアにする
 → セキュリティパッチ適用、暗号化、ポート閉塞等
AWS提供テストもしくは定義したテストを実行する
⑤作成イメージを指定のAWSリージョン/アカウントに配布

パイプライン実行時の内部動作

①レシピで定義されたソースイメージとインスタンスタイプから EC2インスタンスが起動
② EC2インスタンスにレシピで指定したビルドコンポーネントがダウンロードされ、 EC2インスタンス上で実行
③EC2インスタンスが停止しAMIが作られ、その後インスタンスは terminate
④作成されたAMIからEC2インスタンスを起動
⑤EC2インスタンスにレシピで指定したテストコンポーネントがダウンロードされ、 EC2インスタンス上で実行される。
 テスト後インスタンスはterminate
⑥上記の工程が正常に終了すると、 Output images の Status が「Available」になり完了
※実行制御はAWS Systems Manager Automationで実現されている

EC2 Image Builderの対応OSと出力フォーマット

・対応OS
Amazon Linux 2
Windows Server 2012、2016、2019、version 1909
Ubuntu Server 16、18
Red Hat Enterprise Linux (RHEL) 7、8
Cent OS 7、8(8はAMIを持ち込む必要あり)
SUSE Linux Enterprise Server (SLES) 15
・フォーマット
AMI
VHDX、VMDK、OVF

EC2 Image Builderの前提条件

レシピの内容に応じてIAMロールが必要
・最低限必要なIAMロールポリシーは以下
EC2InstanceProfileForImageBuilder (コンポーネントのビルドとテスト実行に必要なため)
AmazonSSMManagedInstanceCore (パイプラインは、SSM Automation により管理されるため)

レシピ内の記述によってそれぞれのIAMロール設定が必要です。
https://docs.aws.amazon.com/imagebuilder/latest/userguide/image-builder-service-linked-role.html

EC2 Image Builderはマネジメントコンソール、CLIAWS Tools for SDK、CloudFomationで利用可能

EC2 Image Builderのログ

・出力先
S3(権限設置が必要)
CloudWatch Logs(デフォルトで有効)

EC2 Image Builderの料金

EC2 Image Builder自体は無償
イメージの作成、保存、共有するために利用したAWSリソース料金は課金

メモ用にAWS Blackbelt資料から情報を抜粋しています。
20200825 AWS Black Belt Online Seminar AWS EC2 Image Builder