これは新しい CloudFormation テンプレートリファレンスガイドです。ブックマークとリンクを更新してください。CloudFormation の開始方法については、『AWS CloudFormation ユーザーガイド』を参照してください。
cfn-init
CloudFormation テンプレートでは、Amazon EC2 リソースの Metadata セクション内で AWS::CloudFormation::Init を使用して初期化タスクを定義できます。詳細については、「AWS::CloudFormation::Init」を参照してください。
cfn-init ヘルパースクリプトは、AWS::CloudFormation::Init キーからテンプレートメタデータを読み取って、次の状況に応じて操作を行います。
-
CloudFormation のメタデータの取得と解析
-
パッケージのインストール
-
ディスクへのファイルの書き込み
-
サービスの有効化/無効化と開始/停止
cfn-init ヘルパースクリプトは通常、Amazon EC2 インスタンスまたは起動テンプレートのユーザーデータから実行されます。
ヘルパースクリプトを初めて使用する場合は、まず「AWS CloudFormation ユーザーガイド」の「Amazon EC2 にアプリケーションをデプロイする」チュートリアルを完了することをお勧めします。
注記
cfn-init を使用して既存のファイルを更新すると、同じディレクトリに元のファイルのバックアップコピーが作成され、bak という拡張子が付けられます。たとえば、/ を更新すると、そのアクションにより 2 つのファイルが生成されます。path/to/file_name/ には元のファイルの内容が含まれ、path/to/file_name.bak/ には更新された内容が含まれます。path/to/file_name
構文
cfn-init --stack|-sstack.name.or.id\ --resource|-rlogical.resource.id\ --regionregion\ --access-keyaccess.key\ --secret-keysecret.key\ --rolerolename\ --credential-file|-fcredential.file\ --configsets|-cconfig.sets\ --url|-uservice.url\ --http-proxyHTTP.proxy\ --https-proxyHTTPS.proxy\ --verbose|-v
注記
cfn-init は認証情報を必要としないため、--access-key、--secret-key、--role、--credential-file オプションを使用する必要はありません。ただし、認証情報が指定されていない場合、CloudFormation はスタックのメンバーシップを確認し、そのインスタンスが属するスタックの呼び出し範囲を制限します。詳細については、「ヘルパースクリプトのアクセス許可」を参照してください。
オプション
| 名前 | 説明 | 必須 |
|---|---|---|
|
|
スタック名またはスタック ID。 タイプ: 文字列 デフォルト: なし 例: |
あり |
|
|
メタデータを含むリソースの論理リソース ID です。 タイプ: 文字列 例: |
あり |
|
|
使用する CloudFormation リージョンのエンドポイントです。 タイプ: 文字列 デフォルト: 例: |
なし |
|
|
CloudFormation で タイプ: 文字列 |
なし |
|
|
指定した AWS アクセスキーに対応する AWS シークレットアクセスキーです。 タイプ: 文字列 |
なし |
|
|
インスタンスに関連付けられた IAM ロールの名前です。 タイプ: 文字列 条件: 認証情報ファイルパラメーターは、このパラメーターより優先されます。 |
なし |
|
|
シークレットアクセスキーとアクセスキーの両方を含むファイルです。認証情報ファイルパラメーターは、--role、--access-key、および --secret-key パラメーターよりも優先されます。 タイプ: 文字列 |
なし |
|
|
実行する configset のカンマ区切りリスト (実行順)。 タイプ: 文字列 デフォルト: |
なし |
|
|
使用する CloudFormation エンドポイントです。 タイプ: 文字列 |
なし |
|
|
HTTP プロキシ (非 SSL)。次の形式を使用します。 タイプ: 文字列 |
なし |
|
|
HTTPS プロキシ。次の形式を使用します。 タイプ: 文字列 |
なし |
|
|
詳細を出力します。 注記初期化イベントをデバッグするには、 |
なし |
|
ヘルプメッセージと終了を示します。 |
なし |
例
Amazon Linux の例
次の例は、EC2 インスタンス (WebServerInstance リソースに関連付けられた InstallAndRun configset を実行) の UserData プロパティを示しています。
最新バージョンを含めるには、UserData に yum install -y aws-cfn-bootstrap を追加します。
JSON
Fn::Join 組み込み関数を使用する UserData プロパティ。
{ "UserData": { "Fn::Base64": { "Fn::Join": [ "", [ "#!/bin/bash -xe\n", "", "yum install -y aws-cfn-bootstrap", "/opt/aws/bin/cfn-init -v ", " --stack ", { "Ref": "AWS::StackName" }, " --resource WebServerInstance ", " --configsets InstallAndRun ", " --region ", { "Ref": "AWS::Region" }, "\n" ] ] } } }
YAML
UserData 組み込み関数を使用する Fn::Sub プロパティ。
UserData: !Base64 Fn::Sub: |- #!/bin/bash -xe yum update -y aws-cfn-bootstrap # Install the files and packages from the metadata /opt/aws/bin/cfn-init -v --stack ${AWS::StackName} --resource WebServerInstance --configsets InstallAndRun --region ${AWS::Region}
関連リソース
サンプルテンプレートについては、「AWS CloudFormation ユーザーガイド」の「Amazon EC2 にアプリケーションをデプロイする」を参照してください。
Windows の例については、「AWS CloudFormation ユーザーガイド」の「Windows ベースの CloudFormation スタックのブートストラップ」を参照してください。
また、GitHub リポジトリにアクセスして、cfn-init を使用するサンプルテンプレートをダウンロードすることもできます。これには次のテンプレートが含まれます。
cfn-init を使用する LAMP スタックテンプレートの例については、GitHub ウェブサイトの ec2-lamp-server