Upgrade to Pro — share decks privately, control downloads, hide ads and more …

”AWS CDKを選定しなかった理由”から見るCDKの現在地

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.
Avatar for watany watany
July 06, 2024

”AWS CDKを選定しなかった理由”から見るCDKの現在地

AWS CDK Conference Japan 2024でお話しした内容です
https://jawsug-cdk.connpass.com/event/317921/

Avatar for watany

watany

July 06, 2024

More Decks by watany

Other Decks in Technology

Transcript

  1. Me Watanabe Yohei(watany) • NTT TechnoCross Corporation • AWS ◦

    AWS Assosiate Ambassador 2024 ◦ Japan AWS Top Engineer 2023 ◦ JAWS-UG Tokyo https://jawsug.connpass.com/event/316451/ 2
  2. 技術選定の前提 メンバ:AWS経験あり、CDK経験なし、IaC経験少し 業務形態:受託業務・リリース日あり スコープ: アーキテクチャ: • ”私だけがAWS CDKを使える”状態のスタート ◦ ポジティブに捉えると

    ▪ このままチーム全員がCDK Userに! Happy! ◦ ネガティブに捉えると ▪ チームでキャッチアップできない場合、IaC関連の作業が私一人 へ?私の本来実施する作業はだれが? →リスク要因 11
  3. 技術選定の前提 メンバ:AWS経験あり、CDK経験なし、IaC経験少し 業務形態:受託業務・リリース日あり スコープ:インフラチームとして AWS環境の要件検討、設計、構築、試験 アーキテクチャ:非公開 ※Core:CloudFront + GPU +

    EC2(3rd Party Software) ・必須ソフトウェアがあり、サーバレスアーキテクチャへの変更は厳しい ・AWS上での動作実績はなく、CloudFrontやEC2/VPC、その他マネージドサービスとの相性は 「走りながら確認」する必要があった ・他にも複数の確認項目があり、初期見積もり時点で不確定要素はあった 15
  4. 注意点 • 業務形態がSIer/SESだとCDK採用が難しい? ◦ あくまで一事例であり、一般化までは早い ◦ 弊社でもCDKの採用事例はあり • 今回はCDKを「選ばなかったから」成功した? ◦

    CDKで失敗しなかった可能性も、もっと成功した可能性もある • この話はベストプラクティスではない ◦ 今日のテーマは「どうして選ばない判断をしたのか」 19
  5. CDK採用によって得られる”力”と”責任” 1. Construct ・抽象度が高いConstruct(L2、L3 ) ・低レベルで書き込めるConstruct(L1) 2. プログラミング言語のサポート ・L2、L3 ConstructのプロパティにIDEでの補完が利く

    ・ex. cdk.RemovalPolicy.DESTROY ・その他、型・配列操作・Classなどのプログラミング言語機能の採用 • これは全員に必要なのだろうか? • コードを書く人とIaCテンプレートを書く人が同じならば、プログラミング言語が同 じだと嬉しい。 • JSON, YAMLがスコープの人にとっては、扱う言語が増えるだけ? 29
  6. Constructは難しい • L2,L3 Constructの抽象度は「AWSを知っている人」向けに感じ る ◦ 前提として公式ドキュメントの「AWS API」, 「CDK L1

    Construct(CFn)」, 「CDK L2Construct」のライフサイクル、差 分を理解できる人 • 引継ぎ先・新規参画メンバにどのレベルになって欲しいか、言語 化できますか? 40
  7. コーディング規約は難しい • 言語に依存するFormat/Lintは各言語のものを用いればよい ◦ Prettier & ESLint, Biome, other… •

    CDKに対する静的解析は専用のツールを用いればよい ◦ cdk-nag, Snyk, Checkov… • 課題になるのは「CDK固有のスタイルガイド」 42
  8. CDKのためのスタイルガイド 参考になるもの • 公式のベストプラクティス ◦ https://docs.aws.amazon.com/cdk/v2/guide/best-practices.html • サンプル実装 ◦ Baseline

    Environment on AWS(BLEA) ◦ Generative AI Use Cases JP (GenU) • コンプライアンス・ガバナンス ◦ CDK Aspect ◦ CloudFormation Guard 44
  9. CDKの運用は難しい • ツールのアップデート問題 ◦ CDKのMinor Versionは毎週更新される • 更新スタンスの例。引継ぎ先にはどうしてもらう? ◦ 定期的に追従する

    ◦ リリースのタイミングで可能な限り追従する ◦ リリース頻度が低くてもツールは頑張って更新 ◦ 影響あるまでバージョンロック 47
  10. 3.CDKの現在地 • CDKを採用しやすいチーム ◦ アプリケーションエンジニア、類するメンバ ◦ AWS支持者・有識者 ◦ コードを継続的メンテナンスできる体制・チーム •

    上記に合わない場合…? ◦ モチベーションや学習で出来る点はあると思う ◦ 学習・運用コストは低くないので、チームでの他の課題も 含めて採用を検討 56