LoginSignup
0
0

More than 1 year has passed since last update.

CloudFormationでS3実装に挑戦①

Posted at

今回やったこと

  1. S3バケットの作成
    コンソールで設定項目を確認てから、テンプレート作成
  2. AWS CLIでの、スタック作成・スタック削除・テンプレートの検証

1. S3バケットの作成

一度コンソールを確認する。

  • 一般的な設定
    • バケット名
    • リージョン
  • オブジェクト所有者
    • ACL無効
  • ブロックパブリックアクセス設定
    • ブロックしない
  • バージョニング
    • 無効
  • デフォルトの暗号化
    • 無効

次に公式のサンプルテンプレートを見る。

Resources:
  S3Bucket:
    Type: 'AWS::S3::Bucket'
    DeletionPolicy: Retain
    Properties:
      BucketName: DOC-EXAMPLE-BUCKET

…あれ、作るだけなら簡単なのでは?
と思ったけど、EC2からの接続設定とかCORS設定とか、そのあたりで難儀しそう。
リソース同士の関係性の記述は難しい。RDSのときも苦労した。

2. AWS CLIでの、スタック作成・スタック削除・テンプレートの検証

本当はEC2からの接続までやりたかった。時間的に、今回はCLI操作でスタックの作成をやってみる(今まではGUIでポチポチやってた)。
公式ドキュメントを確認。CLI自体はインストール済。
AWS Command Line Interface の使用

スタック作成

 % aws cloudformation create-stack \
--stack-name myfirsts3 \
--template-body file:///Users/わしの名前/Desktop/firsts3.yml
{
    "StackId": "arn:aws:cloudformation:ap-northeast-1:********:stack/myfirsts3/********"
}

改行して入力するときは \(スペースが必要)なんですね。。。

作成できたか確認

aws s3 lsコマンドを打つ。出てこない。以下も確認してみる。

% aws cloudformation describe-stacks
{
    "Stacks": [
        {
            "StackId": "arn:aws:cloudformation:ap-northeast-1:********:stack/firsts3/********",
            "StackName": "firsts3",
            "CreationTime": "2022-06-27T22:36:58.883000+00:00",
            "DeletionTime": "2022-06-27T22:37:05.014000+00:00",
            "RollbackConfiguration": {},
            "StackStatus": "ROLLBACK_COMPLETE",
            "DisableRollback": false,
            "NotificationARNs": [],
            "Tags": [],
            "DriftInformation": {
                "StackDriftStatus": "NOT_CHECKED"
            }

失敗。どうしてだろうと思ったら,バケット名の命名規則とかユニーク性に引っかかっていた。こんなしょうもないところで…

aws cloudformation delete-stack --stack-nameでスタックを削除し、再度作成。今度は成功。

テンプレートの検証

検証機能ないのかなと思ったら、どうやらあるらしい。
aws cloudformation validate-template --template-body file://ファイル名

検知できるのは構文エラーだけみたいです。リソースタイプの誤り、プロパティの誤りは検知してくれたが、バケット名のユニーク性、インデント等はチェックされなかった。
そのへんのエラーはコンソールで確認するしかないのだろうか?

0
0
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
0
0