[アップデート] EC2 Image Builderで構築したAMIがAWS Organizations組織およびOUで共有可能となりました

こんにちは。サービスグループの武田です。EC2 Image Builderで作成したイメージをAWS Organizationsの指定した組織あるいは組織単位(OU)で共有できるようになりました。
2021.11.29

こんにちは。サービスグループの武田です。

EC2イメージやコンテナイメージを作成するためのパイプラインを簡単に構築できるEC2 Image Builderというサービスがあります。これまでは作成したイメージは自身で使用するか、指定したアカウントIDと共有できました。今回のアップデートでAWS Organizationsの指定した組織あるいは組織単位(OU)での共有が可能となりました。これによって複数アカウントへの共有が簡単になります。

検証環境

執筆時(2021-11-29 15時時点)はマネジメントコンソールが組織の共有に対応していなかったため、ディストリビューション設定のみAWS CLIで作成しました。なお、AWS CLIも最新版へのアップデートが必要です。マネジメントコンソールが対応したら追記します。

$ aws --version
aws-cli/2.4.2 Python/3.8.8 Darwin/20.5.0 exe/x86_64 prompt/off

やってみた

というわけでさっそく試していきましょう。

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

次のようなJSONファイルを用意します。ここで123456789012は組織のマネジメントアカウントのID、o-abcdefg123は組織IDとなります。

dist-conf.json

{
    "name": "Share Organizations",
    "description": "AMI Share",
    "distributions": [
        {
            "region": "ap-northeast-1",
            "amiDistributionConfiguration": {
                "launchPermission": {
                    "organizationArns": [
                        "arn:aws:organizations::123456789012:organization/o-abcdefg123"
                    ]
                }
            }
        }
    ]
}

これを入力としてCLIでディストリビューション設定を作成します。

$ aws imagebuilder create-distribution-configuration --cli-input-json file://dist-conf.json

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

それでは続いてイメージを作成するためのパイプラインを作成していきます。

パイプライン名はtestとしました。

ビルドスケジュールは1回作るだけですので手動です。

レシピは新しいものを定義します。

名前はtest、バージョンは1.0.0としました。この辺は任意の値で問題ありません。

ベースイメージはAmazon Linuxを使います。

ビルドコンポーネントの選択です。今回はPythonを入れてみました。

テストコンポーネントはrebootです。

インフラストラクチャ設定はデフォルトを使用します。

ディストリビューション設定は、最初にCLIで作成したものを使用します。問題なく作られていればShare Organizationsが選択できるはずです。

以上の設定で抜け漏れなどがなければイメージパイプラインが作成できるはずです。

イメージの作成

イメージの作成はパイプラインを実行するだけです。先ほど作成したパイプラインを実行してしばらく待ちましょう。

問題なく作成されました。

EC2のAMI一覧にも作成されたイメージが表示されていることが確認できます。

別アカウントで起動してみる

それでは 同じ組織の別アカウント に切り替えてみましょう。こちらのアカウントでは自己所有だと表示されませんが、プライベートイメージにすると先ほど作成したものと同じイメージが表示されます。

起動も問題なくできました。

まとめ

マルチアカウント環境においてイメージ管理を1アカウントに集約させるケースで、その他のアカウントとAMIを共有するのが簡単になりますね。今回は試していませんがOUを指定しての共有もできるため、大きな組織であってもスコープを絞って共有でき管理コストの低減に役立つアップデートです。