TS何も分からんマンが作ったJAWSDAYS2024ティザーサイト徹底解剖
- @takuya_y0neさん
- https://speakerdeck.com/takuyay0ne/20240706-cdkconf
JAWSDAYS2024のサイト
- Next/chakra-ui
- レスポンシブ
- セッションお気に入り機能
- サーバーレス
- 有志なのでお金かけたくない
- トラフィックの予測がつかない
- cdk
- L2 Constructの1Stack
- デプロイのパイプラインを作っておく
CDK初心者が開発で遭遇したトラブルと解決法
- @Figure_Skate_ITさん
CDKのトラブル
- クラス構成が人によって違う
- 設定情報をjsonで外出しするとコメント書けない
- construstを継承したクラスを新しく作ると論理IDが変わってリソース再作成されてしまう
初心者がおさえておきたいAWS CDKのベストプラクティス 2024年版
CDKプラクティス
- ドキュメントを読む
- 実践的なこと書いてある
- APIリファレンスのoverviewにサンプルがある
- 仕組みを理解する
- CloudFormationのテンプレートを作ってリソースを作ってる
- Tenetsに共感する
- どういう思想で作られてるか知ってそれにあった使い方をする
- 困った時の相談先
- git管理してリポジトリに全部保存する
- リポジトリとチームの単位をあわせる
- 1CDK/1アプリ/1チーム
- IDEを使う
- VSCodeでTypeScriptは設定不要で便利
- 生成AIを使う
- Amazon Q Developer
- リソースの置き換え注意
- cdk diffでチェック
- リソースが再作成されないように
- 論理IDが変わらないように
- ハイレベルなコンストラクトを使う
- 全部を設定に書かない
- どこがデフォルトと変わったか分からなくなる
- 必要なものだけ書く
- grantなど便利なメソッドを使う
- スタックは必要になるまでわけない
- スタック間参照は大変
- 分けて何が嬉しいかちゃんと説明できないなら分けない
- ベタ書きから始める
- その方がテストしやすい
- 環境ごとに変更必要になったら考える
- パラメーターは最上位から注入
- AppレベルからStack/Constructに渡していく
- スナップショットテスト
- 定型文出書ける
- ConstructIDにこだわる
- リソース名ではなくConstructIDにこだわる
- コードと環境の一貫性
cdk deploy --all
脱ぽちぽちを目指してCDKでインフラ構築してみた
- @kotukotuganbadさん
CDK使ってみて
LocalstackとcdklocalでつくるCDK開発環境入門
- @h_kusavさん
LocalStack
- LocalStack
- docker上でAWSのリソースをエミュレートできる
- cdkLocal
- LocalStackに対してcdkを実行できる
- LocalStackのリソースの状況をUIで見られる
- 無料版は永続化できなくてサービスも限られてる
CDKアプリとしてのAmplify Gen2 - @aws-amplify/backendのアーキテクチャにみるCDKベストプラクティス -
- @fossamagnaさん
Amplify Gen2
- Amplify gen2
- gen2になってcdkベースになった
- tsでバックエンド定義
- 宣言的に書ける
- ファイルベースの規約
- ディレクトリ構成やファイル名が決まってる
- 開発者ごとにsandbox環境をデプロイできる
- バックエンドのデプロイ
- gitのブランチ指定してampxコマンドでデプロイ
- 内部的にはcdkのコマンドが叩かれてる
”AWS CDKを選定しなかった理由”から見るCDKの現在地
- @_watanyさん
採用しなかった理由
- CloudFormationを使った
AWS CDK コンストラクトの分割戦略:レイヤーリスペクトパターンの実践
- @WinterYukkyさん
CDKコードの分割
- コンストラクトを分ける
- リソースごとに分ける
- backendやマイクロサービスごとに分ける
- 特定サービス用コンストラクト
- 再利用性は考えてない
- 具象性を求められる
- 設計指針がないと肥大化しやすい
- なのでこれを量産するのはイマイチ
- レベル指向プラクティス
App Staging Synthesizerに入門する
- @skrirdevさん
App Staging Synthesizer
- App Staging Synthesizer
- 既存のbootstrapの仕組みを置き換える
- bootstrapの体験をよくする
- デフォルトのsynthesizerはセキュリティへの準拠など課題がある
- それに変わって使うのがApp Staging Synthesizer
今こそ始める、CDKコンストラクトライブラリ開発 ― 入門から実践まで
- @tmokmssさん
コンストラクトライブラリ
- CDKコンストラクトライブラリ開発の始め方
- Projenを使って開発する
- npmのライブラリ
- Construct Hub
- コンストラクトライブラリが集まったサービス
- jsiiに準拠しないといけない
- 普段のTypeScriptの感覚でないところも
- 他の言語から使われることがあるため
- projen使ってるとsemverとconventional commitを採用することになる
- コミットメッセージのルールでバージョンの上がり方を制御できる
- CloudFormationカスタムリソース
- CREATE: リソース新規作成時に呼ばれる
- UPDATE: プロパティ変更があった時に呼ばれる
- DELETE: 削除化物理リソースIDが変更された時に呼ばれる
- integ-runner
大規模ドラレコデータ収集・機械学習基盤を支えるAWS CDK 〜導入・運用事例紹介〜
- @PEmugi2さん
CDKを組み込んだチーム開発
- ドラレコとセンサーから取得した情報と地図情報があってるか比較するシステム
- 2020/7からcdk導入
- 本番のスタック数は60
- QA環境を量産してる
- 機械学習で試行錯誤が必要
- Makefileでビルドデプロイを定義するようにしている
- cdkの難しいコマンドを隠蔽できる
AWS CDKにおける「再利用性」を考える
- @365_step_techさん
CDKの再利用性
- CDKでの再利用はConstructがキー
- スタックのpropsをConstructにそのまま渡さない
- スタックに依存してしまう
- 不要なプロパティ多くなりがち
- propsのプロパティはreadonlyに
- propsのバリデーションはtokenに注意する
- 後で解決される値の仮の値のこと
- なのでバリデーションできない
- number/stringは
Token.isUnresolvoed()
でチェック
- リソースプロパティはI始まりの型にする
- cdkではI始まりは読み込み専用リソースのためのもの
- Construct単位のユニットテスト
- 全部書くと多いので基本はスタックのテストでOK