CloudFormation StackSet のパラメータの挙動について確認してみた

AWS
AWS
この記事は約4分で読めます。

StackSet は個別のスタックインスタンスのパラメータを上書きすることができます。
上書きした後のそのスタックインスタンスのパラメータは、StackSet の更新からは変更ができません。

パラメータ値の上書きは、選択されたアカウントとリージョンのスタックインスタンスに適用されます。スタックセットの更新中、スタックインスタンスで上書きされたすべてのパラメータ値は更新されず、上書きされた値を保持します。

https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/stackinstances-override.html

実際に変更できないか挙動を確認してみました。

利用したテンプレートは以下で、SNS を作成するテンプレートです。

AWSTemplateFormatVersion: "2010-09-09"
Parameters:
  Tag:
    Type: String
Resources:
  SNS:
    Type: AWS::SNS::Topic
    Properties:
      TopicName: stackset-sns
      Tags:
        - Key: parameter
          Value: !Ref Tag

試した結果を記載していきます。

StackSet 作成

  • StackSet パラメータ:test1
  • 東京・大阪リージョンにスタックをデプロイ
  • 東京
    • パラメータ:test1
  • 大阪
    • パラメータ:test1

StackSet 更新(StackSet の詳細の編集)

  • StackSet パラメータ:test2
  • 東京・大阪リージョンにデプロイ
  • 東京
    • パラメータ:test2
  • 大阪
    • パラメータ:test2

StackSet 更新(StackSet の詳細の編集)

  • StackSet パラメータ:test3
  • 東京リージョンにデプロイ
  • 東京
    • パラメータ:test3
  • 大阪
    • パラメータ:test2

StackSet パラメータの上書き

  • パラメータの上書き:test4
  • 大阪リージョンにデプロイ
  • 東京
    • パラメータ:test3
  • 大阪
    • パラメータ:test4(上書き)

StackSet にスタックを追加

  • パラメータ変更せず( test3 のまま)
  • シンガポールリージョンにデプロイ
  • 東京
    • パラメータ:test3
  • 大阪
    • パラメータ:test4(上書き)
  • シンガポール
    • パラメータ:test3

StackSet にスタックを追加

  • パラメータ変更せず(test 3 のまま)
  • 東京・大阪・シンガポール・シドニーリージョンにデプロイ
  • 既存スタックインスタンスに対してデプロイしたらエラーにならないか検証
    • 結論:エラーにならない
  • 東京
    • パラメータ:test3
  • 大阪
    • パラメータ:test4(上書き)
  • シンガポール
    • パラメータ:test3
  • シドニー
    • パラメータ:test3

StackSet にスタックを追加

  • パラメータの上書き: test5
  • シドニーリージョンにデプロイ
  • 東京
    • パラメータ:test3
  • 大阪
    • パラメータ:test4(上書き)
  • シンガポール
    • パラメータ:test3
  • シドニー
    • パラメータ:test5(上書き)

StackSet の更新(StackSet の詳細を編集)

  • StackSet パラメータ:test6
  • 東京・大阪・シンガポール・シドニーリージョンにデプロイ
  • 東京
    • パラメータ:test6
  • 大阪
    • パラメータ:test4(上書き)
  • シンガポール
    • パラメータ:test6
  • シドニー
    • パラメータ:test5(上書き)

まとめ

当たり前のことですが、ドキュメントのとおり上書きしたパラメータは StackSet の更新からは変更できないことを確認できました。

タイトルとURLをコピーしました