🙌

複数のAMIを統一的に変更する方法

に公開

説明

AWSではアカウントを分けてオーソドックスにdev/stg/prodの3つの環境を保持していることが多い。
しかし、顧客へ公開しているサンドボックス環境や他にもdev2環境等増えていくこともある。
この中で案外面倒なのが各環境のAMIの更新である。
今回はその中で一括で変更する手法を使ったため記録に残す。

シチュエーション

AMIを本番環境へリリースした後、そのAMIを特定の環境へ自動的に伝播させる。

手段

実際の設定はここを見れば良いので詳しくは書かない。

https://docs.aws.amazon.com/ja_jp/autoscaling/ec2/userguide/using-systems-manager-parameters.html

流れ

大枠は以下である。

  1. ソースアカウントにSSMパラメータを新たに作成する。
  2. SSMパラメータにAMIのIDを格納する
  3. SSMパラメータをRAMを用いてユーザアカウントに共有する
  4. ユーザアカウントの起動テンプレートでAMIの指定でSSMパラメータを対象にする

切り替え方法

新しいAMIを作成した際の切り替え方法

  1. ユーザアカウントに新しいAMIを共有する
  2. ソースアカウントのSSMパラメータのAMIIDを作成したAMIIDへ変更する

少し困った点

このようにSSMで共有されたパラメータのARNを起動テンプレートに設定できる。
※ マスクしている箇所は「アカウントID」と「あんまり見られたく無い文字列」

Discussion