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
AWS CDKを4〜5年使ってたどり着いた最新構成
Search
soso
December 06, 2023
2.6k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
AWS CDKを4〜5年使ってたどり着いた最新構成
soso
December 06, 2023
More Decks by soso
See All by soso
Devinアップデート最前線2025.07 Devin v2.xの活用術
soso_15315
1
330
TiDB Serverless ~理想のServerless DBを考える~
soso_15315
1
710
Next.jsで作ったブログ内に リンクカードを実装したときの知見
soso_15315
3
1k
Reactにおける再レンダリングパフォーマンスチューニングの考え方と実践
soso_15315
2
440
React Hooks公開から1年で得られた知見
soso_15315
1
540
Featured
See All Featured
Done Done
chrislema
186
16k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
380
Optimising Largest Contentful Paint
csswizardry
37
3.8k
The Limits of Empathy - UXLibs8
cassininazir
1
380
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
380
Paper Plane (Part 1)
katiecoart
PRO
0
9.5k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
460
Six Lessons from altMBA
skipperchong
29
4.3k
Evolving SEO for Evolving Search Engines
ryanjones
0
230
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
340
The World Runs on Bad Software
bkeepers
PRO
72
12k
Transcript
@sosomuse AWS CDKを4~5年使って たどり着いた最新構成
自己紹介 OSSコントリビュート: Storybook, i18next, ...etc 最近はAWS CDKとAtCoderにハマってます。 西村 爽 So
Nishimura フロントエンド: Next.js バックエンド: Go インフラ: AWS @sosomuse
アジェンダ 2. 改善してよかった点 3. 現在のディレクトリ構成 1. ざっくりAWS CDK
ざっくりAWS CDK CloudFormationに変換され、デプロイされる AWSのインフラ定義をプログラミング言語を用いて定義できる TypeScript(JS) Python Go etc... https://docs.aws.amazon.com/ja_jp/cdk/v2/guide/home.html
CDKを構成するために参考になるもの https://github.com/aws-samples/baseline-environment-on-aws https://www.youtube.com/watch?v=BmCpa44rAXI AWSのセキュリティベストプラクティスやよくある実装サンプルが提供されている ベースライン的なテンプレート AWS BLEA AWS Black Belt
公式ベストプラクティス https://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/best-practices-cdk-typescript-iac/introduction.html
GemcookにおけるAWS CDK 2019年中頃(GA)から技術検証を始める 2021年末にCDK V2リリース ~2023まで色々な改善や構成変更をしながら使用を続けている TypeScriptを使用 CDK自体もTypeScriptで書かれており、サンプルも基本TypeScript このあたりはコンストラクトが足りてないなど、CDKに対する不満点も多かった L2コンストラクトもかなり整備され、使用感が大きく向上
大きな構成変更の議論が始まる
GemcookにおけるAWS CDK 2019年中頃(GA)から技術検証を始める 2021年末にCDK V2リリース ~2023まで色々な改善や構成変更をしながら使用を続けている TypeScriptを使用 CDK自体もTypeScriptで書かれており、サンプルも基本TypeScript このあたりはコンストラクトが足りてないなど、CDKに対する不満点も多かった L2コンストラクトもかなり整備され、使用感が大きく向上
大きな構成変更の議論が始まる 私はこの辺から
アジェンダ 2. 改善してよかった点 3. 現在のディレクトリ構成 1. ざっくりAWS CDK
(1)cdk.jsonではなくTSで環境別設定を管理 cdk.jsonのcontextを用いて設定を管理 BLEAでもcontextを使っていた時期があり、公式感があった
contextの問題点 型が効かない!! 分割し辛い 必要な値が分かり辛い etc... TSにしよう
TSで環境設定を管理するように TSで管理することにより型が効くように パラメータの追加時に型エラーが出ることによって、足りない値が明示的になるように
(2)スナップショットテストの導入 (2)スナップショットテストの導入 スナップショットテストの導入 その瞬間のCFnテンプレートをスナップショットとして差分テスト 変更による依存がわかりやすくなる renovateやdependabotによるライブラリのバージョンアップでリソースに対して変更を検知できる https://docs.aws.amazon.com/ja_jp/cdk/v2/guide/testing.html
アジェンダ 2. 改善してよかった点 3. 現在のディレクトリ構成 1. ざっくりAWS CDK
現在のディレクトリ構成
lib以下の階層説明 stack resource pattern スタックを配置するディレクトリ L1,L2コンストラクトから作った各リソースの 独自L2コンストラクトを配置するディレクトリ 共通的で使用する 独自L3コンストラクトを配置するディレクトリ 特定の機能を押し込めたものを単位とする
(2)スナップショットテストの導入 まとめ ディレクトリ構成に絶対の正解は無いが、日々改善する意識を持つこと ベストプラクティスは移ろいゆくもの キャッチアップを怠らずに良い構成を求め続ける 以下の2つはプロジェクトですぐにおすすめできる改善 環境設定をcdk.jsonではなくTypeScriptで管理する スナップショットテストの導入
ご静聴ありがとうございました