【セッションレポート】 AWS CDKの歴史と未来について語る会〜日本発のグローバルコントリビューション〜

## はじめに

こんにちは！アキキー([@akikii__](https://x.com/akikii__))と申します！
初めてJAWS DAYSに参加しましたので、理解を深めるためにもセッションレポートを書いてみたいと思います！

参加したセッションは「AWS CDKの歴史と未来について語る会〜日本発のグローバルコントリビューション〜」です

https://jawsdays2025.jaws-ug.jp/sessions/D-1

普段の業務でもAWS CDKを使っているため、本イベントの中でも一番楽しみにしていたセッションでした！！

## セッション
### オープニングトーク

* CDK使っている人！→たくさんいた
* CDKにコントリビュートした人！→数人いた！

#### パネラー紹介

* 佐藤智樹さん：クラスメソッド株式会社
* ゆっきーさん：AWSジャパン合同株式会社
* gotoさん：株式会社メイツ AWS DevTools Helo
* クライヤー篠塚一帆さん：旭化成株式会社

### CDKの進化の歴史

* 2018年ごろからBetaリリースされている→もう5年くらい立っている
    * gotoさん: 2021年くらいから使い始めた
    * クライヤーさん: 同時期
    * ゆっきーさん: GA前！
* Go言語サポート、Open Constructs、ConstructとCLIが分離...などたくさんのイベントが！
* CDK支部を立ち上げた心境は？
    * ゆっきーさんCDKを触っていて、CDKを盛り上げたかった！
        * JAWS見たことなかった、、、自分が喋れる場を作りたかった！
        * 佐藤さんも同じことを考えていた
    * gotoさん
        * AWS Heroに慣れた心境
        * CDKのおかげ、CDKがなければHeroになれなかった
* コントリビュートについて
    * CDKに日本人のContributerが22人いる！！
    * GitHubへのコントリビュート数は世界No.4！！
* USはCDKチームの人が含まれている
* 日本ではCDKを仕事で作っている人がいないのに4位はすごい
* クライヤーさん、日本が4位なの気に入ってない
* 日本は30%くらいの機能コントリビュートしている！！

### テーマトーク

####  コントリビュートを始めたきっかけ・続けるモチベーション
* ゆっきーさん
    * コントリビュートした人すごい印象あるのでは？
    * やってるうちに普通になっている
    * はじめたきっかけ
        * L2コンストラクトライブラリを作っていた
        * 自分達で扱っていたが、多様な人に使ってほしいの思いでコントリビュートした
        * CDK使っていてメリット感じていたので貢献したかった
        * 出したら世界中から誉められるんじゃないか！！と思った
* gotoさん
    * 個人OSSを出していた
    * 大規模OSSにコミットしてみたかった
    * 業務のCDK, OSSとしてのCDKは形式が同じなのでやりやすかった
    * コントリビューターバッチがある→何個コントリビュートしたら丸々コントリビュータのバッチがつく
* クライヤーさん
    * 育休がきっかけ！？
    * 奥さんと交代で2交代で育児していた
    * 暇な時間にCDKコントリビュートしてみた（！？）
    * 自分が出した機能がブログとかで紹介されていると嬉しい

#### どんなとき、何時くらいにコントリビュートやってるの？

* ゆっきーさん
    * 前職のときにやっていた
    * 仕事以外はできなかった
    * 家帰ってきてから寝るまでやっていた
    * キーボードが乗ってくると朝日を見ることがあった
    * 好きでやっていた。趣味
* gotoさん
    * 毎日やるとかのハードルを設けていない
    * 気が向いたときにやる
    * この機能は自分が実装する！！って思ったら自分でやる
    * 会社で自由時間があるので、その時間にもやっている
* ゆっきーさん
    * ミニマムL2を自分で作るスタイルにて開発していた
    * そのままコントリビュートしている
* クライヤーさん
    * 子供が寝た後にやっている
    * 義務感は持たずに気が向いたときにやっている

#### 大規模なコードベースを理解する方法
* クライヤーさん
    * 大規模に見えるが、実はワンパターンかも？
    * CLIが抜けてコンストラクタで構成されている
    * 基本構成は同じなので、都度調べるだけでわかりやすい
* ゆっきーさん
    * CDKにコントリビュートするのにLLM使ってないんだな
    * 直近で理解するにはLLMに聞くのも手
    * 全部を見るのではなく、必要な部分だけみるだけでもわかりやすい（分離している）
    * これはCDKに関わらず、どんな大規模リポジトリでも一緒かも
* コントリビュートで印象に残った思い出
* ゆっきーさん
    * CDKで一番面白かったのは、
    * 用意されていないL2、アクションを起こす（DynamoDBにItemをPutするとか）
    * これをAWSがマネジメントで提供されているものがある
    * Node.js 18以降、Lambdaの中のSDKがV2→V3に変わった
    * この変更をゆっきーさんが行った！
    * V2→V3に移行する手順があり、それを参考にした
    * 影響範囲が大きかったので、全部の範囲を修正するのが大変だった
* gotoさん
    * プロバイダー
    * レビュワーが誰もみてくれなくて半年くらい見てくれなかった
    * コンフリクト置きまくっていたが、修正した
    * がんばって治した！
    * 去年のre:Inventで自分の作った機能が紹介されて嬉しい！
* クライヤーさん
    * RDS Limitless DB周りのコントリビュートした時の話
    * タイポ入れたままリリースしてしまった
    * 後方互換性をまもるので、タイポしたオプションと修正されたオプションがどっちも使える状況に

#### 開発環境どう用意しているのか
* gotoさん
    * ローカル環境にVSCodeで直接ビルドしている
* クライヤーさん
    * 同様
    * コントリビュートするときにフルビルドする必要がある
    * しかしめちゃくちゃ時間かかる（最初だけ30分くらい・ただ今は早い？）
* ゆっきーさん
    * 変な環境で開発している
    * Dockerfile、DevContainer、DevEnvを使っている
    * MacのDockerでの書き込みが遅すぎる
    * 出先で開発したい（家ではWindows）
    * リモート開発したいので、EC2にSessionManagerで接続して開発している
    * 環境を変えたいと思っている
    * AI系のツールを使うときに問題がでてきた
    * コマンド実行させようとすると工夫しないといけない
    * インスタンスはGraviton系使っていた
    * CDKビルドするときのインテグレーションテストではIntel系前提だったので、C系のインスタンスに変えた
    * サイズは都度調整している...2xlargeくらいあればいけるかも
* GitPotでも開発できるが、ビルドが遅い

#### CDK及び周辺のエコシステムの未来像
* OpenConstructsとは？
    * コミュニティ駆動のL2, L3コンストラクトをいっぱい作る
    * きっかけは、CDKチームが大変なので一旦コミュニティが作ることになった
    * gotoさん、ゆっきーさんがメンテナーをやっている
    * コントリビュータの半分は日本人！（7人/15人）
    * gotoさんがほぼ全てのプルリクを見ている（！）
    * ほぼ日本発のOSS
    * CDKの本体に入っていないL2が使える
    * スピード求める方は是非！
    * ニッチな機能も多い
    * 本家よりレビューが丁寧（gotoさん）
* CDKコントリビュートに興味あるけど敷居高く感じる時は、gotoさんに連絡・プルリクエストを送ってみるとよさそう
* クライヤーさんもgotoさんにDM送りまくっている

## 特報

* CDK Canference Japan 2025 7/12(土)開催決定！！

## まとめ

みなさんがCDKコントリビュートについてのハードルを取っ払ってくれるようにお話しをされていたので、自分もコントリビュートしたい気持ちになるセッションでした！
実際にどのようにコントリビュートしているかが、かなり明確に語られていたので家に帰ったら早速CDKのリポジトリを見てみたいと思います！！