EC2 Image Builder でAMI をAWS Organizations と OU への共有をやってみた(管理コンソール編)

ゴールデンイメージの一元管理・配布がまた一つカンタンになりました
2021.12.21

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

ちゃだいん(@chazuke4649)です。

ちょっと前のアップデートですが、EC2 Image Builder でAMI を AWS Organizations と OU に共有することが可能になりました。

EC2 Image Builder を使用して、Amazon マシンイメージ (AMI) を AWS Organizations および Organizations ユニットと共有することが可能に

何が嬉しい?

以前のアップデートでカスタムAMIをOrganizationsとOUに共有することができるようになりましたが、それをImage Builderのパイプラインの中で設定できるようになりました。アップデート前までは、Image Builderで作成したゴールデンイメージを他のAWSアカウントへ共有する場合、明示的にAWSアカウントIDの指定などが必要でしたが、今後はOrganizations全体や個別のOUをあらかじめ指定できるようになります。

やってみる

速報やってみたブログとしては以下をご覧ください。

上記との差分としては、アップデート当初は管理コンソールが未対応でCLIのみの対応でしたが、現時点では管理コンソールから操作できますので、その点管理コンソール版としてやってみます。

以下ドキュメントを参考にします。

Create and update AMI distribution configurations - EC2 Image Builder

前提条件としては、Organizationsの利用、および共有元と共有先のAWSアカウントがOrganizationsに所属している必要があります。

Image Builderの設定手順のうち、他工程は割愛し、アップデートされた箇所を中心に紹介します。

  • イメージパイプラインの作成(割愛)
  • イメージレシピの作成(割愛)
  • インフラストラクチャ設定の作成(割愛)
  • ディストリビューション設定の作成 ←ここ
  • パイプラインの実行 ←ここ

なお、そもそも Image Builderの概要や、他工程の手順については以下ブログをご覧ください。

EC2のイメージ作成を劇的に効率化するEC2 Image Builderが発表されました! #reinvent
※上記速報ブログの最後にリリース直後の様々な検証記事のリンクがあります。

EC2 Image Builder の記事一覧 | DevelopersIO

1点注意点として、当初はクロスアカウントでAMIを共有する場合、Resource Access Manager(RAM)の作成も必要でしたが、現在はRAMを作成せずに共有できる仕様になっています

参考記事) EC2 Image Builderで作ったイメージを他アカウントに共有してみた #reinvent

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

新しいディストリビューション test-lb-distribution-workloads-ou を作成することにします。

リージョン設定のセクションにて、AMI共有を展開します。 こちらでOUへの共有を設定します。

  • 起動許可:Private
  • プリンシパル:Organizations Unit(OU) ※ Organizations全体も選択可能
  • 具体的な OU IDを指定

おまけで、起動テンプレート設定にて、イメージパイプラインを作成するAWSアカウントに存在する既存の起動テンプレートを指定してみます。

以上で完了し、イメージパイプラインの作成が完了しました。

2.イメージパイプラインを実行する

イメージパイプラインを実行します。

共有元AWSアカウントの確認

実行後しばらく待つと、イメージの構築が完了したことがステータスにて確認することができました。ami-019983e...というAMIが作成されました。

ディストリビューションタブを開くと、先ほど設定した内容が確認できます。

実際に起動テンプレートを確認すると、ami-019983e... に更新されていることが確認できました。

共有先OUに属するAWSアカウントの確認

Workloads OUに属するAWSアカウントに移動し、AMIコンソールを開きます。 プライベートイメージを選択すると、下図の通りami-019983e...が共有されていることが確認できました。

AMIの所有者やソースには共有元のAWSアカウントIDが記載されていました。

ちなみに、起動テンプレートの共有は確認できませんでした。現時点ではImage BuilderによるAMIの共有はOrganizations/OU単位で可能だが、起動テンプレートは自アカウントのみということがわかりました。

終わりに

今回のアップデートでImage Builderで作成したカスタムAMIのOrganizations/OU共有のまた一つカンタンになりました。ピンときた方はぜひ利用検討してみてください。

それではこの辺で。ちゃだいん(@chazuke4649)でした。