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
20240208_CFn_IaC_Gen_with_CDK.pdf
Search
Yukitaka Ohmura
February 14, 2024
Technology
1
350
20240208_CFn_IaC_Gen_with_CDK.pdf
Yukitaka Ohmura
February 14, 2024
Tweet
Share
More Decks by Yukitaka Ohmura
See All by Yukitaka Ohmura
AWSのマルチアカウント管理 ベストプラクティス最新版 2025 / Multi-Account management on AWS best practice 2025
ohmura
5
1.5k
JAWS-UG ちばらき 地味でも大事な re:Invent 2024 / JAWS-UG chibaraki Enjoy cool and unaware feature at pre:Invent 2024
ohmura
3
220
CloudFormation IaC generatorを使った既存AWS環境の管理方法 / Managing existing environment with AWS CFn IaC generator
ohmura
9
3.8k
スタートアップに学ぶイノベーションの起こし方とクラウドの活用方法 / Learning from startup - how to innovate and to use AWS
ohmura
0
200
AWS Well-Architected Framework 2023年10月 アップデート情報 / AWS Well-Architected Framework Oct. 2023 update
ohmura
0
880
Cloud Financial Management ~AWSコストの可視化・最適化・予測・FinOps~ / Cloud Financial Management Overview
ohmura
8
4.9k
CloudFormation Guard で Policy as Code! 実際どうよ? / Policy as Code with CloudFormation Guard
ohmura
0
690
What we leaned about CDK from developing BLEA
ohmura
0
130
Other Decks in Technology
See All in Technology
[Oracle TechNight#94] Oracle AI World 2025 Oracle Database関連フィードバック
oracle4engineer
PRO
0
280
從裝潢設計圖到 Home Assistant:打造智慧家庭的實戰與踩坑筆記
kewang
0
150
品質保証の取り組みを広げる仕組みづくり〜スキルの移譲と自律を支える実践知〜
tarappo
2
800
The Twin Mandate of Observability
charity
1
1.3k
ソフトウェアテストのAI活用_ver1.50
fumisuke
0
280
AI時代におけるドメイン駆動設計 入門 / Introduction to Domain-Driven Design in the AI Era
fendo181
0
620
エンジニアに定年なし! AI時代にキャリアをReboot — 学び続けて未来を創る
junjikoide
0
170
バグと向き合い、仕組みで防ぐ
____rina____
0
230
Datadog On-Call と Cloud SIEM で作る SOC 基盤
kuriyosh
0
120
Copilotの精度を上げる!カスタムプロンプト入門.pdf
ismk
10
3k
ubuntu-latest から ubuntu-slim へ移行しよう!コスト削減うれしい~!
asumikam
0
450
Claude Code 10連ガチャ
uhyo
2
540
Featured
See All Featured
How STYLIGHT went responsive
nonsquared
100
5.9k
Reflections from 52 weeks, 52 projects
jeffersonlam
355
21k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
37
2.6k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.8k
A Modern Web Designer's Workflow
chriscoyier
697
190k
How to train your dragon (web standard)
notwaldorf
97
6.4k
Stop Working from a Prison Cell
hatefulcrawdad
272
21k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Speed Design
sergeychernyshev
32
1.2k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.3k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
31
2.7k
A better future with KSS
kneath
239
18k
Transcript
© 2024, Amazon Web Services, Inc. or its affiliates. ©
2024, Amazon Web Services, Inc. or its affiliates. ⼤村 幸敬 (
[email protected]
) アマゾン ウェブ サービス ジャパン 合同会社 ソリューションアーキテクト CloudFormation IaC generatorを使った 既存AWS環境の管理⽅法 (CloudFormation & CDK) 2024/02/08
© 2024, Amazon Web Services, Inc. or its affiliates. AWS環境の管理パターン
2
© 2024, Amazon Web Services, Inc. or its affiliates. AWS環境の管理パターン
3 AWSリソース CDK DOC ⼿順書 マネジメントコンソール 作業者 作業者の操作(編集)対象 実際のリソース ⼿作業 CloudFormation利⽤ CDK利⽤ CFnテンプレート CFnスタック CDKコード CDKが内部で⽣成する CFnテンプレート *CFn = CloudForamtion
© 2024, Amazon Web Services, Inc. or its affiliates. 既存リソースをCloudFormationで管理する
(CloudFormation IaC generator の使い⽅) 4
© 2024, Amazon Web Services, Inc. or its affiliates. 既存リソースをCFnで管理する
(1/5) 5 AWSリソース DOC ⼿順書 マネジメントコンソール 作業者 作業者の操作(編集)対象 実際のリソース ⼿作業担当者 CloudFormation利⽤者
© 2024, Amazon Web Services, Inc. or its affiliates. 既存リソースをCFnで管理する(2/5)
6 AWSリソース 作業者 実際のリソース ⼿作業担当者 CloudFormation利⽤者 CFn IaC generator 実環境全体をスキャン CFn IaC generator スキャン結果
© 2024, Amazon Web Services, Inc. or its affiliates. 既存リソースをCFnで管理する(3/5)
7 AWSリソース 作業者 実際のリソース ⼿作業担当者 CloudFormation利⽤者 CFn IaC generator スキャン結果から 対象のリソースを指定して CFnテンプレートの⽣成を指⽰ CFn IaC generator スキャン結果 CFnテンプレート
© 2024, Amazon Web Services, Inc. or its affiliates. 既存リソースをCFnで管理する(4/5)
8 AWSリソース 作業者 実際のリソース ⼿作業担当者 CloudFormation利⽤者 CFn IaC generator 「スタックにインポート」 ⽣成したCFnテンプレートと実際のAWSリソースを紐付け CFnスタックを⽣成 CFnテンプレート CFnスタック
© 2024, Amazon Web Services, Inc. or its affiliates. 既存リソースをCFnで管理する(5/5)
9 AWSリソース 作業者 実際のリソース ⼿作業担当者 CloudFormation利⽤者 CFnスタック CFnテンプレート 以後CFnテンプレートによるAWSリソース管理が可能になる
© 2024, Amazon Web Services, Inc. or its affiliates. 既存リソースをCDKで管理する
10
© 2024, Amazon Web Services, Inc. or its affiliates. 参考︓既存環境からCDKコードを⽣成する3つの⽅法
11 AWSリソース CDK CDK利⽤者 CFnスタック CDKコード cdk migrate –-from-stackで、 スタックから CDKコードを⽣成 CFnテンプレート CFn IaC generator スキャン結果 cdk migrate –-from-scanで、 CFn IaC generatorのスキャン結果から CDKコードを⽣成 • CFn IaC generatorスキャン結果 • CFn テンプレート • CFn スタック cdk migrate –-from-pathで、 CFnテンプレートから CDKコードを⽣成
© 2024, Amazon Web Services, Inc. or its affiliates. 既存リソースをCDKで管理する
(1/3) 12 AWSリソース CDK 実際のリソース CDK利⽤者 CFnスタック CDKコード cdk migrate –-from-stackで、 スタックから CDKコードを⽣成 注: このほかに CFn IaC generatorの結果から⽣成する⽅法 CFn テンプレートから⽣成する⽅法 があります ※「既存リソースをCFnで管理する」を 実施した後の⼿順です
© 2024, Amazon Web Services, Inc. or its affiliates. 既存リソースをCDKで管理する
(2/3) 13 AWSリソース CDK 作業者 実際のリソース CDK利⽤者 CFnスタック CDKコード cdk diff を使って差分の有無を確認 (対象スタック名を既存のスタック名と⼀致させること) 必要に応じてコードを微調整する ・多くはCDK管理⽤のメタデータリソースの追加のみ (そのままで問題ない) ・migrateしたCDKコードはRemovalPolicyの設定がないが インポートしたCFnスタック上のリソースは RemovalPolicy=Retainとなっているため 必要に合わせてCDKも修正(設定⽅法は後述) Drift detection CDKが内部で⽣成する CFnテンプレート diff cdk diff
© 2024, Amazon Web Services, Inc. or its affiliates. 既存リソースをCDKで管理する
(3/3) 14 AWSリソース CDK 作業者 実際のリソース CDK利⽤者 CFnスタック CDKコード cdk deployしてCDK側の設定を反映 インポートしたリソースから作ったコードであれば 通常実際のリソースに影響はない 以後CDKによる管理が可能に CDKが内部で⽣成する CFnテンプレート cdk deploy
© 2024, Amazon Web Services, Inc. or its affiliates. 参考︓
リソースに⼀括でRemovalPolicy=Retainを設定するコード 15
© 2024, Amazon Web Services, Inc. or its affiliates. 既存リソースをCFn/CDKで管理するまでの
作業イメージ 16
© 2024, Amazon Web Services, Inc. or its affiliates. 01.
CFn IaC generator 画⾯(スキャン実⾏済み) 17
© 2024, Amazon Web Services, Inc. or its affiliates. 02.
テンプレートの作成 (1) 18
© 2024, Amazon Web Services, Inc. or its affiliates. 03.
テンプレートの作成 (2) リソースの指定 19
© 2024, Amazon Web Services, Inc. or its affiliates. 04.
テンプレートの作成 (3) 関連リソースの検出と追加 20
© 2024, Amazon Web Services, Inc. or its affiliates. 05.
テンプレートの作成 (4) 21
© 2024, Amazon Web Services, Inc. or its affiliates. 06.
テンプレートの作成 完了 22
© 2024, Amazon Web Services, Inc. or its affiliates. 07.
リソースをインポート (1) 23
© 2024, Amazon Web Services, Inc. or its affiliates. 08.
リソースをインポート (2) 24
© 2024, Amazon Web Services, Inc. or its affiliates. 09.
リソースをインポート (3) 25
© 2024, Amazon Web Services, Inc. or its affiliates. 10.
スタックインポートの進⾏ 26
© 2024, Amazon Web Services, Inc. or its affiliates. 11.
スタックインポートの完了 27
© 2024, Amazon Web Services, Inc. or its affiliates. 12.
CDKコードの⽣成(スタックから⽣成した場合の例) 28 ⽣成されたCDKコード migrate.json コード上の定義と、実体リソースとの紐付けを定義している cdk migrate が⽣成する
© 2024, Amazon Web Services, Inc. or its affiliates. 13.
実環境との差分確認 29 CDKに関する Metadata等の差分 (デプロイ上の問題はない) インポートしたリソースはRemovalPolicyがRetainだが cdk migrateで⽣成したコードでは特に指定がないため差分が出る 定義上タグの順番が変わったことによる差分 (デプロイ上の問題はない)
© 2024, Amazon Web Services, Inc. or its affiliates. 14.
RemovalPolicyを実体に合わせてRetainへ変更 30 再度diffをとって確認→問題なし
© 2024, Amazon Web Services, Inc. or its affiliates. 15.
CDKをデプロイ(メタデータのみ上書き) 31 変更されるのはメタデータのみ CFn上もメタデータのみ更新
© 2024, Amazon Web Services, Inc. or its affiliates. 参考:
スタックだけを削除する 32 実体を削除したくない場合は、削除前に対象リソースが Retain になっていることを必ず確認してください︕ CDKが設定したメタデータ等は削除されるが、リソース削除はスキップされている スタックを分割したかったり、 インポート対象を変えたい場合、 実体は残してCFnスタックだけを削除したくなる インポートしたリソースはデフォルトでRetainなので スタックを削除しても 実体は DELETE_SKIPPEDとなる(右図)
© 2024, Amazon Web Services, Inc. or its affiliates. ©
2024, Amazon Web Services, Inc. or its affiliates. Thank you!