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
1
1.3k
AWS CDKを4〜5年使ってたどり着いた最新構成
soso
December 06, 2023
Tweet
Share
More Decks by soso
See All by soso
TiDB Serverless ~理想のServerless DBを考える~
soso_15315
1
330
Next.jsで作ったブログ内に リンクカードを実装したときの知見
soso_15315
3
700
Reactにおける再レンダリングパフォーマンスチューニングの考え方と実践
soso_15315
2
330
React Hooks公開から1年で得られた知見
soso_15315
1
480
Featured
See All Featured
YesSQL, Process and Tooling at Scale
rocio
169
14k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
6
410
Facilitating Awesome Meetings
lara
50
6.1k
KATA
mclloyd
29
14k
Measuring & Analyzing Core Web Vitals
bluesmoon
4
120
Rebuilding a faster, lazier Slack
samanthasiow
79
8.7k
The Invisible Side of Design
smashingmag
298
50k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
31
2.7k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
How STYLIGHT went responsive
nonsquared
95
5.2k
Making the Leap to Tech Lead
cromwellryan
133
8.9k
Writing Fast Ruby
sferik
627
61k
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で管理する スナップショットテストの導入
ご静聴ありがとうございました