Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
20260530_JAWSUG彩の国埼玉支部1周年記念
Search
takuto-0623
May 30, 2026
Technology
81
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
20260530_JAWSUG彩の国埼玉支部1周年記念
takuto-0623
May 30, 2026
More Decks by takuto-0623
See All by takuto-0623
20260323_AWSAcademy×CiscoNetworkingAcademy合同プログラム交流会
takuto0623
0
110
20260216_Education-JAWS #7 Jr.Championsコラボ会登壇資料
takuto0623
1
140
Other Decks in Technology
See All in Technology
入門!AWS Blocks
ysuzuki
1
130
就職⽀援サービスにおけるキャリアアドバイザーのシフトスケジューリング
recruitengineers
PRO
1
150
連合学習と機密コンピューティング
lycorptech_jp
PRO
0
120
新しいVibe Codingと”自走”について
watany
6
330
小さくはじめるSLI/SLO ~育てながら組織に定着させる実践知~ / Starting Small with SLI/SLOs: Building Adoption Through Continuous Growth
nari_ex
7
2k
SONiCで構築・運用する生成AI向けパブリッククラウドネットワーク ~実装編~
sonic
0
220
Claude Code の Sandbox 機能を Anthropic Sandbox Runtime(srt) で試そう!/lets-play-anthropic-sandbox-runtime
tomoki10
1
620
Bucharest Tech Week 2026 - Reinventing testing practices in the AI era
edeandrea
PRO
1
160
新しいUbuntu/GNOMEが使いたいからXからWaylandへ移行頑張ってるの巻 2026-06-20
nobutomurata
0
130
AGENTS.mdとSkillsで始めるAIエージェント活用
sonoda_mj
3
220
現地で盛り上がった WWDC26 Keynote
zozotech
PRO
1
250
Oracle AI Database@Azure:サービス概要のご紹介
oracle4engineer
PRO
6
2k
Featured
See All Featured
Believing is Seeing
oripsolob
1
150
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
170
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2k
Chasing Engaging Ingredients in Design
codingconduct
0
220
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
Are puppies a ranking factor?
jonoalderson
1
3.6k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
590
The Invisible Side of Design
smashingmag
302
52k
From π to Pie charts
rasagy
0
210
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
230
Transcript
あの時のCFN設計思想は 正しかったのか 2026/5/30 JAWS UG 彩の国埼玉支部1周年記念 わかばやし ~大規模開発のcfnスタック管理のあるべきを考えたい~
2 JAWS-UG 彩の国埼玉支部一周年 おめでとうございます!! 埼玉県在住で勝手にご縁を感じて 申込参加させていただきました! まずはじめに
3 本日のテーマ 「適切なcfnスタック分割軸って何??」 3月末まで関与してたシステム開発PJでの CFN設計開発の反省・改善点を考えてみました! (あくまで所属PJならどうするべきだったか、 の一意見なので、お手柔らかにお願いします!
4 ジョブ管理 基幹App/DB 現行システムの老朽化に伴い、ローコードツールを駆使してEKSとRDSで基幹システムを構築・オンプレと接続。 その他認証基盤・DWH・大規模並列処理基盤・監視基盤etcで利用する外部サービスと接続する超ハイブリッド構成。 前提 クラウド・オンプレ・PaaSを繋ぐ大規模ハイブリッド構成を1から立ち上げる! セキュリティ ファイル連携 並列処理基盤
認証基盤 DWH ネットワーク リリース管理
5 設計フェーズではAWSサービス単位で設計方針・パラメータを整理。 それに伴ってcfnスタックも「S3」「IAM」「EC2」といった形で、サービス種別単位で作成。 設計思想・方針 AWSサービス種別単位でスタックを分割 AWS基本設計 EC2 EKS S3 ・・・
サービスA 基本設計 サービスB 基本設計 AWS詳細設計 EC2 Ctrl Plane S3_01 ・・・ サービスA 詳細設計 サービスB 詳細設計 Worker Node S3_02 Ec2.yaml ctrlplaene.yaml workernode.yaml S3_01.yaml S3_02.yaml 方針書 オンライン機能 リリース管理 運用管理 セキュリティ 非機能要件定義書 要件定義 基本設計・詳細設計・Yamlテンプレート Yamlファイル群
6 設計フェーズではAWSサービス単位で設計方針・パラメータを整理。 それに伴ってcfnスタックも「S3」「IAM」「EC2」といった形で、サービス種別単位で作成。 設計思想・方針 AWSサービス種別単位でスタックを分割 AWS基本設計 EC2 EKS S3 ・・・
サービスA 基本設計 サービスB 基本設計 AWS詳細設計 EC2 Ctrl Plane S3_01 ・・・ サービスA 詳細設計 サービスB 詳細設計 Worker Node S3_02 Ec2.yaml ctrlplaene.yaml workernode.yaml S3_01.yaml S3_02.yaml 方針書 オンライン機能 リリース管理 運用管理 セキュリティ 非機能要件定義書 要件定義 基本設計・詳細設計・Yamlテンプレート Yamlファイル群 リソースを分類しているだけで、 依存関係を設計・可視化出来ていない!
7 IAM作成後でなければEC2・EKS・Lambdaが作成出来ない等、各スタックの依存関係が複雑化。 それに伴い、構築スピードの低下やリソースの相互依存による非効率なオペレーションが発生。 発生した問題① スタック・リソースの依存関係の複雑化・構築スピード低下 EKS IAMロール Lambda IAMロール 外部サービス
IAMロール EKS Control Plane Lambda Cfnスタック EKS CfnスタックLambda 外部サービスのセットアップ IAMスタックの中で外部サービス用のIAMロールの作成に失敗すると、、 Cfnスタック IAM
8 IAM作成後でなければEC2・EKS・Lambdaが作成出来ない等、各スタックの依存関係が複雑化。 それに伴い、構築スピードの低下やリソースの相互依存による非効率なオペレーションが発生。 発生した問題① スタック・リソースの依存関係の複雑化・構築スピード低下 EKS IAMロール Lambda IAMロール 外部サービス
IAMロール EKS Control Plane Lambda Cfnスタック EKS CfnスタックLambda 外部サービスのセットアップ IAMスタック自体を作り直す必要があるため、他のリソース作成にも影響が発生 Cfnスタック IAM
9 IAMやS3といった最下層の基盤リソースは往々にしてその後の構築フェーズにて改修が発生する。 サービス単位でスタックを分割している場合、各機能の構築チームで改修要望がバッティングして無駄な待ち時間やチーム間 のコミュニケーションコストが発生する。 発生した問題② コミュニケーションコスト・無駄な待機時間が発生 EKS構築にはXXXX権限の追加が 必要だと分かりました。 IAMポリシーの修正をお願いします。 外部サービスの構築のため、
IAMの信頼ポリシーに XXXを追加してください。 どちらも修正対応を行ってから両チー ムに連絡する? EKS権限の修正の方が簡単そうなので まずはそっちから対応する、、? AWS構築チーム App基盤構築チーム 外部サービス構築 チーム
10 IAMやS3といった最下層の基盤リソースは往々にしてその後の構築フェーズにて改修が発生する。 サービス単位でスタックを分割している場合、各機能の構築チームで改修要望がバッティングして無駄な待ち時間やチーム間 のコミュニケーションコストが発生する。 発生した問題② コミュニケーションコスト・無駄な待機時間が発生 EKS構築にはXXXX権限の追加が 必要だと分かりました。 IAMポリシーの修正をお願いします。 外部サービスの構築のため、
IAMの信頼ポリシーに XXXを追加してください。 どちらも修正対応を行ってから両チー ムに連絡する? EKS権限の修正の方が簡単そうなので まずはそっちから対応する、、? AWS構築チーム App基盤構築チーム 外部サービス構築 チーム 不要なコミュニケーション・待ち時間が発生! (チーム分担が明確化していない場合は修正に競合が発生することも、、)
11 各スタック間での相互参照や循環参照により、スタックの二重更新等の無駄なオペレーションが発生。 発生した問題③ スタック間の循環参照やパラメータ出力漏れ等により無駄なオペレーションが発生 スタック間での循環参照 スタック間での参照 Cfn IAM KMS Key
を指定 Cfn KMS IAM Role を指定 相互 参照 リソースの相互参照により 同一スタックを複数回更新して 段階的にリソースを作成する必要有 Cfn EventBridge IAMのSSM Parameter指定 Cfn IAM 参照したいSSM Parameterが存在せず、 別スタックを追加で更新する必要有
12 では、“スケールするスタック設計”とは何か?
13 AWSのベストプラクティスをまずは見てみる 「ライフサイクル」 と 「所有権」 に応じたスタックの整理 各層をその直下の層に依存させる 「多層アーキテクチャ」 各スタックで目的・機能を 自己充足させる
「サービス指向アーキテクチャ」 CloudFormation ベストプラクティス - AWS CloudFormation
14 設計フェーズではAWS単位で設計をするのではなく、方針書で定義したシステム項目単位や 各項目で利用している外部サービス単位で設計を実施。各設計内の「AWS環境設計」として各AWSサービスの設計を行う。 解決策 設計フェーズでは要件定義で定義したシステム機能/ライフサイクル単位で設計 App基盤 基本設計 EKS IAM ・・・
監視基盤 基本設計 App_infra.yaml Monitoring_infra. yaml 方針書 オンライン機能 リリース管理 運用管理 セキュリティ 非機能要件定義書 要件定義 基本設計・Yamlテンプレート 外部サービスA設計 AWS環境設計 IAM S3 ・・ ・・・ Yamlファイル群
15 設計フェーズではAWS単位で設計をするのではなく、方針書で定義したシステム項目単位や各項目で利用している 外部サービス単位で設計を実施。各設計内の「AWS環境設計」として各AWSサービスの設計を行う。 解決策 設計フェーズでは要件定義で定義したシステム機能/ライフサイクル単位で設計 App基盤 基本設計 EKS IAM ・・・
監視基盤 基本設計 App_infra.yaml Monitoring_infra. yaml 方針書 オンライン機能 リリース管理 運用管理 セキュリティ 非機能要件定義書 要件定義 基本設計・Yamlテンプレート 外部サービスA設計 AWS環境設計 IAM S3 ・・ ・・・ Yamlファイル群 各システム機能ごとの リソース間の依存関係をふまえて 適切な粒度で設計!
16 機能単位でスタックを分割することで、リソース間の依存関係を局所化し、変更の影響範囲をコントロール可能にする。 これにより、各機能の構築チーム/担当者間の無駄なコミュニケーションや待ち時間を減らすことが可能。 期待される効果 ライフサイクル単位で適切な粒度でスタックを分割することで責任・影響範囲を分割する。 EKS IAMロール Cfnスタック (App基盤) EKS
Control Plane App用ストレージ Lambda IAMロール Cfnスタック (Lambda) Lambda Lambda処理結果出力用 外部サービス用IAMロール Cfnスタック (外部サービス) 外部サービスログ出力用 外部サービス連携用 外部サービス用だけ 再作成 他機能には影響がないため 他リソースの作成は 進めることが可能! 一部のIAM作成に失敗しても影響範囲が関連機能・リソースに留まる
17 スタック間で発生していた依存関係を同一スタック内に集約することで参照関係を簡素化し、変更時の影響範囲を局所化する。 期待される効果 依存関係の境界をスタック境界で設計する スタック間での循環参照 スタック間での参照 Cfn 機能群A KMS Key
を指定 IAM Role を指定 相互 参照 同一スタック内で 各リソースを参照可能であるため、 無駄なオペレーションが発生しない Cfn EventBridge IAMを指定 リソース間依存を 同一スタック内で吸収することで、 参照パラメータの管理を簡素化
18 まとめ Cfnスタックはサービス単位ではなくライフサイクル単位で分割 リソース間の依存関係を簡素化し、構築を効率化!
おわり ご清聴ありがとうございました!