LoginSignup
0
0

More than 3 years have passed since last update.

AWS Cloud Formation 毎回迷子にならないように・・・

Last updated at Posted at 2021-04-27

AWSのリソースはCloud Formationを利用して、作成すると複製や削除が非常に楽になるので利用しているのですが、毎回「このリソースってどう書けばいいの・・・」っていうのが分からなくなるのでメモ書き。

AWS Cloud Formation って何?

テンプレート(yamlやjson)ファイルを利用して、AWS上に様々なリソースを作成できるサービス。
Cloud Formationのスタックにテンプレートを展開し、リソースを作成できる。
作成したテンプレートファイルがあれば同じリソースを作成することが可能なので、AWSコンソールを操作して作成という手間がなくなる。
あとスタックを削除するとそのテンプレートから作成されたリソースは全て削除されるため、不要になったリソースを削除するときに便利。

リソースの一覧

これが一番知りたかった。
やっと見つけました。

「AWS CloudFormation Resource types」と検索すると引っかかるようです。

テンプレートセクションの詳細

各セクションの説明はこちら。

依存関係のあるリソースを作成する場合

例えばリソースAはリソースBの作成後に作成しないとエラーになる場合、DependsOn 属性を使用することでリソースの作成の順番を指定できる。

よく使う組み込み関数

個人的によく使う組み込み関数を以下に記載します。

Ref

パラメータの値を参照するときに使用する。

使用例:

    Value: !Ref SampleParameter

Fn::Sub

パラメータなどの値を文字列に埋め込んだりするときに使用する。

使用例:

Description: !Sub '${EnvironmentName} sample'
Name: !Sub
  - www.${Domain}
  - { Domain: !Ref RootDomainName }

Fn::GetAtt

同一テンプレート内で作成したリソースの値を参照したいときに使用する。

使用例:

  securityGroup:
    Type: AWS::EC2::SecurityGroup
    Properties: 
      ~省略~
  dbCluster:
    Type: 'AWS::DocDB::DBCluster'
    Properties:
      ~省略~
      VpcSecurityGroupIds:
        - !GetAtt securityGroup.GroupId
    DependsOn: securityGroup

先に作成したセキュリティグループのグループIDをDBクラスターを作成するときに参照できる。
この時、DependsOn属性を付けておいたほうが安心。

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