amazon-ec2-image-builder について
amazon-ec2-image-builder は、EC2 Image Builder でカスタム AMI とコンテナイメージを作成するための専門スキルです。AWS ユーザー向けに、ビルドロール、レシピ、パイプライン、配布、トラブルシューティングを案内し、作業別の資料も提供します。
主な機能
- 01AMI とコンテナイメージのビルド支援
- 02レシピとイメージパイプラインの手順
- 03イメージ配布オプションの案内
- 04ビルド失敗のトラブルシューティング資料
- 05Windows と macOS イメージの案内
活用シーン
- 01単発のカスタム AMI の作成
- 02定期実行するイメージパイプラインの設定
- 03リージョン間での AMI 配布
- 04失敗または停滞したビルドの調査
MCP 対応
サンドボックス実行と監査ログ記録のため、AWS MCP サーバーの利用を推奨しています。標準の AWS CLI アクセスでも案内を利用できます。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ aws/ agent-toolkit-for-aws --skill amazon-ec2-image-builderインストール後、Claude Code で/amazon-ec2-image-builderを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/creating-images.mdcustom-workflows.mddistribution-options.mdother-image-types.mdtroubleshooting.md詳細
Amazon EC2 Image Builder
概要
EC2 Image Builder を使ってカスタム AMI とコンテナイメージを構築するためのドメイン知識です。ビルド IAM ロールから、レシピ、パイプライン、配布、トラブルシューティングまでを扱います。
最適な組み合わせ: AWS MCP サーバー — サンドボックスでの実行と監査ログに推奨されます。標準的な AWS CLI アクセスでも、すべてのガイダンスを利用できます。
ガードレール — このスキル自体のファイルの場所(MCP とローカルインストール)
このスキルは 2 通りの方法で読み込めます。それぞれ、スキルに同梱されたファイルの参照先が異なります。リファレンスを読む前、またはスクリプトを実行する前に、スキルがどの方法で読み込まれたかを確認してください。
- AWS MCP の
retrieve_skillツール経由で読み込まれた場合: スキルはローカルファイルシステムにインストールされていません。各リファレンスまたはスクリプトは、fileパラメーター(例:file="references/creating-images.md")を指定してretrieve_skillから取得し、返された内容を使用する必要があります。これらのパスはディスク上に存在しないため、ローカルでfile_readしないでください。 - ローカルにインストールされている場合(例:
.kiro/skills/amazon-ec2-image-builder/または~/.claude/skills/amazon-ec2-image-builder/):相対パスを使って、ローカルのスキルディレクトリからファイルを読み取ってください。
この違いは、スキルにパッケージ化されたファイルにのみ適用されます。ユーザーデータとセッションの成果物は、常にユーザーの作業ディレクトリから読み取り、そこに書き込んでください。retrieve_skill 経由でユーザーデータを取得したり書き込んだりしないでください。
最初の判断:単発のイメージか、定期実行のパイプラインか
作成を始める前に、これを確認してください。構築するものが変わります。
| ユーザーの要望 | 対応 |
|---|---|
| カスタム AMI を 1 回だけ作成 | creating-images.md の手順 7a まで進めます。レシピとインフラストラクチャ設定を使って create-image を実行します。パイプラインは不要です。 |
| 最新の状態を保つゴールデン AMI(ベースイメージの更新やパッチを取り込む定期的な再構築) | イメージパイプラインを作成します。creating-images.md に従ってください。スケジュールは create-image-pipeline の呼び出しの一部です(手順 7b)。 |
関連スキル — 代わりに該当するスキルへ誘導する場合
| このスキルを使用する | 次の内容に関する依頼の場合 |
|---|---|
| launching-ec2-instance-with-best-practices | ユーザーがすでに所有している AMI からインスタンスを起動する |
| setting-up-ec2-instance-profiles | インスタンスプロファイル全般(このスキルが作成するビルド IAM ロールを除く) |
| aws-compute | AMI の共有、廃止、ライフサイクル管理、EC2 フリートに関する一般的な質問 |
対象外: AMI のライフサイクルと廃止(上の表に従って誘導してください)、および VM/ISO イメージのインポートとエクスポート(AWS のドキュメントに直接従ってください)。
振り分け(このスキルのリファレンス)
回答する前に、該当するリファレンスを読んでください。正確なコマンド、障害の修正方法、プラットフォーム要件はリファレンスに記載されています。一般的な知識だけで Image Builder の質問に回答すると、細部を微妙に誤ることがあります。
| ユーザーのニーズ | 読むリファレンス |
|---|---|
| イメージまたはパイプラインを最初から最後まで作成する:ロール、コンポーネント、レシピ、インフラストラクチャ、スケジュール、パッチ適用、スキャン、連鎖 | creating-images.md |
必要な場所で出力 AMI を取得する:起動テンプレート、SSM パラメーター(サービスリンクロールが書き込むのは /imagebuilder/ 配下のみ)、他のリージョン | distribution-options.md |
| ビルドが失敗する、ハングする、または Image Builder API の呼び出しでエラーが発生する | troubleshooting.md |
| Windows(終了コード 3010 の再起動)、macOS(Mac 専用ホストが必須)、ECR へのコンテナイメージの出力(追加のビルドロールポリシー) | other-image-types.md |
| カスタムイメージのワークフロー(高度な内容 — 常に実行ロールが必要) | custom-workflows.md |
リファレンスファイルには、特定の ARN、Amazon 管理リソース名、サービスのデフォルト値が記載されています。正確さが重要な場合は、AWS のドキュメントで確認してください。
ガードレール(すべてのワークフロー)
- スペースを含む CLI フィルター値は引用符で囲みます:
--filters "name=name,values=Amazon Linux 2023 x86"。引用符で囲まれていないスペースは CLI の解析エラーになります。 - 各作成呼び出しで返される ARN をそのまま使用します。ARN を手作業で組み立ててはいけません。
- 「latest」のベースイメージには、
x.x.xワイルドカードを含む Amazon 管理イメージ ARN を使用します。管理イメージが存在しない場合は、ssm:パラメーター参照を使用します。バージョンを一覧表示して文字列として並べ替えてはいけません。一覧はセマンティックバージョン順ではありません。 - ベースイメージ、各コンポーネントのバイナリ、インフラストラクチャのインスタンスタイプで、アーキテクチャを統一します。Image Builder は作成時にこれを検証しません。不一致があると、コンポーネントの実行中にビルドが途中で失敗します。
- コンポーネントの失敗原因は、CloudWatch ロググループ
/aws/imagebuilder/<image-name>(デフォルトで有効。設定されている場合は S3 ログにも記録されます)にあります。API の状態にはありません。troubleshooting.md を参照してください。 - ビルド中に再起動するには、ステップをコード
194(Linux)または3010(Windows)で終了します。再起動後、次のステップではなく、同じステップが再実行されるため、マーカーファイルで制御してください。通常の再起動コマンドではステップが失敗します。 - ユーザーが説明したリソースが
get-image/get-image-pipelineで見つからない場合は、見つからないことを伝え、使用中のリージョンと認証情報を確認します。そのうえで、ユーザーの説明に基づくトラブルシューティングを続けてください。検索に失敗したからといって、リソースが存在しない証拠にはなりません。 - ディストリビューションは、起動テンプレートと SSM への公開をネイティブに処理します(
launchTemplateConfigurations、ssmParameterConfigurations)。AMI の伝播に Lambda による連携処理や、手動での起動テンプレートバージョン追加を行ってはいけません。 - デフォルトでは、Amazon Linux 2023 ベースイメージ、IMDSv2 の必須化(
instanceMetadataOptions httpTokens=required)、インフラストラクチャ設定で少なくとも 2 つのインスタンスタイプを使用します。S3 へのビルドログ記録はオプトインですが、CloudWatch ログ記録は常に有効です。 - コンポーネント YAML を作成する前に、Amazon 管理コンポーネントを確認します(
aws imagebuilder list-components --owner Amazon)。AWS CLI、OS の更新、CloudWatch エージェント、STIG による強化など、一般的なニーズにはすでに対応するコンポーネントがあります。
セキュリティに関する考慮事項
上記のデフォルト設定がセキュリティ対策の基本です。ビルドインスタンスでは IMDSv2 を必須とし、セキュリティグループのインバウンドルールは設定せず、最小権限のビルド IAM ロール(AMI のビルド用の管理ポリシー 2 つと、ワークフローに必要な範囲に限定した権限のみ)を使用します。また、コンポーネントやログにシークレットを含めず、ログバケットでは Block Public Access を有効にします。ビルドログには機密情報を含む可能性のあるコマンド出力がすべて記録されます。CloudWatch Logs はデフォルトで保存時にログを暗号化します。また、各 /aws/imagebuilder/... ロググループにカスタマー管理 KMS キーを関連付ける(aws logs associate-kms-key)ことを推奨します。監査と運用状況の把握のため、アカウントで CloudTrail を有効にして Image Builder API 呼び出しを記録し、ビルドの失敗を対象とする EventBridge ルールまたは CloudWatch アラームを設定します(ソース aws.imagebuilder、詳細タイプ EC2 Image Builder Image State Change)。これにより、設定ミスや不正な変更を速やかに検知できます。ビルドごとの通知には SNS トピックオプション(creating-images.md のステップ 6)を使用します。このトピックにもカスタマー管理キーを設定することを推奨します。これらの設定から逸脱する場合は、ユーザーが明示的に判断する必要があります。参考資料:EC2 Image Builder のセキュリティに関するベストプラクティス。