Amazon Web Services ブログ

[AWS Black Belt Online Seminar] AWS EC2 Image Builder 資料及び QA 公開

先日 (2020/08/25) 開催しました AWS Black Belt Online Seminar「AWS EC2 Image Builder」の資料を公開しました。当日、参加者の皆様から頂いた QA の一部についても共有しております。

AWS クラウドサービス活用資料集(すべての過去資料が閲覧できます)

Q. 推奨として、AMI の作成は各リージョンで行った方がいい、あるいは1リージョンで作ったもののコピーがいい、などありますか?リージョン固有の何かがないかと懸念しています。
A. EC2 起動のために AMI はリージョンごとに必要になりますが、EC2 Image Builder はマルチリージョンへのイメージ出力に対応していますので、特別な考慮無く ImageBuilder は作成した AMI を必要なリージョンにコピーできます。ただし、香港やバーレーンなど一部のリージョンについては、サービス利用及びイメージを展開するために事前のリージョン有効化が必要です。また、EC2 Image Builder 実行時にソースイメージとして選択する AMI は、EC2 Image Builder と同じリージョンに存在する必要があります。

Q. スライド:EC2 Image Builder パイプライン 実行時の内部動作テスト後にインスタンス削除となっておりますが、テスト中の EC2 料金もかかる理解でしょうか。
A. はい、テスト中の EC2 料金も発生致します。

Q. EC2 Image Builder ではビルド時間が 15 ~ 20 分程度かかりますが、所要時間を短縮する事は可能ですか?SystemManager で進行を見ていると、Sleep でアイドルしている時間が存在する模様。このアイドル時間の短縮、キャンセルは無理なのでしょうか?
A. 現時点で、EC2 Image Builder からの実行では、Sleep を短縮する方法はございません。実行されているドキュメントを参考にイメージ作成パイプラインを独自実装することで個別に最適化することは可能ですが、冪等性を欠いたり、汎用性を失う可能性がありますので注意が必要です。

Q. Ansible gather_facts は不要、というのは ansible_distribution など gather_facts を利用する要件がなければ不要、ということで要件があれば gather_facts を使っても問題ない、と考えてよいですか?
A. gather_facts を有効化した状態で、今回ご紹介した方法で Ansible playbookを実行することも可能ですが、無効化することを推奨します。
理由は gather_facts を有効化することによってターゲットノードのホスト情報を取得することができるのですが、EC2 Image Builder からの実行ではリモートではなくローカルホスト上でAnsibleを実行することになるため、情報取得という点ではあまり意味の無い設定になってしまうからです。また、有効化することによる実行時間増加などのオーバーヘッドもございます。

Q. サンプルそのものは、テキストファイル等で Web に掲載されますでしょうか?
A. AWS blog 及びドキュメントにサンプルがございますので、ご案内致します:

“Image Builder コンポーネントをローカルで開発する”のコードについては、配布資料をご参照下さい。

Q. パッケージダウンロードの外部通信について、CodeArtifact と連携できないでしょうか?
A. EC2 Image Builder を使ってイメージを作成する際、パッケージダウンロードにおけるリポジトリとして CodeArtifact と連携することは可能です。
コンポーネントにて ExecuteBash アクションを指定し、CodeArtifact 利用時の接続手順「推奨設定: AWS CLI を使用して設定する」を参考にスクリプトを実行するようにしてください。

(東京リージョンでnpm-storeを利用して aws-cdkをインストールする時の例)
aws configure set region ap-northeast-1
aws codeartifact login --tool npm --repository npm-store --domain [domain name] --domain-owner [AWSアカウント]
npm install -g aws-cdk

Q. Debian など Amazon EC2 Image Builder が Source image としてまだサポートしていないものを使用する場合、対応する方法はありますか? Image Builder 登場前のように HashiCorp Packer などユーザーが個別に環境準備するような形でしょうか? https://github.com/awslabs/ami-builder-packer など、なにか参考になる資料ありましたら教えていただけますか?
A. EC2 Image Builder に準ずる機能を、サポート外OSで実装する場合は、BlackBelt内でもご紹介致しましたドキュメントファイル(ImageBuilderBuildImageDocument,ImageBuilderTestImageDocument)をご参考に独自実装頂くか、サードパーティーのミドルウェアをご利用頂くことをご提案致します。サポート OS の拡張につきまして、今後もお客様のご要望を反映していきますので、ぜひ引き続きお声を頂けますと幸いです。

