目次
目的と準備
目的
AWSのCloudFormationで一番シンプルな操作と思われるS3のバケットを作成します。
準備
1.S3にバケット「test-cloudformation-2025」を作成し、その中にyamlファイル「test-cloudformation.ymal」を配置します。
ファイル「test-cloudformation.ymal」
AWSTemplateFormatVersion: '2010-09-09'
Description: hello-world-cloudformation
Resources:
MyS3Bucket:
Type: AWS::S3::Bucket
Properties:
BucketName: hello-world-20250101
2.CloudFormationで使用するロールのAWS-QuickSetup-StackSet-Local-AdministrationRoleに、S3 full accessを追加します。(※ロール選択時に空白にする場合、この手順は不要です)
CloudFormationでS3のバケットを作成する
1.CloudFormationの画面を開き、スタックの作成をクリックします。
2.「既存のテンプレートを選択」を選択します。
3.「テンプレートソース」は準備で作成したS3のファイルを指定します。
「次へ」をクリックします。
4.「スタック名」を入力します。「次へ」をクリックします。
5.ロールを選択します。デフォルトで選択できる以下のロールを選択します。
AWS-QuickSetup-StackSet-Local-AdministrationRole(※:選択せず空白でも可能)
「次へ」をクリックします。
6.確認画面が表示されます。「送信」をクリックします。
7.成功すると以下のようにイベントに表示されます。
8.S3にもバケット(hello-world-20250101)が作成されました。
9.スタックの画面では以下のように表示されます。
スタックの見え方
スタック(test-stack-2025abc01)を実行し、再度新規でスタック(test-stack-2222)を実行した場合、スタックの欄は以下のように表示されます。
スタックの一覧では以下のように表示されます。
テンプレートの場所
テンプレートの場所は保存されていません。
IAMロール
スタックの詳細のIAMロールの箇所で使用したロールを確認できます。
スタックを削除した場合
上記のスタック(test-stack-2025abc01)を削除するとS3の作成したバケット(hello-world-20250101)も削除されるので注意が必要です。
ドリフトとは
テンプレートと実際のリソースが不一致になっていることを指します。
以下は、テンプレートと実際のリソースは一致しています。ステータスはIN_SYNCと表示されます。
不一致の場合は、全体はDRIFTED、個別の行でMODIFIEDと表示されます。
StackSetsとは
複数のAWSアカウントやリージョンに、同じCloudFormationスタックを一括展開・管理する仕組み です。
使用用途
AWS Organizationsを使って複数アカウントを管理している
東京リージョンとバージニアリージョンで同じ構成を作りたい
GuardDutyやCloudTrailを全アカウントに一括導入したい
関連の記事