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
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
55k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
260
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
970
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
310
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
1
370
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
180
Color Theory Basics | Prateek | Gurzu
gurzu
0
380
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.3k
Music & Morning Musume
bryan
47
7.3k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.4k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
800
The Pragmatic Product Professional
lauravandoore
37
7.4k
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で管理する スナップショットテストの導入
ご静聴ありがとうございました