【登壇】re:Growth 2019 SapporoでEC2 Image Builderについて発表しました #cmregrowth #reinvent

しばたです。
先日開催されたre:Growth 2019 SapporoEC2 Image Builderについて発表しました。

【12/17(火)札幌】CM re:Growth 2019 SAPPORO 開催!〜技術者による技術者のためのAWS re:Invent ふりかえり勉強会〜 #cmregrowth

登壇資料

セッションで使用したスライドはこちらです。

タイトルに(公開版)と入れていますが、時間が余った場合に話そうと思っていたおまけの部分を削っただけで本編の内容に変更はありません。

デモの内容について

EC2 Image Builderは目的が非常にはっきりしているサービスですので実際の手順を見せる方が良いだろうと考えデモを中心とした内容にしました。
当初の予定としてはAMIの作成を一通り終え、作成したAMIからEC2インスタンスを起動しコンポーネントのインストールが出来ている点までをお見せするつもりでしたが、結果は残念ながらコンポーネントのBuild phaseが終わるところで時間切れになってしまいました。

改めてこの原因を考えてみたのですが、おそらく、Windows AMIを作る際のsysprepに時間がかかってしまったのだと思われます。
登壇が決まってから最初はAmazon Linuxで検証を繰り返して登壇直前でWindowsでの検証を行ったため、自分の中でそこまでAMIイメージ作成に時間がかかる意識を持っていませんでした。当たり前ですがきちんと時間計測をしてこなかったのが一番悪いです。ここは完全に慢心してました...すいません。

作成順について

セッションの最初で触れましたが、EC2 Image Builderを開始するにあたり「Pipeline」の作成からはじめるのは軽い罠です。

上図の様にわかりやすい位置に「Image pipelines」「Create image pipeline」という要素があり、ここから始めてしまいがち(実際私も最初はここから始めてました)ですが、「Create image pipeline」でのウィザードは Ver.1.0.0固定のRecipeとPipelineを同時に作成する簡易ウィザードであり、EC2 Image Builderの各構成要素を把握するには正直向いていません。
デモで紹介した様にはじめにRecipeを作り、RecipeからPipelineを作成する方が仕組みを理解しやすいです。

EC2 Image Builderの利用に慣れた後は好みで扱えば良いかと思います。

スライドの内容について

スライドの内容について何点か補足しておきます。

IAMポリシー

EC2 Image BuilderでEC2インスタンスに割り当てるべきIAMロールはBuild/Testする内容によって異なるのはセッションで説明した通りです。
最低限必要になるのが、

  • AmazonSSMManagedInstanceCore : SSMの実行
  • EC2InstanceProfileForImageBuilder : Image Builderのサービスにアクセス

の2ポリシーでこちらについては以前に書いた記事を参考にしてください。

Build conponents / Tests の自作

セッションでは軽く触れるだけにしましたが、Build conponentsやTestsを自作する場合は以下のドキュメントが参考になります。

また、こちらの記事に実装例がありますので参考にしてください。

ビルド実行順

Pipelineにおけるビルド実行順についてはこちらのドキュメントに記載されています。

EC2 Image Builderによる独自処理についてはこちらのベストプラクティスに記載されています。

イメージの削除ボタンが押せない件について

セッションではイメージの削除ボタンが押せないと説明したのですが、本日改めて確認したところちゃんと押せる様になっていました。

私は悪い夢を見ていたのかもしれません...

最後に

非常に多くの方にご来場いただき感謝の気持ちでいっぱいです。ありがとうございます。
身内びいきではありますが他の社員の発表も面白く皆さんに楽しんでいただけたのではと思っております。

引き続きEC2 Image Builderを調査していきDevelopers.IOでアウトプットしていきますのでよろしくお願いします。