Q. イメージ作成用 EC2 の Private Subet 作成についてですが、処理の順番などの仕様から HTTP プロキシサーバの利用では対応不可という理解で正しいでしょうか?
A. ご認識の通りです。お手数をおかけしますが、Private Subnet で作業を行いたい場合は、NAT ゲートウェイを作成して、EC2 を作成するサブネットからルーティングする構成をご検討下さい。

Q. EC2 Image Builder で作成したスナップショットは別途削除が必要な認識です。定期的にイメージビルドを繰り返す場合、AMI、スナップショットのライフサイクル管理、特にコストになるスナップショットの開放は、どのように実現するのが最善でしょうか?
A. AMI やスナップショットのライフサイクルを管理する場合は、タグや作成日時などをキーとして世代が古いものを削除する Lambda を作成し、Cloudwatch Events などから実行するなどの対応が考えられます。
なお、AMI にはそれに紐づいたスナップショットが存在し、AMI がアクティブ(登録されている)場合はそのスナップショットの削除はできません。こちらをご参照ください。
ですので、まず AMI を削除し、問題無ければそれに紐づいたスナップショットも削除する、という風に実装されると良いでしょう。

ゴールデンイメージを作成するのではなく、稼働中のサーバのAMIを定期的に取得し、ライフサイクル管理したい場合は AWS Backup のご利用をご検討ください。

また、AMIを持たないEBS スナップショットライフサイクルの自動化については、Amazon Data Lifecycle Manager もご確認下さい。

Q. AWS Backup で取得した AMIを EC2 Image Builderを使ってテストはできますか?バックアップテストに使えないかと考えています。
A. AWS Backup で取得した AMI を、EC2 Image Builder のインプット AMI とすることは可能です。EC2 Image Builder を使ってイメージの検査をすることで、取得した AMI がきちんと機能するかを確認できます。
ソースイメージを指定するには、”Define recipe” の Select image で、AMI ID 欄に AWS Backup で取得したAMIを入力してください。

今後の AWS Webinar | イベントスケジュール

直近で以下を予定しています。各詳細およびお申し込み先は下記URLからご確認いただけます。皆様のご参加をお待ちしております。


AWS Summit Online 絶賛開催中!

日本初の AWS Summit Online は、従来の AWS Summit Tokyo/Osaka で想定するセッションをフルスケールで提供します。150 を超えるセッション、20 を超えるセルフペースハンズオンにより、ご自分のレベルと目的に沿って好きな時間に知識を得ることができます。

開催期間: 2020 年 9 月 8 日 ~ 9 月 30 日 | 詳細・お申し込みについてはこちら≫

ライブ配信されたセッションほか、AWS 認定セッション、お客様事例セッション、セルフペースハンズオン、Partner Discovery Session (パートナーセッション) などを現在オンデマンドで配信中です。ライブで配信された基調講演などを見逃した方はこの機会にどうぞご視聴ください。

【初心者向け:AWS Summit Online の総復習としてお薦めです】AWSome Day Online Conference

「AWSome Day Online」は、AWSの主要サービスや基礎知識を約 2.5 時間という短い時間で、ポイントを押さえて紹介いたします。技術的な面だけではなく、AWS クラウドを学ぶために必要となる知識を身に付けたい方、エンジニアのみならず、営業職、プリセールス職、学生まで幅広い方々におすすめします。

※この回ではAWSエキスパートによる技術的な内容についてチャット形式でのQ&Aを実施します。
※AWS サービスの導入に関するご相談も同時にチャット形式にて対応します。
※2020年は毎月第一水曜日に開催します。

日時:2020 年 10 月 7 日(水) 15:00 – 18:00 終了予定 | 詳細・お申込みについてはこちら≫

AWS Black Belt Online Seminar

9 月のアジェンダは以下になります。セミナー中は内容に関する疑問点を質問することができます。参加された方だけの特権ですので、ぜひこの機会にご視聴ください。

9 月分の詳細・お申込はこちら≫

  • 9/16(水)18:00-19:00 AWS IoT Events
  • 9/29(火)12:00-13:00 Amazon Aurora MySQL Compatible Edition ユースケース毎のスケーリング手法
  • 9/30(水)18:00-19:00 Amazon Kinesis Video Streams