Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
新常識! Javascript×AWS Lambdaがアツい!!
Search
watany
June 27, 2024
Technology
770
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
新常識! Javascript×AWS Lambdaがアツい!!
color is クラウドLT大会vol.9 で発表させていただいた内容になります。
https://saison-coloris.connpass.com/event/320707/
watany
June 27, 2024
More Decks by watany
See All by watany
OSS as a Hono User
watany
2
170
仕様駆動開発の消費期限
watany
20
10k
AIエージェントがあれば技術書なんてすぐ書けるでしょ→無理でした
watany
7
1.8k
穢れた技術選定について
watany
22
9k
Alphaモジュール使っていいのかい!?いけないのかい!?どっちなんだいっ!?
watany
1
470
The Tyranny of Not Measuring
watany
5
560
新しいVibe Codingと”自走”について
watany
7
630
Equip GitHub Copilot CLI
watany
3
1.6k
SkillsをS3 Filesに置く時のあれこれ
watany
4
2.6k
Other Decks in Technology
See All in Technology
今さら理解するウェブフォントver.2026
takanorip
3
680
AI駆動開発の時代になったのでトヨタ生産方式から見直す
terurou
7
5.8k
「Docker Desktop不要の時代」は 来たのか?
ueponx
0
540
FOSS4Gを活用した自治体業務DXの試み
470715
0
150
実践! SRE × AI - ABEMA における AIOps -
tetsuya28
7
2.9k
Getting Started with Google Antigravity
glaforge
0
200
大型犬好きによるPugの紹介
yamanoku
1
140
ブラウザとサーバーから考えるAI時代のフロントエンド監視
shogo4131
3
860
Essential architectural thinking (revised edition)
ufried
0
110
DevelopersIO 2026 知識の地図を描く ─ オントロジーとは何か?
ishikawa_satoru
1
1.5k
UniFi(ユニファイ)AIカメラの現場活用
ludicmind
1
420
OpenSharing について熱く語る〜AI アセットの共有について〜
kameitomohiro
0
260
Featured
See All Featured
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
850
HDC tutorial
michielstock
2
950
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.6k
The Invisible Side of Design
smashingmag
301
52k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Believing is Seeing
oripsolob
1
240
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
50
10k
A designer walks into a library…
pauljervisheath
211
25k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
2
2.2k
Music & Morning Musume
bryan
48
7.4k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.2k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
560
Transcript
color is クラウドLT大会vol.9 新常識!JavaScript × AWS Lambdaがアツい!! 2024-06-27
自己紹介 • 渡邉 洋平(watany) ◦ NTTテクノクロス株式会社 ◦ JAWS-UG東京 運営 ◦
AWS Ambassadors (associate) • 合同で勉強会できる企業を探しています ◦ Jr. Champion/TopEngineer育成とか ◦ 普通にTechの勉強会とか
今日の目標 • AWS Lambda のJavaScript(TypeScript, Node.js)のトレンドを紹介する ◦ 従来、拘りなくLambdaを書く場合にはPythonがファーストチョイスだった(個人 研究) ◦
バックエンド、インフラでもJavaScript採用で効率化できそうなアップデート群を 紹介 • お詫び ◦ JavaScriptと言いつつ、TypeScript前提で話す
JavaScript × AWS Lambdaの新常識
JavaScript × AWS Lambdaの新常識 1. TypeScript × AWS CDK 2.
LLRT 3. Lambda Web Adaptor 4. Response Streaming
1. TypeScript × AWS CDK • AWS CDKとは? ◦ Framework
for CloudFormation ◦ 概要は右のグラレコが必要十分 • TypeScriptとは? ◦ JavaScriptのSuperset ◦ 強力かつ柔軟な型システム をJavascriptに付与 引用:使い慣れたプログラミング言語でクラウド環境を構築 ! AWS CDK をグラレコで解説 https://aws.amazon.com/jp/builders-flash/202309/awsgeek-aws-cdk/
1. TypeScript × AWS CDK AWS CDKは多言語対応とあるが…? • Toolネイティブ対応は”TypeScript” ◦
Python、GoなどはJsiiが変換して対応(まれにバグを踏む) • 2022年度の利用率は”72%”がJS/TS ◦ 2024年現在の肌感覚でも同様 ◦ JAWS-UG CDK支部も https://matthewbonig.com/posts/community-survey-2022/
1. TypeScript × AWS CDK 「NodejsFunction」でBundle部分をCDKに任せて、TypeScript ファーストのLambda開 発体験
JavaScript × AWS Lambdaの新常識 1. TypeScript × AWS CDK 2.
LLRT 3. Lambda Web Adaptor 4. Response Streaming
2. LLRT LLRT (Low Latency Runtime) • Node.js互換、WinterJS互換を目指し、AWSが開発するJS Runtime ◦
QuickJS + Rust ◦ 注)2024/6時点でBeta版
Cold Start:Node.js(1500ms) https://github.com/awslabs/llrt/tree/main/benchmarks
Cold Start:LLRT ( > 100ms) https://github.com/awslabs/llrt/tree/main/benchmarks
2. LLRT > LLRT offers up to over 10x faster
startup and up to 2x overall lower cost compared to other JavaScript runtimes running on AWS Lambda • つまりJS/TSのコードのままで ◦ ColdStart性能の改善 ▪ Go on AWS Lambdaと同等 ◦ メモリ使用量の改善 ▪ ≒ Costの改善
JavaScript × AWS Lambdaの新常識 1. TypeScript × AWS CDK 2.
LLRT 3. Lambda Web Adaptor 4. Response Streaming
3. Lambda Web Adaptor LambdaのEvents ⇔ HTTP Request/Response • Express.jsやNext.jsのWebフレームワークがAWS
Lambdaでそのまま動 く! https://aws.amazon.com/jp/blogs/compute/using-response-streaming-with-aws-lambda-web-adapter-to-optimize-performance/
3. Lambda Web Adaptor 安全かつ高速なLambda Extensions • Rust製で性能影響も軽微 ◦ 平均レイテンシーは
+0.8 ms 程度 ◦ p99 でも +4 ms 程度 • Docker on Lambdaなら1行足すだけ ◦ Managed Runtimeだと少し面倒
Extensionsのアーキテクチャ https://aws.amazon.com/jp/builders-flash/202301/lambda-web-adapter/ 3. Lambda Web Adaptor
JavaScript × AWS Lambdaの新常識 1. TypeScript × AWS CDK 2.
LLRT 3. Lambda Web Adaptor 4. Response Streaming
4. Response Streaming • 2024年時点で、世はLLM時代 ◦ つまり「ヌルヌル返却するやつ」時代ということ(?) • Lambda Response
Streaming ◦ FunctionsURLから、ペイロードをStreamingで返せる ◦ 最大20MB返せる(通常6MB)
4. Response Streaming 制約:動作条件 1.マネージドランタイム ◦ Node.js v16以降”のみ” 2.カスタムランタイムに実装 ◦
実装済はRust Runtime for AWS Lambdaのみ? 3.+ Lambda Extensions ◦ 後述のLambda Web Adaptorを使うと間接的に2.相当
4. Response Streaming Node.js Runtimeには、組み込みの独自関数が用意 https://aws.amazon.com/jp/blogs/news/introducing-aws-lambda-response-streaming/
4. Response Streaming Appendix. 組み込み関数は少し癖がある • 実装前に、↓のスライドを読むのがおススメ https://speakerdeck.com/watany/aws-lambda-response-streaming-shi-zhuang-qian-nisiritaiyatu
まとめ
まとめ • JS/TS × LambdaとCDKとで、技術スタックを統一しやすい • StreamingもNode.jsランタイムなら始めやすい • Lambda Web
AdaptorでJSの強力なWeb Flameworkを採用できる • LLRTが実用化されれば更なる最適化へ…! だから JavaScript × AWS Lambdaがアツい!!