Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Shun Fukazawa
PPTX, PDF
70,377 views
aws lambdaでpythonを実行するときのチューニング案を試してみた!
aws lambdaでpythonを実行するときのチューニング案を試してみた!
Technology
◦
Read more
2
Save
Share
Embed
Embed presentation
Download
Download to read offline
1
/ 41
2
/ 41
3
/ 41
4
/ 41
5
/ 41
6
/ 41
7
/ 41
8
/ 41
9
/ 41
10
/ 41
11
/ 41
12
/ 41
13
/ 41
14
/ 41
15
/ 41
16
/ 41
17
/ 41
18
/ 41
19
/ 41
20
/ 41
21
/ 41
22
/ 41
23
/ 41
24
/ 41
25
/ 41
26
/ 41
27
/ 41
28
/ 41
29
/ 41
30
/ 41
31
/ 41
32
/ 41
33
/ 41
34
/ 41
35
/ 41
36
/ 41
37
/ 41
38
/ 41
39
/ 41
40
/ 41
41
/ 41
More Related Content
PDF
"はじめてのKong Konnect" APIゲートウェイと Service Meshについて学ぼう!
by
Junji Nishihara
PDF
Docstringを書こう!
by
cocodrips
PDF
クラウドを最大限活用するinfrastructure as codeを考えよう
by
NTT Communications Technology Development
PPTX
Redshift Spectrumを使ってみた話
by
Yoshiki Kouno
PDF
AWSでDockerを扱うためのベストプラクティス
by
Amazon Web Services Japan
PDF
日本語対応したAmazonLexではじめてのLINEボットをつくってハンズオン手順を公開した話
by
Kahori Takeda
PDF
Spring Bootハンズオン ~Spring Bootで作る マイクロサービスアーキテクチャ! #jjug_ccc #ccc_r53
by
Toshiaki Maki
PDF
[AWS初心者向けWebinar] AWSへのアプリケーション移行の考え方と実践
by
Amazon Web Services Japan
"はじめてのKong Konnect" APIゲートウェイと Service Meshについて学ぼう!
by
Junji Nishihara
Docstringを書こう!
by
cocodrips
クラウドを最大限活用するinfrastructure as codeを考えよう
by
NTT Communications Technology Development
Redshift Spectrumを使ってみた話
by
Yoshiki Kouno
AWSでDockerを扱うためのベストプラクティス
by
Amazon Web Services Japan
日本語対応したAmazonLexではじめてのLINEボットをつくってハンズオン手順を公開した話
by
Kahori Takeda
Spring Bootハンズオン ~Spring Bootで作る マイクロサービスアーキテクチャ! #jjug_ccc #ccc_r53
by
Toshiaki Maki
[AWS初心者向けWebinar] AWSへのアプリケーション移行の考え方と実践
by
Amazon Web Services Japan
What's hot
PDF
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
by
Yahoo!デベロッパーネットワーク
PDF
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
by
NTT DATA Technology & Innovation
PDF
今さら聞けないバックアップの基礎
by
富士通クラウドテクノロジーズ株式会社
PDF
Serverless時代のJavaについて
by
Amazon Web Services Japan
ODP
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
by
pospome
PDF
20190206 AWS Black Belt Online Seminar Amazon SageMaker Basic Session
by
Amazon Web Services Japan
PDF
ADFS クレームルール言語 Deep Dive
by
Suguru Kunii
PDF
Hyper-V Replica
by
Naoki Abe
PPTX
データ収集の基本と「JapanTaxi」アプリにおける実践例
by
Tetsutaro Watanabe
PDF
Hadoopの概念と基本的知識
by
Ken SASAKI
PDF
AWS Black Belt Online Seminar 2016 クラウドのためのアーキテクチャ設計 -ベストプラクティス-
by
Amazon Web Services Japan
PDF
JDMC LT#1 - なぜモノタロウでデータマネジメントが必要になったのか
by
株式会社MonotaRO Tech Team
PPTX
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
by
NTT DATA Technology & Innovation
PPTX
MLOps入門
by
Hiro Mura
PDF
正しいものを正しく作る塾-設計コース
by
増田 亨
PDF
まだ定型メールの処理 手動でしてるの? Power Platform で自動化してハッピーになろう!
by
Teruchika Yamada
PDF
AWS Glueを使った Serverless ETL の実装パターン
by
seiichi arai
PDF
Amazon Glacierのご紹介(機能編)
by
Amazon Web Services Japan
PPTX
Azure DevOps ハンズオン Vo.1 ~Azure Boards を用いたアジャイル計画とポートフォリオマネジメント~
by
Takunori Minamisawa
PDF
AWS Lambdaを紐解く
by
Keisuke Nishitani
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
by
Yahoo!デベロッパーネットワーク
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
by
NTT DATA Technology & Innovation
今さら聞けないバックアップの基礎
by
富士通クラウドテクノロジーズ株式会社
Serverless時代のJavaについて
by
Amazon Web Services Japan
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
by
pospome
20190206 AWS Black Belt Online Seminar Amazon SageMaker Basic Session
by
Amazon Web Services Japan
ADFS クレームルール言語 Deep Dive
by
Suguru Kunii
Hyper-V Replica
by
Naoki Abe
データ収集の基本と「JapanTaxi」アプリにおける実践例
by
Tetsutaro Watanabe
Hadoopの概念と基本的知識
by
Ken SASAKI
AWS Black Belt Online Seminar 2016 クラウドのためのアーキテクチャ設計 -ベストプラクティス-
by
Amazon Web Services Japan
JDMC LT#1 - なぜモノタロウでデータマネジメントが必要になったのか
by
株式会社MonotaRO Tech Team
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
by
NTT DATA Technology & Innovation
MLOps入門
by
Hiro Mura
正しいものを正しく作る塾-設計コース
by
増田 亨
まだ定型メールの処理 手動でしてるの? Power Platform で自動化してハッピーになろう!
by
Teruchika Yamada
AWS Glueを使った Serverless ETL の実装パターン
by
seiichi arai
Amazon Glacierのご紹介(機能編)
by
Amazon Web Services Japan
Azure DevOps ハンズオン Vo.1 ~Azure Boards を用いたアジャイル計画とポートフォリオマネジメント~
by
Takunori Minamisawa
AWS Lambdaを紐解く
by
Keisuke Nishitani
Recently uploaded
PDF
自転車ユーザ参加型路面画像センシングによる点字ブロック検出における性能向上方法の模索 (20260123 SeMI研)
by
Yuto Matsuda
PDF
maisugimoto_曖昧さを含む仕様書の改善を目的としたアノテーション支援ツールの検討_HCI2025.pdf
by
Matsushita Laboratory
PDF
TomokaEdakawa_職種と講義の関係推定に基づく履修支援システムの基礎検討_HCI2026
by
Matsushita Laboratory
PDF
Team Topology Adaptive Organizational Design for Rapid Delivery of Valuable S...
by
akipii ogaoga
PDF
20260119_VIoTLT_vol22_kitazaki_v1___.pdf
by
Ayachika Kitazaki
PDF
ST2024_PM1_2_Case_study_of_local_newspaper_company.pdf
by
akipii ogaoga
自転車ユーザ参加型路面画像センシングによる点字ブロック検出における性能向上方法の模索 (20260123 SeMI研)
by
Yuto Matsuda
maisugimoto_曖昧さを含む仕様書の改善を目的としたアノテーション支援ツールの検討_HCI2025.pdf
by
Matsushita Laboratory
TomokaEdakawa_職種と講義の関係推定に基づく履修支援システムの基礎検討_HCI2026
by
Matsushita Laboratory
Team Topology Adaptive Organizational Design for Rapid Delivery of Valuable S...
by
akipii ogaoga
20260119_VIoTLT_vol22_kitazaki_v1___.pdf
by
Ayachika Kitazaki
ST2024_PM1_2_Case_study_of_local_newspaper_company.pdf
by
akipii ogaoga
aws lambdaでpythonを実行するときのチューニング案を試してみた!
2.
AWS Lambdaで pythonを実行するときのチュー ニング案を試してみた! 2020/07/03 深澤 俊
3.
3自己紹介 深澤 俊(Fukazawa Shun) クラスメソッド株式会社 SA(ソリューションアーキテクト) AWSの導入支援や ブログでのアウトプットに励んでいる。
@shun_quartet
4.
4アジェンダ • AWS Lambdaについて •
実行コンテキストを活用した初期化処理の再利 用 • boto3の軽量化 • スケールアップ
5.
5AWS Lambdaについて まずは簡単におさらい
6.
6AWS Lambda について •
AWS Lambda • ジャンルとしてはFaaS • サーバを意識せずコードを実行 • デプロイはZipをアップロード • バッチ処理からサーバレスバックエンドまで 幅広く活用 https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/welcome.html
7.
7 簡単にPythonが実行できる!
8.
8 ここから本題
9.
9実行コンテキストを活用した初期化処理の再利用 実行コンテキスト?
10.
10実行コンテキストを活用した初期化処理の再利用 • まずはLambdaのライフサイクルを整理 lambda実行 一定時間経過 停止 実行命令 デプロイパッケージのダウンロード 解凍 lambdaの起動 lambda実行
11.
11実行コンテキストを活用した初期化処理の再利用 • まずはLambdaのライフサイクルを整理 コールドスタート lambda実行 一定時間経過 停止 実行命令 デプロイパッケージのダウンロード 解凍 lambdaの起動 lambda実行
12.
12実行コンテキストを活用した初期化処理の再利用 • まずはLambdaのライフサイクルを整理 コールドスタート によって作られるのが 実行コンテキスト lambda実行 一定時間経過 停止 実行命令 デプロイパッケージのダウンロード 解凍 lambdaの起動 lambda実行
13.
13実行コンテキストを活用した初期化処理の再利用
14.
14実行コンテキストを活用した初期化処理の再利用 Lambdaから 都度実行
15.
15実行コンテキストを活用した初期化処理の再利用 コールドスタート の一回のみ実行 Lambdaから 都度実行
16.
16実行コンテキストを活用した初期化処理の再利用 インスタンス化をハンドラー外へ
17.
17実行コンテキストを活用した初期化処理の再利用 コールドスタート の一回のみ実行 Lambdaから 都度実行
18.
18実行コンテキストを活用した初期化処理の再利用 ロードにかかる2秒を 最初だけにすることができる
19.
19実行コンテキストを活用した初期化処理の再利用 • 活用案について • ロードに時間のかかるクラスのインスタンス化 •
使い回し可能なクラスのインスタンス化 • 例:DBへの接続キャッシュ(コネクションプール?) • RDS ProxyなるものがGAされました • https://dev.classmethod.jp/articles/rds-proxy-ga/
20.
20boto3の軽量化 boto3?
21.
21boto3の軽量化 • boto3について • Python版AWS
SDK • PythonのコードからAWSのAPIを叩く • https://aws.amazon.com/jp/sdk-for-python/
22.
22boto3の軽量化 • Lambdaからはimportするだけで利用可能 • 最新のAWSリソースを使いたい場合には最新版の boto3をダウンロードし自力でデプロイパッケージ に含める •
https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/python-package.html
23.
23 しかしboto3はサイズが大きく デプロイパッケージに含めると コールドスタートが重たくなる
24.
24boto3の軽量化 • boto3やbotocoreの構造 boto3 ├── __init__.py ├──
data │ ├── cloudformation 〜〜〜 │ ├── cloudwatch 〜〜〜 │ ├── dynamodb 〜〜〜 │ ├── ec2 〜〜〜 Dataディレクトリ配下に各AWSサービスの 定義が格納されている • リクエストエンドポイント • パラメータなど
25.
25 消してデプロイしてみた
26.
26boto3の軽量化 • Lambdaコード
27.
27boto3の軽量化 • 結果 ケース 起動にかかった時間(ms) デプロイパッケージに何も含 めない(初期) 1547.16 軽量化しないboto3を パッケージin 4000.09 軽量化したboto3を パッケージin 3806.98 •
軽量化した方が起動スピードは上がった • Lambdaに同梱されているboto3を使うのがコールドス タートの観点だとベスト
28.
28スケールアップ スケールアップ?
29.
29スケールアップ • Lambdaで設定可能なリソースについて • メモリのみ •
メモリの大きさによって割り当てられるCPUの性能 がアップ
30.
30 実験
31.
31スケールアップ • 次のようなCPUバウンドな処理
32.
32スケールアップ 1792MB辺りから頭打ち 1792MB
33.
33スケールアップ Lambdaでは1792MBが 1つのフルvCPUに相当する
34.
34 マルチプロセスは?
35.
35スケールアップ • 確かに以下のように改善可能
36.
36 Lambdaでは権限上の 問題でマルチプロセスが行えない
37.
37スケールアップ • CPUバウンドになりそうな処理 • Lambdaを分割、複数関数で行う •
別サービス(EC2等)を検討 • Sleep処理が入るようなCPUバウンドであれば割り当 てられたメモリ値に応じて処理スピードが加速する 可能性も考えられる
38.
38まとめ • 実行コンテキストを活用した初期化処理の再利用 • ハンドラー関数外に初期化処理を置くことで実行 時間の短縮ができる •
boto3の軽量化 • boto3をパッケージに同梱した場合は、不要なデー タを消すことで軽量化可能
39.
39まとめ • スケールアップ • 割り当てられたメモリに応じてCPU性能も上がるが CPUバウンドな処理は1vCPUの限界から頭打ちにな る可能性がある
40.
40告知 クラスメソッドでは Developers.IO 2020 〜Connect〜 を開催中!! https://classmethod.jp/m/devio_2020_connect/
Download