0
0

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 5 years have passed since last update.

AWS CloudFormation Master Class を受けてみた⑤「Resources と Mappings について」

Posted at

はじめに

Udemy にて Stephane Maarek 氏 が提供している「 AWS CloudFormation Master Class 」コースについて紹介していきます。今回の内容は、「 CloudFormation Resources 」と「 Mappings 」についてです。

CloudFormation Resources

CloudFormation Resources について

image.pngリソースとは、CloudFormation のテンプレートにおけるコアの部分です。以下の特徴があります。

  • テンプレートにおいて、AWS で扱われるサービスを構成する要素である
  • AWS によって、リソースの追加や削除、更新が常に行われている
  • 224種類以上のリソースタイプが用意されている
  • リソースタイプは「 AWS::aws-product-name::data-type-name 」と表現される(例:「 AWS::EC2::Instance 」)

リソースは実に224種類以上あるので、その全てを網羅するのは困難です。
AWS より、CloudFormation でサポートされている全リソースタイプの情報が紹介されてるので、そちらを参照しましょう。
image.png
下記のリンクから、AWS リソースが紹介されている先に飛ぶことができます。

Hands On

それでは、実際にリソースの中身を見てみましょう。ダウンロードしたコードから、「 0-ec2-with-sg-eip.yaml 」YAML ファイルを開きます。ファイルを開くと、4つのリソースが記述されているのが分かります。
image.png
リソースのコードにおいて、重要な項目は以下の2つです。

  • Type:リソースのタイプ
  • Properties:リソースに対する追加要素(Properties 以下の内容が、そのリソースの追加要素)

※4つのリソースそれぞれについての詳しい内容は、下記のリンク先を参照ください

リソースの内容は、CloudFormation Designer でも確認してみましょう。CloudFormation Designer を開いて、リソースのコードをコピペすることで、図で確認することができます。
image.png

Optional

リソースには、追加の動作や関係を制御するためにリソースに追加ができる属性というものが存在します。ここではその主な4つを紹介します。
image.png

  • DependsOn
  • 2つのリソースの依存関係を描くのに適している
  • DelectionPolicy
  • リソースを削除から保護する(CloudFormation が削除されたとしても保護が可能)
  • CreationPolicy
  • CFN-init のセクションに詳細な設定を加えることが可能
  • MetaData
  • リソースに YAML や JSON 形式のデータの追加や、関数の組み込みなどが可能

CloudFormation Mappings

Mappings

次に、Mapping について紹介します。
image.png
Mapping は CloudFormation のテンプレートに組み込む変数のことを指します。
Mapping を使うことで、デベロップとプロダクトといった異なる環境、または Region といった異なる利用目的や異なる環境を区別しやすくなります。

image.png
また、以下のコマンドを使うことで、キーと関連付けた値を呼び出せます。

  • !FindInMap [ MapName, TopLevelKey, SecondLevelKey]

Pseudo Parameters

最後に、疑似パラメータについて紹介します。
AWS では、疑似パラメータがCloudFormation のテンプレートに用意されております。
image.png

  • AWS::AcountId
  • スタックが作成されているアカウントの AWS アカウント ID を返す
  • AWS::NotificationARNs
  • スタックの通知 ARN を返す
  • AWS::Value
  • 値を返さない
  • AWS::Region
  • リージョンを返す
  • AWS::StackId
  • 図の様にコマンドで指定されたスタック ID を返す
  • AWS::StackName
  • スタック名を返す

おわりに

CloudFormation の Resources と Mappings については以上です。次回では、CloudFormation の Conditionals や Metadata について紹介していきますので、お楽しみに!

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?