CloudFormation 利用時に cf-templates バケットが作成される条件を教えてください

2022.11.25

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

困っていた内容

CloudFormation を利用時、Amazon S3 にて cf-templates から始まる名前のバケットが自動作成されていました。
cf-templates バケットの作成条件を教えてください。

どう対応すればいいの?

CloudFormation テンプレートをアップロードした際に S3 バケットが自動作成されます。
自動作成されるバケット名の命名規則ですが、2022年11月24日現在は cf-templates- で始まるバケット名になります。

スタックテンプレートの選択 - AWS CloudFormation

ローカルテンプレートファイルをアップロードすると、CloudFormation によって AWS アカウントの Amazon Simple Storage Service (Amazon S3) バケットにアップロードされます。

CloudFormation のドキュメントには、CloudFormation テンプレートをアップロードした際に自動作成されるバケット名の記載がありませんが、別サービスのドキュメントに明記されています。

商品を追加する - AWS Service Catalog

注記

AWS Service Catalog 製品を作成する際にアップロードする AWS CloudFormation テンプレートは、AWS アカウントで cf-templates- で始まる Amazon Simple Storage Service (Amazon S3) バケットに保存されます。

また、cf-templates バケットを削除した場合でも、テンプレートファイルをアップロードした際に自動で cf-templates バケットが作成されます。

スタックテンプレートの選択 - AWS CloudFormation

CloudFormation によって作成された S3 バケットがない場合は、テンプレートファイルをアップロードしたリージョンごとに一意のバケットが作成されます。 AWS アカウントに、AWS CloudFormation によって作成された S3 バケットが既にある場合、CloudFormation によってそのバケットにテンプレートが追加されます。

試してみた

CloudFormation テンプレートをアップロードした際に cf-templates バケットが自動作成されるか確認します。 検証のため、既存の cf-templates バケットを削除し、その他の cf-templates バケットがないことを確認します。

$ aws s3 ls | grep cf-templates
2021-10-22 10:39:54 cf-templates-xxx-ap-northeast-1
$ aws s3 rb s3://cf-templates-xxx-ap-northeast-1
remove_bucket: cf-templates-xxx-ap-northeast-1
$ aws s3 ls | grep cf-templates
$

CloudFormation テンプレートをアップロードします。

cf-templates バケットが自動作成されたことを確認できました。

$ aws s3 ls | grep cf-templates
2022-11-22 18:04:44 cf-templates-xxx-ap-northeast-1
$

参考資料