[AWS]CloudFormationテンプレート の概観

[AWS]CloudFormationテンプレート の概観:


CloudFormationテンプレート の概観


書いている人

CloudFormationをこれから使っていく初心者です。

自分の理解の整理のために書いていますので、間違っていることも多いと思います。

指摘などしていただけると助かります。


Overview


Refalence(本家)

  • 本家リファレンス
  • 情報が古くなっている可能性、誤解がある可能性があります。
  • こちらの記事はあくまで参考として、本家のリファレンスを活用する補助程度にご利用ください。


用語(テンプレート要素)

  • Metadata メタデータ

    • オプションの Metadata セクションを使用して、テンプレートの詳細を提供する
    • 特定のリソースについてのテンプレートの実装の詳細を含めるなど
  • Parameters パラメータ

    • 定義したパラメータは、スタック作成時に動的に指定し、各リソースのパラメータに利用することができます。
    • パラメーターは最大 60 個です。
    • 正規表現を使ったチェックも可能
    • AWS固有のパラメータ型なども指定可能
  • Mappings マッピング

    • キーと名前付きの一連の値とが対応付けられます。
    • たとえば、リージョンに基づく値を設定する場合、リージョン名をキーとして必要な値を保持するマッピングを作成します。
  • 条件 Conditions

    • 条件の結果に応じてリソースを作成することができます。
    • テスト環境と本稼働環境など、異なるコンテキストでリソースを作成できるテンプレートを再利用する場合に、条件を使用することがあります。
    • Parametersを参照し、Resources および Outputsを操作します。
  • 変換 Transform

    • AWS インフランストラクチャの式をコードとして要約し、テンプレートコンポーネントを再利用できるようにすることで、テンプレート作成を簡素化します。
    • 変換の種類として、AWS::Serverless や AWS::Include をサポートしています。
    • AWS::Include 変換では、メインの AWS CloudFormation テンプレートとは別に保存されているテンプレートスニペットを利用します。
    • AWS::Include
    • テンプレートのトップレベルに配置する場合と、リソース等のセクションに埋め込む場合があります
  • リソース

    • スタックに含める Amazon EC2 インスタンスや Amazon S3 バケットなどの AWS リソースを宣言します。
  • アウトプット

    • 欲しい結果を指定すればまとめて表示してくれる
    • ほかのスタックにインポートすることもできる。
    • 1 つのテンプレートで宣言できる出力は最大 60 個です。


テンプレートの作成で使える関数


主な関数

param discription
Fn::Base64 入力文字列の Base64 表現を返します
Fn::FindInMap Mappings セクションで宣言された キーに対応する値を返します。
Fn::GetAtt テンプレートのリソースから属性の値を返します。
Fn::GetAZs 指定されたリージョンのアベイラビリティーゾーンを含んだ配列を返します。呼び出し元のユーザーのアクセス権に適応するテンプレートを作成できます。
Fn::ImportValue 別のスタックによってエクスポートされた出力の値を返します。別の AWS CloudFormation スタックのリソース出力を参照する
Fn::Join 一連の値を特定の区切り文字で区切って 1 つの値に追加します。
Fn::Select リストから 1 つのオブジェクトを返します。
Fn::Split 区切り記号で分割の場所を指定し、文字列のリストから要素を選択できるようにします
Fn::Sub 特定した値の入力文字列にある変数の代わりになります。
Ref 指定したパラメーターまたはリソースの値を返します。


条件関数

param discription
Fn::Not false に評価される条件に対しては、true を返します。
Fn::And 指定されたすべての条件が true に評価された場合は true を返します。
Fn::Or 指定された条件のいずれかが true に評価された場合は true を返します。
Fn::Equals 2 つの値が等しいかどうかを比較します。
Fn::If 指定されたリストの0番目にある条件の評価に合わせて、リストの1番目か2番目の値を返します


参考


ヘルパースクリプト

  • スタックの作成・更新・削除などのイベントに合わせて EC2 インスタンス内部で処理を実行することができる
  • イベント毎に発生させる処理の中身も指定出来る


疑似パラメータ

  • パラメーターと同じように、Ref 関数の引数として使用します。
param discription
AWS::AccountId スタックが作成されているアカウントの AWS アカウント ID
AWS::NotificationARNs スタックの通知 Amazon リソースネーム (ARN) のリスト
AWS::NoValue 組み込み関数(Fn::If)の戻り値として指定すると、条件が false に評価された場合、対応するリソースプロパティを削除します。
AWS::Partition リソースがあるパーティションを返します。
AWS::Region AWS リージョンを表す文字列を返します。
AWS::StackId スタックの ID を返します。
AWS::StackName スタックの名前を返します。
AWS::URLSuffix ドメインのサフィックスを返します。

コメント

このブログの人気の投稿

投稿時間:2021-06-17 05:05:34 RSSフィード2021-06-17 05:00 分まとめ(1274件)

投稿時間:2021-06-20 02:06:12 RSSフィード2021-06-20 02:00 分まとめ(3871件)

投稿時間:2020-12-01 09:41:49 RSSフィード2020-12-01 09:00 分まとめ(69件)