ヤマムギ

growing hard days.

*

EC2 Image BuilderでRocket.ChatのAMIを作って起動テンプレートを更新しました

   

EC2 Image Builderの練習をしようと思い、Rocket.ChatのAMIを定期的に作成するシナリオでやってみました。

EC2 Image Builderではパイプラインがレシピで指定したとおりにAMIを作成します。
レシピではインストールや設定のためにビルドコンポーネントとテストコンポーネントがあります。
Amazon管理のコンポーネントもあります。
今回はRocket.Chatインストール用のコンポーネントを作成して、CloudWatch AgentのインストールとテストはAmazon管理コンポーネントを使用しました。
AMIのもとになるEC2インスタンスの環境はインフラストラクチャ設定をあらかじめ作成しました。
AMIを使用する起動テンプレートと関連するライセンス設定は、ディストリビューション設定をあらかじめ設定しました。

コンポーネントの作成

Rocket.Chatインストール用のビルドコンポーネントを作成しました。

ベースイメージはUbuntu20を予定しています。
コンポーネントバージョンは1.0.0にしました。

例をもとにして作成しました。

インフラストラクチャ設定の作成

次にインフラストラクチャ設定を作成しました。
IAMロールは新規作成すると、EC2 Image Builderが必要なIAMロールを作成してくれます。
ここで選択したIAMロールが環境構築するEC2インスタンスで使用されます。
レシピで使用するコンポーネントによっては追加のIAMポリシーが必要な場合もあります。
使用するコンポーネントの説明を読んで適宜追加します。

インスタンスタイプ、SNSトピック、VPC、サブネット、セキュリティグループを設定しました。

ディストリビューション設定の作成

次にディストリビューション設定を作成しました。

License Managerのライセンスと、起動テンプレートを設定しました。
AMI作成時に新バージョンをデフォルトバージョンにするにチェックを入れました。

起動テンプレートはあらかじめAMIなしのテンプレートを作成しておきました。

イメージレシピの作成

次にイメージレシピを作成しました。

ベースイメージはクイックスタートのubuntu20にしました。
バージョンは利用可能な最新にしました。

ビルドコンポーネントはあらかじめ作成しておいたRocket.Chatインストール用と、Amazon管理のCloudWatch Agentインストールのビルドコンポーネントにしました。

テストコンポーネントはAmazon管理のLinuxの再起動テストを選択しました。

イメージパイプラインの作成

次にイメージパイプラインを作成しました。

スケジュールでは、依存関係が更新されていればスケジュールの時間にパイプラインが実行されるとしました。
イメージレシピのベースイメージ、コンポーネントに更新があった場合に実行されます。

作成したイメージレシピを選択しました。

作成したインフラストラクチャ設定を選択しました。

作成したディストリビューション設定を選択しました。

イメージパイプラインの実行

作成したイメージパイプラインを手動で実行しました。

インフラストラクチャ設定で指定したとおりにEC2インスタンスが起動しています。

/aws/imagebuilder/rocket-chat-recipeというレシピ名でCloudWatch Logsロググループが出力されていました。
ログストリームはレシピのバージョンと回数でした。

ステータスが利用可能になり正常完了しました。

AMIが作成されています。

起動テンプレートの新バージョンが作成されデフォルトになっていました。
AMIはEC2 Image Builderで作成されたAMIになっています。


最後までお読みいただきましてありがとうございました!

「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。

「AWS認定資格試験テキスト AWS認定AIプラクティショナー」という本を書きました。

「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。

「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。

「AWSではじめるLinux入門ガイド」という本を書きました。

 - AWS , ,

  関連記事

Route 53のホストゾーンにサブドメインを登録する

親ドメインを移行しないでサブドメインの DNS サービスを Amazon Rou …

Amazon Elasticsearch ServiceにMySQLのデータを投入してkibanaで可視化してみる

MySQLのデータの可視化にAmazon Elasticsearch Servi …

WordPress、プラグインのアップデートしてBlue/Greenデプロイ

現在のブログの構成です。 WordPressとプラグインのアップデートをして、デ …

RDS for MySQL のインスタンスタイプ変更

当ブログのデータベースは、RDS for MySQLです。 個人利用ですし、障害 …

Amazon EC2 インスタンスメタデータサービス(IMDS) v2のみにしました

今さらながらですが、EC2 インスタンスメタデータサービス(IMDS) v2を確 …

JAWS-UG Osaka 第15回勉強会 AWS Summit Tokyo 2016 アップデート追っかけ会

「JAWS-UG Osaka 第15回勉強会 AWS Summit Tokyo …

AWS Backupで取得したAMIとスナップショットの削除

個人で使っているAWSリソースの断捨離をしてました。 Cloud9も複数アカウン …

「機械学習モデルをトレーニングする」チュートリアル

Amazon SageMaker Clarifyのデモを記録しておきたいので「機 …

ハンズオン: グローバルインフラストラクチャ & API ~AWS認定デベロッパーアソシエイト(DVA-C02)~

このブログは2026年6月29日翔泳社さんより発売される「AWS教科書 AWS認 …

Amazon Quantum Ledger Database(QLDB)でサンプル台帳の作成と検証

Quantum Ledger Database(QLDB)を触ったことなかったの …