9
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

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

Last updated at Posted at 2021-10-01

はじめに

業務でAWSに環境を作ることが多く、効率よく構築できるようCloud Formationを使って
構築を行ってみました。

##CloudFormationとは
CloudFormationとはテンプレートファイル(JSONまたはYAML)を使用してAWSリソースを自動で構築できるサービスです。
テンプレートファイルを作成していれば同様の環境を構築する際の時間を削減することができます。

作成する環境

今回はS3のバケットを作成するテンプレートを実行してみる

テンプレートの作成

storage.yaml
AWSTemplateFormatVersion: '2010-09-09'
Description: buckets for storing.
Metadata:
  'AWS::CloudFormation::Interface':
    ParameterGroups:
    - Label:
        default: 'Storage'
      Parameters:
      - BucketName
#スタック作成画面で任意で入力する項目をParametersに記載。今回はバケット名の項目のみ
Parameters:
  BucketName:
    Description: 'The name of the bucket to store the data in. If left blank, a bucket name will be generated.'
    Type: String
    Default: ''
Conditions:
  HasBucket: !Not [!Equals [!Ref BucketName, '']]
Resources:
  DataBucket:
    Type: 'AWS::S3::Bucket'
    Properties:
      BucketName: !If [HasBucket, !Ref BucketName, !Ref 'AWS::NoValue']
      AccessControl: Private
      VersioningConfiguration:
        Status: Enabled
#         ポリシーの設定も可能
      PublicAccessBlockConfiguration:
        BlockPublicAcls: true
        BlockPublicPolicy: true
        IgnorePublicAcls: true
        RestrictPublicBuckets: true
#     暗号化の設定
      BucketEncryption:
        ServerSideEncryptionConfiguration:
          - ServerSideEncryptionByDefault:
              SSEAlgorithm: 'AES256'
#     CORS設定をしたい場合は下記の様に記載
      CorsConfiguration:
        CorsRules:
          - AllowedHeaders:
              - '*'
            AllowedMethods:
              - 'GET'
              - 'PUT'
            AllowedOrigins:
              - '*'
#CloudFormationのコンソール画面の「出力」に表示させたい内容をOutpusに設定する。
Outputs:
  DataBucket:
    Description: 'Name of the bucket'
    Value: !Ref DataBucket
    Export:
      Name: !Sub '${AWS::StackName}-BucketName'

実際に動かしてみる

まずはAWSコンソールからCloudFormationへ移動し、スタックの作成を行う。
スクリーンショット_2021-09-28_18_52_31.png

スタック作成画面がこちら
今回はテンプレートを用意しているので、以下の項目を指定して次に進みます。
スクリーンショット_2021-09-29_18_05_50.png

次にスタック名と作成するバケットの名称の入力画面が表示されるので、入力したら次へ
スクリーンショット 2021-09-29 18.06.12.png

この画面でスタックのオプションや詳細な設定ができますが、今回は何もせずに次へ
スクリーンショット 2021-09-29 18.14.17.png
スクリーンショット 2021-09-29 18.14.26.png

この画面でスタックの設定の最終確認を行い。問題がなければ画面下部のスタックの作成へ
スクリーンショット_2021-09-29_18_17_07.png

スタックが作成され、下記の様に処理が実行されるとS3に指定した名前でバケットが作成されています。
スクリーンショット_2021-09-29_18_18_05.png

バケットのアクセス許可はこんな感じ
スクリーンショット 2021-09-29 17.54.10.png
スクリーンショット 2021-09-29 19.16.29.png

おわりに

今回はS3のみの作成でしたが、次回以降EC2、VPC等のテンプレートも作成して記事にしたいと思います。

参考資料

9
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?