スタックの作成 - AWS CloudFormation

スタックの作成

スタックを作成するには、aws cloudformation create-stack コマンドを実行します。スタック名、有効なテンプレートの場所、入力パラメーターが必要です。

パラメーターは、空白で区切られ、キー名は大文字と小文字が区別されます。aws cloudformation create-stack を実行するときにパラメータ名の入力を間違えると、AWS CloudFormation はスタックを作成せず、テンプレートにそのパラメータが含まれていないことをレポートします。

注記

ローカルテンプレートファイルを指定する場合、AWS CloudFormation はそれを AWS アカウントの Amazon S3 バケットにアップロードします。AWS CloudFormation は各リージョンにテンプレートファイルをアップロードする一意のバケットを作成します。AWS アカウントの Amazon S3 アクセス権限があれば誰でもこのバケットにアクセスできます。AWS CloudFormation が作成したバケットがすでに存在する場合は、テンプレートはそのバケットに追加されます。

手動でテンプレートを Amazon S3 にアップロードすることで、独自のバケットを使用してアクセス権限を管理できます。その場合は、スタックを作成または更新するたびに、テンプレートファイルの Amazon S3 URL を指定します。

デフォルトでは、aws cloudformation describe-stacks からパラメーターの値が返されます。パスワードなど、機密を要するパラメータ値が返されないようにするには、AWS CloudFormation テンプレートで、NoEcho プロパティを TRUE に設定します。

重要

NoEcho 属性を使用しても、以下に保存されている情報はマスクされません。

  • Metadata テンプレートセクション。CloudFormation は、Metadata セクションに含める情報の変換、変更、または編集を行いません。詳細については、「メタデータ」を参照してください。

  • Outputs テンプレートセクション。詳細については、「出力」を参照してください。

  • リソース定義の Metadata 属性。詳細については、「メタデータ属性」を参照してください。

パスワードやシークレットなどの機密情報を含めるには、これらのメカニズムを使用しないことを強くお勧めします。

重要

機密情報は、AWS CloudFormation テンプレートに直接埋め込まずに、スタックテンプレートの動的パラメータを使用して CloudFormation の外部 (AWS Systems Manager のパラメータストアや AWS Secrets Manager など) に保存して管理し、これを参照することをお勧めします。

詳細については、「テンプレートに認証情報を埋め込まない」のベストプラクティスを参照してください。

次の例は、myteststack スタックを作成します。

PROMPT> aws cloudformation create-stack --stack-name myteststack --template-body file:///home/testuser/mytemplate.json --parameters ParameterKey=Parm1,ParameterValue=test1 ParameterKey=Parm2,ParameterValue=test2 { "StackId" : "arn:aws:cloudformation:us-west-2:123456789012:stack/myteststack/330b0120-1771-11e4-af37-50ba1b98bea6" }