CloudFormationでよく使うAWS CLIコマンドまとめ

f:id:ktt1:20200607135148p:plain

スタック作成関係

※注意※IAMのcapabilitiesはFULLでつけている

  • スタックの作成(ローカルにテンプレートある場合) 
aws cloudformation create-stack --stack-name <スタック名> \
    --template-body <ローカルのパス file:///home/testuser/mytemplate.yaml> \
    --capabilities "CAPABILITY_IAM" "CAPABILITY_NAMED_IAM" "CAPABILITY_AUTO_EXPAND"  \
    --parameters ParameterKey=<パラメータキー>,ParameterValue=<パラメータ値> 
  • スタックの作成(S3にテンプレートある場合)
aws cloudformation create-stack --stack-name <スタック名> \
    --template-url <3SのURL> \
    --capabilities "CAPABILITY_IAM" "CAPABILITY_NAMED_IAM" "CAPABILITY_AUTO_EXPAND"  \
    --parameters ParameterKey=<パラメータキー>,ParameterValue=<パラメータ値> 
  • スタック作成状況の確認(最新イベントを3だけ表示)
aws cloudformation describe-stack-events \
    --stack-name <スタック名> \
    --max-items 3
  • 作成完了しているスタック名前一覧を取得
aws cloudformation list-stacks --stack-status-filter CREATE_COMPLETE \
    --output table --query "StackSummaries[*].StackName"

変更セット関係

  • スタックの変更セットの作成
aws cloudformation create-change-set --stack-name <スタック名> \
    --change-set-name=<変更セット名> \
    --template-url <S3のURL> \
    --capabilities "CAPABILITY_IAM" "CAPABILITY_NAMED_IAM" "CAPABILITY_AUTO_EXPAND"  \
    --parameters ParameterKey=<パラメータキー>,ParameterValue=<パラメータ値> \
    ParameterKey=<パラメータキー>,ParameterValue=<パラメータ値>
  • 変更セットの中身確認
aws cloudformation describe-change-set --stack-name <スタック名> \
    --change-set-name <変更セット名>
  • スタックの変更セットの実行
aws cloudformation list-change-sets --stack-name <実行する変更セット名>

スタック削除関係

  • スタックの削除
aws cloudformation delete-stack --stack-name <スタック名>
  • 依存関係を考慮した複数スタック削除
aws cloudformation delete-stack --stack-name <削除スタックAの名前>
aws cloudformation wait stack-delete-complete --stack-name <削除スタックAの名前>
aws cloudformation delete-stack --stack-name <削除スタックAと依存関係のあるスタック名>