AWS CloudformationでS3のバケットを作成する(hello world)

目次

目的と準備

目的

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を全アカウントに一括導入したい

関連の記事

AWS S3のファイルをライフサイクルルールで削除

△上に戻る