🙀

AWS CloudFormationを触ってみる #1

2022/05/28に公開

こんにちは 中村です!

業務でCloudFormation扱う機会が少ないので、自分で触ってみることにしました!

CloudFormationとは

公式によると以下の通り

AWS CloudFormation は、インフラストラクチャをコードとして扱うことで、AWS およびサードパーティーの> リソースをモデル化、プロビジョニング、管理することができます。

動画で見るとイメージしやすいですね
https://youtu.be/tLc2QG3cMzI

同じようなリソースを何度も作成する必要がある場合に迅速でミスなく作れちゃうのがメリットかと思います!
テンプレートファイルを書くのは大変ではありますが!

手順

テンプレート作成

以下のテンプレートを保存します
とりあえずCloudFormationを触ってみるだけなので、簡単そうなSNSを作ってみます

template.yml
Parameters:
  Email:
    Type: String

AWSTemplateFormatVersion: 2010-09-09
Resources:
  CarSalesTopic:
    Type: AWS::SNS::Topic
    Properties: 
      DisplayName: test-sns
      TopicName: test-sns
      Subscription:
        - Endpoint: !Ref Email
          Protocol: email

CloudFormation スタックを作成

AWSマネジメントコンソールにてCloudFormationの画面を開き、
スタックの作成をクリックする

テンプレートファイルのアップロードを選択する
ファイルの選択をクリックする

先ほど保存したテンプレートファイルを選択する

次へすすむ

お好みのスタックの名前を入力する
パラメータを入力する ※今回のテンプレートではSNSの宛先になるメールアドレスを入力します
次へすすむ

パラメータは、テンプレートファイルにて自由に定義する事ができます
定義したパラメータを使ってリソース名や設定内容をスタックごとに変更する事ができますね!
今回はSNSから送る宛先のメールアドレスを変えられるように設定しました!

次の画面は特に入力不要
画面下部へスクロールし、次へすすむ

設定内容のプレビュー画面が表示されます。
内容が問題なければ画面下部のスタックの作成をクリックする

CREATE_IN_PROGRESSなので、今作成中です。しばしお待ちを。

CREATE_COMPLETEと表示されれば完了です

ちゃんと作成されたか確認

  • リソースタブをクリックすると、作成されたリソースが確認できます
  • ARNをクリックすると作成されたリソースの画面へ飛ぶことができます

    SNSが作成されていますね

動作確認

SNSではサブスクリプション作成時に宛先のメールアドレスが承認しないとメールが送れません

設定したメールアドレスに届いているメールを確認し、
Confirm subscriptionをクリックてサブスクリプションを承認します。

保留流の確認から確認済みに変わりました。これでメールを送る事ができます

メールを送ってみましょう。メッセージの発行をクリックします

適当に文字を入力します

メッセージの発行をクリックします

ちゃんとメールが届きました

テンプレートファイルの書き方について

最初に紹介したテンプレートファイルですが、CloudFormationユーザーガイドと睨めっこしながら書来ました。

左メニューから
Template reference → Resource and property referenceと進みます

するとAWSサービスの一覧がズラーっと出てくるので...

作成したいサービスを探します

今回はSNSトピックを作成しようとしているのでAWS::SNS::Topicをクリックする

あとは出てきたページとひたすら睨めっこします (; ・ Д ・ )
全部英語ですが、気合いでどうにかします (; ・ Д ・ )

所感

1つのリソースだけだとymlファイルは短くて済みますが、本来の業務で使うようなツールはもっと色々なリソースを作成するかと思います。なので、もっと公式のリファレンスと仲良くなってymlの書き方にも慣れていく必要があると感じました。頑張るぞっ

Discussion