Upgrade to Pro — share decks privately, control downloads, hide ads and more …

【DevelopersIO Tokyo 2026 】「CloudFormation のスタック...

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest. →
Avatar for Yuki Miyama Yuki Miyama
October 24, 2026
40

【DevelopersIO Tokyo 2026 】「CloudFormation のスタック、 どこで分けていますか?」

Avatar for Yuki Miyama

Yuki Miyama

October 24, 2026

Transcript

  1. 具体的な変更例を元に、3通りの分け⽅を⽐べてみます 案 分け⽅ スタック例 A 1つのスタックにまとめる すべてのリソース B リソースの種類ごとに分ける network(VPC等)

    / security (SG等)/ alb / ec2 / rds C ⼀緒に変更するものをまとめる network(VPC等) / web (ALB‧EC2‧EC2 ⽤ SG)/ db(RDS‧RDS ⽤ SG)
  2. 変更1 EC2 を置き換えると、案 B では⾯倒なことに AMI を更新 ec2 スタック alb

    スタック(案 B) EC2 が置き換わり、 インスタンス ID が変わる インスタンス ID を Export している ImportValue で その Export を使っている 使⽤中の Export は値を変更できないので、更新が失敗します Cannot update export EXPORT_NAME as it is in use by STACK_NAME 案 A‧C は同じスタック内の Ref で参照しているので、新しい ID にそのまま追従します 案 A:1つのスタックにまとめる 案 B:リソースの種類ごとに分ける 案 C:⼀緒に変更するものをまとめる
  3. 変更2 SG を1か所に集めるとどうなるか 案 B の security スタック ALB ⽤

    SG ← 誤った変更リスクあり EC2 ⽤ SG RDS ⽤ SG ← ルールを追加 ← 誤った変更リスクあり 良い点 SG を先に作れるので、ec2 と rds の作成順を 気にしなくてよい。スタック間の循環参照も起きない 気になる点 関係のない SG に編集ミスやタイポが及ぶおそれがある GroupDescription を直すと SG が作り直される (Export していれば変更1と同じエラー) 案 C なら web スタックの中だけで変更が済みます 案 A:1つのスタックにまとめる 案 B:リソースの種類ごとに分ける 案 C:⼀緒に変更するものをまとめる
  4. 変更3 案 C では作る順番が決まりません(循環参照) RDS⽤SGのID web スタック(案 C) db スタック(案

    C) ALB‧EC2‧EC2 ⽤ SG RDS‧RDS ⽤ SG EC2 ⽤ SG の ID web と db が、お互いの値を Import し合っています web を作るには db の Export が、db を作るには web の Export が必要です 案 B は SG を security スタックにまとめているので、循環しません 案 A:1つのスタックにまとめる 案 B:リソースの種類ごとに分ける 案 C:⼀緒に変更するものをまとめる
  5. どの案にもメリット‧デメリットがあります 案 メリット デメリット A 1スタック 1回で作れる 置き換えにも Ref で追従

    どの変更でも、全リソース に影響出る恐れあり B 種類ごと 作成順を気にしなくてよい 循環参照も起きない Export した値が変わると 更新が失敗する (変更1‧2) C ⼀緒に変更 するもの 変更が1つのスタックで完結 置き換えにも Ref で追従 web と db が値を渡し合う と循環する恐れがある (変更3)
  6. 余談 分割とはずれますが、ドリフト多数で変更⼯数が。。。 VPC 系のスタック AWS::Include VPC‧サブネット Network Firewall ルールグループ S3

    上のドメインリスト ファイル名を変えて更新 許可するドメイン コンソールから直接追加 ファイアウォールポリシー →ドリフトの発⽣ コンソールから追加されているドメインがあり、 テンプレートと実機の差分を確認する作業が⼤変でした
  7. どうするべきだったのか、改めて考えてみました 案 内容 良い点 気になる点 1 変更単位でスタックを分 ける(VPC系とNetwork Firewallは分ける等) VPC

    側への影響調査が 参照がスタックをまた 不要になる ぐ 2 CFn で更新する(⼿動変 更を許すな) テンプレートと実機の 差分がなくなる 急ぎの依頼でも CFn の ⼿順を踏む 3 ルールの中⾝は CFn で管 依頼にすぐ対応できる 理しない(割り切る!) CFn の更新で上書きさ れるリスクあり