Closed16
初心者がおさえておきたいAWS CDKのベストプラクティス 2024 スクラップ
- 高野 賢司さん
- AWS シニアソリューションアーキテクト
- CDK カンファレンス2024
ドキュメントを読む
CDK Developer Guide
実践なベストプラクティスがあり
API Reference
各モジュールのOverviewが良き
GitHub Repository
仕組みを理解する
AWS Black Belt Online Seminar
Tenetsに共感する
Tenetsとは
意思決定のための組織や製品の信条。何に価値を置くのかを明らかにする
困ったときの相談先
AWS Support
AWS re:Post
cdk.dev
ガイドライン
Gitでバージョン管理する
Gitリポジトリにすべてを保存する
依存関係のロック
- package-lock.json,poetry.lock等もコミットする
-
- cdk.context.json
Gitリポジトリとチームの境界を合わせる
- 1 GItリポジトリ = 1CDK Appを原則にする
- コンウェイの法則を念頭におく
IDEの機能を利用する
VSCOde + TypeScriptは設定不要
-
Linter / Formatterは下記を参考に
- BLEA
- Projen
-
スニペット
- CDK App
- Stack
- Construct
上記の雛形をつくってみる
Amazon Q Developer
IaCコードのセキュリティスキャンを自動化できるで良き。
はじめから標準化しない
Platform as a Product
エンジニアを顧客としてエンジニアの認知負荷を削減する取り組みをする
リソースの置き換えに注意
- cdk diffでセット変更を確認
- Constract IDの変更
コンストラクタの第2引数に指定する文字列 - SSM Parameterなど CDK外部で変更される値にちゅい
- キャッシュ指定の有無などを確認
ハイレベルなコンストラクトを使う
- エスケープパッチでL1コンストラクトが取得可能
- 設定値をすべて明示的に指定するとレビューが困難
grant / metric / connectionsを使う
L2にはgrantが含まれている。
スタックは必要になるまでわけない
分けるメリットが具等になるまでわけない
コンストラクトで分割する
たとえば、認証、ストレージ、ラムダ、APIのように分ける
ベタ書きから始める
- アプリと異なり、動的に振る舞いを帰る必要が低い
- 必要になるまでパラメーター化しない
パラメータはAppレベルから注入する
- クラスがテストできなくなるため
- main.tsやapp.tsなど。エントリーポイントから参照し、スタックに渡す。
スナップショットテストを書く
- CloudFormationテンプレートの比較から始める。
- 条件分岐などロジックやパラメーターが必要になったらユニットテストを書く
リソース名ではなくConstract IDにこだわる
- Constract IDはPascalCaseで命名
- 短くシンプルに
- 共通のprefixをつけない
- リソースごとの制約によって切り詰めめられて末尾が失われない用意する
- StageのConstract IDには環境名をつける。dev、prod
- StackのConstratct IDにはサービス名をつける、awsomePhotos
- リソースのConstract IDにはシンプルなまま絵をつける。itemTable
例: - Dev-AwsamePhotos
- Dev-AAwsomePhotos-Itemtablexxxxxxx
- prod-awsamphotos-userphotslogbuket
コードベースと環境の一貫性を保つ
ckd deploy -allを続ける
このスクラップは5ヶ月前にクローズされました