Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
初心者CDKコントリビューターによる、初心者CDKコントリビューターのためのJSII入門
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Shota Kawasaki
February 12, 2026
30
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
初心者CDKコントリビューターによる、初心者CDKコントリビューターのためのJSII入門
Shota Kawasaki
February 12, 2026
More Decks by Shota Kawasaki
See All by Shota Kawasaki
CloudFormationから理解するCDKのAwsCustomResourceの使用法
kawaaaas
1
42
CDKとは?からコントリビュートまで〜半年間のCDK学習振り返りとこれから〜
kawaaaas
1
120
アーキテクト・CDK・OSSを一気に学ぶ!L3 Construct実装のススメ
kawaaaas
0
81
おばけのアイコン可愛い、で終わらせない!KiroのSpec駆動開発に再入門
kawaaaas
0
29
5分でわかって、明日からCDKを使いたくなる!個人的感動機能10選!
kawaaaas
1
350
なぜconsole.logはTokenになるのか?もうハマらないためにTokenをちゃんと理解する
kawaaaas
1
1.4k
初心者を卒業したい! CDKをちゃんと理解するためにAspectsを覗いてみる
kawaaaas
3
290
2026年はアウトプットに挑戦したい!
kawaaaas
0
21
3つのアーキテクチャで試す、IAM Policy Autopilot
kawaaaas
0
190
Featured
See All Featured
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.2k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
3.5k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.1k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
950
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.3k
Statistics for Hackers
jakevdp
799
230k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
170
YesSQL, Process and Tooling at Scale
rocio
174
15k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2k
First, design no harm
axbom
PRO
2
1.2k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Transcript
若手AWS なんでもLT 会 #2 2026/2/12 Shota Kawasaki 初心者CDK コントリビューターによる、 初心者CDK
コントリビューターのためのJSII 入門
出身: 千葉県 年次: 1 年目 好きなサービス: CDK, Kiro : @kawaaaas
最近CDK へのコントリビュートに 励んでいます Shota Kawasaki
皆さん、CDK 使用していますか?
AWS CDK とは AWS 公式が提供するIaC ツール プログラミング言語で リソースを定義 CloudFormation を生成
少ない記述量で ベストプラクティス に沿って構築
では、CDK を何の言語で書いていますか?
CDK はTypeScript 以外でも書ける CDK 本体はTS で書かれているが、様々な言語をサポートしている
CDK はTypeScript 以外でも書ける CDK 本体はTS で書かれているが、様々な言語をサポートしている ? 今回はここで使用されている JSII の話をします
JSII を理解するべき人 CDK 本体にコントリビュートしたい人 JSII の制約によるTS の避けたほうが良い書き方を知ることは重要です L3 コンストラクトを作りConstruct Hub
に公開したい人 Construct Hub に公開にするにはJSII によるクロス言語コンパイルが必須です CDK が好きな人 CDK の裏側が覗けるなんて、テンションが上がりますよね TS 以外の言語でCDK 開発する人 裏で何が起こっているかを知ることができます
JSII とは何か? AWS CDK で使用されている、TS で書いたライブラリを 他の言語でも使用できるようにするAWS 製のツール TypeScript Python
Greeter をPython でも使用 できるようになる https://aws.github.io/jsii/user-guides/lib-author/configuration/
JSII とは何か? package.json に設定を記載して実行する Python の例では、作成されたパッケージはPyPl に公開できる https://aws.github.io/jsii/user-guides/lib-author/configuration/ ここで各コンパイル先の言語の 設定を記述する
JSII のランタイムアーキテクチャ JSII は各言語向けにAPI サーフェスとプロキシコードを生成し、 実際のビジネスロジックはNode.js 子プロセス上で実行される ホスト言語側 Node.js プロセス
@jsii/kernel @jsii/runtime request API サーフェスと JSON リクエストに 変換するプロキシロジック 実際のJS 実行 response
JSII 利用時の把握しておくべき制約 JS/TS 以外で実行した時のパフォーマンスの低下 node ランタイムへの依存 CDK をTS 以外で開発する時 CDK
を作成する時(コントリビュート等) TypeScript の書き方の制約 TS でCDK 開発を行う(利用する) 際には制約は生じません
JS/TS 以外で実行した時のパフォーマンスの低下 ホスト言語側 Node.js プロセス @jsii/kernel @jsii/runtime request API サーフェスと
JSON リクエストに 変換するプロキシロジック 実際のJS 実行 response JS/TS 以外で実行する際は、ランタイムアーキテクチャの仕様上 避けられないオーバーヘッドが生じる 子プロセスと通信することよる パフォーマンスの低下 CDK をTS 以外で開発する時
node ランタイムへの依存 JS/TS 以外で実行する際でもCI/CD パイプラインや コンテナイメージにおいてNode.js の環境構築が必須となる ※ 参考:https://qiita.com/suzuki_sh/items/85dd85d107f453645ac9 CDK
をTS 以外で開発する時
CDK を作成する時(コントリビュート等) TypeScript の書き方の制約 コンパイル先の言語でサポートされていないTS の仕様は コントリビュート時は避ける必要がある C# の制約により、クラスのメンバーは、 クラス名と同じ名前にできない
https://aws.github.io/jsii/user-guides/lib-author/typescript-restrictions/
CDK を作成する時(コントリビュート等) Union 型は他言語だと緩い型に コンパイルされるため非推奨となる TypeScript の書き方の制約 コンパイル先の言語でサポートされていないTS の仕様は コントリビュート時は避ける必要がある
https://aws.github.io/jsii/user-guides/lib-author/typescript-restrictions/
CDK を作成する時(コントリビュート等) ジェネリクス型のような、サポートされてい る言語が限られる仕様は避ける必要がある TypeScript の書き方の制約 コンパイル先の言語でサポートされていないTS の仕様は コントリビュート時は避ける必要がある https://aws.github.io/jsii/user-guides/lib-author/typescript-restrictions/
一方で、ジェネリクス型でも同等の概念が 取り込まれている特定のケースは使用できる (非同期通信など)
JSII の仕組みと制約をすればなぜ?が解消する CDK のDESIGN_GUIDELINES.md に記載してある事項を 理解してコントリビュートすることができる デザインガイドラインにもUnion ではなくstatic ファクトリメソッドによる実装が提案されている
是非私と一緒にJSII を学んで、 CDK にコントリビュートしましょう!