Upgrade to Pro — share decks privately, control downloads, hide ads and more …

EC2 Image Builder

EC2 Image Builder

2019年12月17日に行われたre:Growth 2019 Sapporoで発表したスライドです。

Takuya Shibata

December 17, 2019
Tweet

More Decks by Takuya Shibata

Other Decks in Technology

Transcript

  1. 2 自己紹介 Takuya Shibata - AWS事業本部 コンサルティング部 - ソリューションアーキテクト -

    CLR/H と きたあず の裏方 - PowerShell おじさん - 好きなAWSサービス
  2. 8 Recipes 対象OS • Amazon Linux 2 • Windows Server

    2012 R2~2019 (英語) • SSM Agentをインストール済みのカスタムAMI
  3. 9 Recipes EC2 Image Builderは Build components (後述) の実行にSSM Agentを使用する

    • SSM Agentのバージョン要求はドキュメントに無い • SSM Ducumentが実行できれば良さそう (個々のcomponentはDocumentとして実行される) • ビルド時のトラブルシュートはSSMと同様
  4. 10 Recipes Initiate a new image build when there are

    updates to your selected image version.
  5. 23 Run Pipeline ビルド実行順は以下 1. Build phase 1. Build用 EC2インスタンス作成

    (Source AMIより) 2. Build componentsの適用 3. 独自の終了処理 • Windowsではsysprepを実行 (RunSysprepGeneralize) • Amazon Linux 2では専用のシェルスクリプトを実行 (SanitizeScript) 2. Test phase 1. Test用 EC2インスタンス作成 (Build後 AMIより) 2. Test componentsの適用
  6. 25 余談 コマンドラインはAWS CLIしか対応していないと 思っていたら、何気にAWS Tools for PowerShellも 対応していた •

    Ver.4.0.2.0 – 2019.12.13より # モジュール名は AWS.Tools.ImageBuilder Install-AWSToolsModule -Name ImageBuilder # 前ページのイメージ削除はこんな感じ Remove-EC2IBImage -ImageBuildVersionArn <イメージのARN>/<ビルド番号>
  7. 26 これから確認したいポイント 1. Build components/Tests同士の依存関係は? • いちcomponent/test内では順序制御可能だが、 component/test同士の依存関係は定義できないっぽい 2. Build

    components/Testsの実行順序制御は? • 実行順序を制御する方法が見つからない • ビルドログを見ると単純に選択順になってる様には見える… • 実行順序に依存するものを記述しない方がよさそう
  8. 27 これから試したいポイント 1. EC2 Image BuilderからVMDK、VHDXなどの オンプレ環境向けイメージを出力できる、らしい • GitHubのドキュメントに従いCLIから試そうとしたが、 CLIがまだ対応していない風のエラーを吐き手詰まりに

    なった • 今日確認したらドキュメントから手順が消え去ってた… 2. CI/CDと絡めて何か • 正直Codeシリーズとの統合イメージが掴めていない • Codeシリーズ抜きにすればSNSでいろいろ通知できる ので、なんとでもなりそうではある
  9. 30