874 Views
April 01, 25
スライド概要
2025.04.01 JAWS-UG CDK支部 #20 マネコン支部!? VS CDK支部
https://jawsug-cdk.connpass.com/event/348953/
Engineer / AWS Community Builder / LINE API Expert / JAWS UG名古屋 運営 GIthub: http://github.com/Miura55 Blog: http://supernove.hatenadiary.jp
CDKのテストを始めて導入してみた KMiura(@k_miura_io)
自己紹介 • 三浦 耕生(こうき) • Acallのバックエンドエンジニア • 今日で社会人5年目 • JAWS UG名古屋&神戸 運営 • 好きなAWSのサービス:AWS IoT, Lambda, ECS @k_miura_io koki.miura05
以前CDK支部で話したこと https://bit.ly/40NYi7P
初心者詐欺 じゃないか?
初心者詐欺 じゃないか? CDKのテストは書いたことない
テストを書いたこと無い CDKのプロジェクト 立てるとテストコード も作られるけど使い 所がわからなかった 裏側で実際にデプロ イまで確認してテス トをしてそう コケずにデプロイで きればそれでいい じゃないか
新規でインフラ構築する時 せっかくならテストも入れ ておきたい テストはあったほうが良いけ ど今のところそこまで優先度 ないよねー 今までCDK使ってたけど ちゃんとベストプラクティス に則りたい
ちょうどいい教材① • AWS Heroの後藤さんが寄稿されたテストをまとめた内容 • チームでテストについて検討するときの参考資料にしてた https://go.aws/3RhyeiN
ちょうどいい教材② • IaCのオペレーションまわりの勘所をディスカッションを通じて考えることができるいい機会 • テストについての実際のところをプロから聞けて良かった https://bit.ly/3QSlQ8C
環境ごとにパラメータを変える • 環境毎に変えたいパラメータをTypeScriptモ ジュールとして切り出している • スタック定義する時にContextで指定した環 境用のモジュールを呼び出すイメージ • 環境が増えたときに既存の環境のモジュール からコピペして編集できるようにするイメージ
触ってもらうと… 設定したパラメータ が適用されないんだ けど…
デプロイすればいいと思ってた末路 • デプロイができたとして想定どおりのパラメータがリソースに適用できてないと意味 がない(当たり前) • モジュールのインポートがバグっているっぽい • 修正する度デプロイ待たされるのは面倒 テストの出番だ!!
実際にアサーションテストを書いてみた • Contextを擬似的に設定した時に生成される Cloudformationのテンプレートの中から検証し たいパラメータを確認できるイメージ • Cloudformationを理解してたらテストのパラ メータの検証がわかりやすい • ある特定のサービスで共通に設定しているな どもまとめて検証できる
テストを導入して… バグ修正が捗るし、ついでに CIの導入も楽になるぞ…!
まとめ • CDKのテストを導入してみたら意外と簡単に導入できた • リファクタリングやパラメータを環境ごとに変更するなどモダンなプログラミング言 語ならではの実装をする時こそアサーションテストが肝になっていく • スナップショットテストは意図しない変更を検出する時に使える時には便利だけど 常にテストを走らせたいときは微妙?
END