Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
AWS CDKを4〜5年使ってたどり着いた最新構成
Search
soso
December 06, 2023
1
2.4k
AWS CDKを4〜5年使ってたどり着いた最新構成
soso
December 06, 2023
Tweet
Share
More Decks by soso
See All by soso
Devinアップデート最前線2025.07 Devin v2.xの活用術
soso_15315
1
280
TiDB Serverless ~理想のServerless DBを考える~
soso_15315
1
610
Next.jsで作ったブログ内に リンクカードを実装したときの知見
soso_15315
3
930
Reactにおける再レンダリングパフォーマンスチューニングの考え方と実践
soso_15315
2
400
React Hooks公開から1年で得られた知見
soso_15315
1
510
Featured
See All Featured
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
37
2.6k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
253
22k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
51k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
690
RailsConf 2023
tenderlove
30
1.3k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Code Review Best Practice
trishagee
73
19k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
120
20k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
31
2.7k
The Language of Interfaces
destraynor
162
25k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.5k
The Cult of Friendly URLs
andyhume
79
6.7k
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で管理する スナップショットテストの導入
ご静聴ありがとうございました