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
Lambdaのこと
Search
Sho
March 20, 2024
100
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Lambdaのこと
Sho
March 20, 2024
More Decks by Sho
See All by Sho
Java ランタイムからカスタムランタイムに行き着くまで
ririru0325
1
520
チームでリファクタリングを進めるために
ririru0325
0
130
AWS歴6年のSaaS企業が直面する低凝集マイクロサービスの課題とその解決アプローチ
ririru0325
0
37
エムオーテックスの現場_-_SaaSプロダクトのアーキテクチャ変革と技術負債解消の道のり
ririru0325
0
72
できたこと・やっていきたいこと
ririru0325
0
60
jq を駆使して aws cli の運用を最適化
ririru0325
1
190
サーバーレス SaaS における運用監視の負荷軽減のためのアプローチ
ririru0325
0
430
サーバーレスアプリケーションの観測を適正化し、運用負荷を減らしていってる話
ririru0325
0
77
Featured
See All Featured
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
270
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.5k
Docker and Python
trallard
47
3.9k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.2k
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.7k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
160
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
140
Accessibility Awareness
sabderemane
1
140
The SEO identity crisis: Don't let AI make you average
varn
0
490
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
270
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.5k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Transcript
Lambdaのコールドスタートのこと
目次 ・自己紹介 ・課題 ・色々調べてみた ・色々やってみた ・まとめ
自己紹介 • 名前: 桑名 翔(クワナ ショウ) • 年齢: 27歳 • 会社: エムオーテックス株式会社
• 趣味: スノーボード、ゲーム
課題 • Lambdaのコールドスタートを何とかしたい ◦ 自分が参画しているプロジェクトではAWS Lambdaがよく使われている ◦ 言語はScalaなので、Java ランタイムで動かしている ◦
Java ランタイムのLambdaは初回起動にとても時間がかかる
色々調べてみた • Javaのこと ◦ JITコンパイラについて ◦ 階層型コンパイルについて ◦ C1とC2とインタプリタについて •
Lambdaのこと ◦ 環境変数にオプションを入れられること ◦ SnapStartのこと ◦ ProvisionedConcurrencyのこと
色々やってみた • DynamoDbからgetItemしてprintするだけのコードをJarにしてデプロイ 1. とりあえずデフォルト実行で動作の時間チェック 2. 階層型コンパイル有効化 ◦ 環境変数に以下をセット ”JAVA_TOOL_OPTIONS”:
”-XX:+TieredCompilation -XX:TieredStopAtLevel=1” 3. ProvisionedConcurrencyを有効化 ◦ Lambdaの設定にある (https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/provisioned-concurrency.html) 4. SnapStartを有効化 ◦ Lambdaの設定にある (https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/snapstart.html)
色々やってみた結果 1. とりあえずデフォルト実行で動作の時間チェック 2. 階層型コンパイルを有効化 3. ProvisionedConcurrencyを有効化 4. SnapStartを有効化 ◦
4a: ダミー実行なし ◦ 4b: ダミー実行あり init duration sum 1. 3955 193 4148 2. 2260 142 2402 3. --- 590 590 4a. 784 15649 16433 4b. 1099 1880 2979 2 + 4b 877 987 1864
最後に 去年でたSnapStartやオプションをうまく活用すれば、簡単な処理であればJavaランタイム のLambdaでも、初回スタートを割と早くできた。 GraalVMのネイティブイメージを使ったカスタムランタイムでの実装は、中々制約が多く、 設定が難しいので、まだ実用レベルまで持っていけてないので、今後調査研究して使え るところでは使っていきたい。