カピバラ好きなエンジニアブログ

興味ある技術とか検証した内容を赴くままに書いていきます。カピバラの可愛さこそ至高。

CloudFormationを使用してS3バケットを作成してみた

経緯

本当にやりたいことは別にありますが、そのためにはCloudFormationを使えないといけなかったので、とりあえず作成してみました。

  • 参考URL
    AWS CloudFormationテンプレート形式
    docs.aws.amazon.com

    S3バケットリソース
    docs.aws.amazon.com


    実施内容

  • CloudFormationテンプレート作成
  • スタック作成
  • 実行後リソース確認

    実施作業

    CloudFormationテンプレート作成

    参考URLを元にテンプレートを作成します。
    今回はシンプルにバケット名とDeletionPolicy属性のみ設定します。

    create_s3_bucket.yaml

AWSTemplateFormatVersion: "2010-09-09"
Description: Create S3 Bucket
Resources:
  Type: AWS::S3::Bucket
  DeletionPolicy: Retain
  Properties: 
    BucketName: test-tmp-20191111


DeletionPolicy属性はスタックが削除されたときに、関連するリソースが削除されないようにするためのパラメータです。
詳細はこちら
docs.aws.amazon.com


スタック作成

CloudFormationはスタックという単位でAWSリソースを作成削除します。
docs.aws.amazon.com

スタックを削除することで作成した関連リソースをまとめて削除できるため、リソースの削除し忘れによる課金を防ぐことができます。
またテンプレートファイルは他の環境でも使用でき、同じ構成でリソースを作成することが可能です。


マネジメントコンソールから『スタックを作成』を押下

f:id:live-your-life-dd18:20191111182310p:plain


スタックの作成に必要な情報を設定

今回はテンプレートファイルを作成済みのため、テンプレートファイルのアップロードから作成したファイルを選択します。
f:id:live-your-life-dd18:20191111182939p:plain

※テンプレートファイルの記載方法が間違っていたりすると、『次へ』を押下して実行されるテンプレートの検証でエラーになります。
f:id:live-your-life-dd18:20191111183100p:plain

今回はResoucesセクションに論理IDの設定が足りていなかったので、それを追加するとエラーが出力されなくなります。

AWSTemplateFormatVersion: "2010-09-09"
Description: Create S3 Bucket
Resources:
  S3:
    Type: AWS::S3::Bucket
    DeletionPolicy: Retain
    Properties: 
      BucketName: 'test-tmp-20191111'



スタックの詳細設定

特にパラメータは設定しないので、スタックの名前を設定したら『次へ』を押下します。
f:id:live-your-life-dd18:20191111184721p:plain


スタックオプションの設定

スタックのオプションの設定を行います。
今回は省略しますが、スタックの作成失敗時のロールバックや、スタックイベントの通知の設定などが可能です。
docs.aws.amazon.com

f:id:live-your-life-dd18:20191111185849p:plain


スタックの作成

スタックの設定内容を確認し、問題内容なら作成を実施します。
f:id:live-your-life-dd18:20191111190206p:plain
f:id:live-your-life-dd18:20191111190220p:plain


実行後リソース確認

スタックの管理画面から、対象のスタックのステータスがCREATE_COMPLETEになっていることを確認します。
f:id:live-your-life-dd18:20191111191044p:plain

リソースの項目からスタックで作成されたリソースが確認できます。
f:id:live-your-life-dd18:20191111191219p:plain

S3のダッシュボードから対象のバケットが作成されていることを確認します。
f:id:live-your-life-dd18:20191111191310p:plain


感想及び所感


次回はS3バケットに対してポリシーのアタッチをします。