Image BuilderでカスタムAMIを作成してEC2を起動してみた
はじめに
かつまたです。今回はImage Builderを使用して、WebサーバをインストールするカスタムAMIを作成し、そのAMIを使用してEC2を起動してみたため、手順をご紹介します。
AWS Image Builderとは
Image Builder
AWS Image Builderは、EC2インスタンス用のカスタムAMIを自動的に作成、管理、デプロイするためのサービスです。AMIのバージョニングやAMI取得の自動化を行えます。
カスタムAMI
カスタムAMIは、特定の要件に合わせてカスタマイズされたAMIです。通常のAMIと同様に、EC2インスタンスの起動に使用されますが、アプリケーションやツールをあらかじめインストールできるプリインストールソフトウェアやセキリュティやネットワークの詳細な設定が行える機能を有しています。
コンポーネント作成
ソフトウェアのインストール、設定の適用、スクリプトの実行など、AMIのビルドプロセスにおける具体的なタスクを定義することができるコンポーネントの作成を行います。
1。「コンポーネント」→「コンポーネントを作成」を選択し、「コンポーネントタイプ」を「ビルド」、互換性のあるOSバージョンを「Amazon Linux」と選択します。
2.「定義ドキュメント」にNginxをインストールするためのビルドコンポーネントとして以下のスクリプトを記述します。
イメージレシピ作成
1.「イメージレシピ」→「イメージレシピを作成」を選択し、「ベースイメージ」の「イメージ名」を「Amazon Linux2 x86」とします。
2.ビルドコンポーネントで「フィルターの所持者」を「ユーザー所有」とし、先ほど作成したコンポーネントを選択します。レシピを作成します。
イメージパイプライン作成と実行
1.「イメージパイプラインの作成」から「ビルドパイプライン」を「手動」と選択します(検証のため)。
2.「レシピを選択」では「既存のレシピを使用する」から先ほど作成したレシピを選択します。
3.その他設定はデフォルトで進み、イメージパイプラインを作成します。
4.パイプラインを実行し、AMIを作成します。作成したパイプラインを選択し、「アクション」→「パイプラインを実行」からAMIを作成します。
AMIからEC2起動確認
作成したAMIからEC2を起動します。
1.「EC2」→「インスタンスを起動」からインスタンスを起動していきます。「アプリケーションおよび OS イメージ (Amazon マシンイメージ)」を「自己所有のAMI」に変更し、作成したAMIを選択します。
2.VPCとセキュリティグループを選択します。今回はNginxが正しくインストールされていることを確認するために、インバウンドルールにSSH(22)とHTTP(80)を許可するルールを設定します。EC2を起動します。
3.起動したEC2にSSH接続し、以下コマンドを実行します。出力の「active (running)」を確認することでNginxが正しくインストールされ、起動していることを確認します。
sudo systemctl status nginx
4.また、作成したEC2の詳細画面の「パブリック IPv4 アドレス」をブラウザで入力することでWebページが表示されることを確認できます。
おわりに
Image BuilderはEC2から定期的にAMIを取得するサービスというイメージが強かったのですが、カスタマイズしたAMIを作成できる方法を学ぶことができ、知見が深まりました。ご覧いただきありがとうございました。
参考
コンポーネントを使用して Image Builder イメージをカスタマイズする - EC2 Image Builder
アノテーション株式会社について
アノテーション株式会社はクラスメソッドグループのオペレーション専門特化企業です。サポート・運用・開発保守・情シス・バックオフィスの専門チームが、最新 IT テクノロジー、高い技術力、蓄積されたノウハウをフル活用し、お客様の課題解決を行っています。当社は様々な職種でメンバーを募集しています。「オペレーション・エクセレンス」と「らしく働く、らしく生きる」を共に実現するカルチャー・しくみ・働き方にご興味がある方は、アノテーション株式会社 採用サイトをぜひご覧ください。