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
2k
JAWS-UG ちばらき 地味でも大事な re:Invent 2024 / JAWS-UG chibaraki Enjoy cool and unaware feature at pre:Invent 2024
ohmura
3
240
CloudFormation IaC generatorを使った既存AWS環境の管理方法 / Managing existing environment with AWS CFn IaC generator
ohmura
9
3.9k
スタートアップに学ぶイノベーションの起こし方とクラウドの活用方法 / Learning from startup - how to innovate and to use AWS
ohmura
0
210
AWS Well-Architected Framework 2023年10月 アップデート情報 / AWS Well-Architected Framework Oct. 2023 update
ohmura
0
900
Cloud Financial Management ~AWSコストの可視化・最適化・予測・FinOps~ / Cloud Financial Management Overview
ohmura
8
5k
CloudFormation Guard で Policy as Code! 実際どうよ? / Policy as Code with CloudFormation Guard
ohmura
0
740
What we leaned about CDK from developing BLEA
ohmura
0
140
Other Decks in Technology
See All in Technology
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
5
1.5k
歴史から学ぶ、Goのメモリ管理基礎
logica0419
10
2k
ECS_EKS以外の選択肢_ROSA入門_.pdf
masakiokuda
1
120
AI との良い付き合い方を僕らは誰も知らない (WSS 2026 静岡版)
asei
1
220
2025年のデザインシステムとAI 活用を振り返る
leveragestech
0
680
「アウトプット脳からユーザー価値脳へ」がそんなに簡単にできたら苦労しない #RSGT2026
aki_iinuma
7
3.6k
Introduction to Bill One Development Engineer
sansan33
PRO
0
340
ソフトウェアエンジニアとAIエンジニアの役割分担についてのある事例
kworkdev
PRO
1
360
善意の活動は、なぜ続かなくなるのか ーふりかえりが"構造を変える判断"になった半年間ー
matsukurou
0
230
_第4回__AIxIoTビジネス共創ラボ紹介資料_20251203.pdf
iotcomjpadmin
0
170
国井さんにPurview の話を聞く会
sophiakunii
1
310
スクラムマスターが スクラムチームに入って取り組む5つのこと - スクラムガイドには書いてないけど入った当初から取り組んでおきたい大切なこと -
scrummasudar
1
1.2k
Featured
See All Featured
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
35
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
530
Un-Boring Meetings
codingconduct
0
170
Abbi's Birthday
coloredviolet
0
4.2k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
91
The Curse of the Amulet
leimatthew05
0
6.7k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.2k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
61
51k
Ethics towards AI in product and experience design
skipperchong
1
150
Designing for Timeless Needs
cassininazir
0
110
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
120
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
72
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!