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
Web APIのAWS Lambda移行で工夫したこと
Search
iwamot
May 21, 2024
Technology
4
3.1k
Web APIのAWS Lambda移行で工夫したこと
2024-05-22
アーキテクチャを突き詰める Online Conference
https://findy.connpass.com/event/314782/
iwamot
May 21, 2024
Tweet
Share
More Decks by iwamot
See All by iwamot
Amazon CloudWatchでSLOを監視してみた CODT 2024 クロージングイベント版
iwamot
0
52
Cost-Effective SLO Error Budget Monitoring with Athena and CloudWatch
iwamot
0
540
Amazon CloudWatchでSLOを監視してみた
iwamot
0
25
AWS Protonの概要
iwamot
0
88
ENECHANGEが実現した管理者の工数負担を削減しながらもAWSセキュリティを強化した方法とは
iwamot
0
130
ECS on FargateへのSeekable OCI導入レポート
iwamot
0
480
サービスクォータ、ちゃんと監視してますか?
iwamot
0
1.1k
AWS Well-Architected Toolで信頼性をレビューした結果
iwamot
0
490
テックカンパニーとしてのENECHANGEの中期目標
iwamot
0
97
Other Decks in Technology
See All in Technology
X-Correlation Injections (or How to break server-side contexts)
fransrosen
0
360
リクルートのデータマネジメント組織に 求められてきたコト
recruitengineers
PRO
4
340
[RSJ24] Task Success Prediction for Open-Vocabulary Manipulation Based on Multi-Level Aligned Representations
keio_smilab
PRO
0
220
New Relicで実践する外形監視
aeonpeople
1
120
手軽に始める? おうちサーバーのすゝめ
nyagasan
0
180
Dojo 20240830 COBOL to Java on Z
ichikawayasuhisa
0
240
Azure SQL Database Hyperscale HA レプリカの監視
sansantech
PRO
0
190
いまからでも遅くない! コンテナでWebアプリケーションを 動かしてみよう(1)Gitハンズオン
nomu
0
280
Namespace, Now and Then
tagomoris
0
170
Evolving DevOps Teams and Flexible Organizational Culture
kakehashi
1
130
Dive Deep in Cloud Run: Automatic Base Image update
aoto
PRO
0
900
リクルート新人研修2024 テキスト生成AI活用
recruitengineers
PRO
10
420
Featured
See All Featured
Why You Should Never Use an ORM
jnunemaker
PRO
53
8.9k
StorybookのUI Testing Handbookを読んだ
zakiyama
25
5k
Teambox: Starting and Learning
jrom
131
8.7k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
22
3.9k
10 Git Anti Patterns You Should be Aware of
lemiorhan
653
58k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
190
16k
4 Signs Your Business is Dying
shpigford
179
21k
How to train your dragon (web standard)
notwaldorf
85
5.6k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
325
21k
How to name files
jennybc
75
97k
The Invisible Side of Design
smashingmag
295
50k
Six Lessons from altMBA
skipperchong
26
3.3k
Transcript
Web APIのAWS Lambda移行で工夫したこと 2024-05-22 アーキテクチャを突き詰める Online Conference https://findy.connpass.com/event/314782/ ENECHANGE株式会社 VPoT兼CTO室マネージャー
岩本 隆史
岩本 隆史 (iwamot) 現職:ENECHANGE 全社的な技術施策の提案~実行 前職:AWS Japan クラウドサポートアソシエイト AWS Community
Builder (2024~) カテゴリ:Cloud Operations
移行の背景
電力使用量予測マイクロサービス https://enechange.jp/try/input
Elastic Beanstalk (Docker) で運用 https://aws.amazon.com/jp/elasticbeanstalk/
全社的なElastic Beanstalk卒業の気運 EOLになるプラットフォームから新しいバージョンへのアップグレードはメジャ ーバージョンアップになり、既存の環境とは別に新しい環境を作成する必要があ ります。 https://dev.classmethod.jp/articles/eb-platform-versionup-with-existing-config/
無駄なALBを発見
移行先の検討
EKS? ECS? Lambda?
EKSは学習コストがかかるので除外
APIはエンドポイント1つだけ POST /predict
Lambdaに決定
移行で工夫したこと
コンテナイメージの最適化 まず、可能な時はいつでもAWS が提供するベースイメージをコンテナイメージの 出発点として使用します。次に、マルチステージビルドを使用して、不要なレイ ヤやファイルを最終イメージに追加しないようにします。 https://aws.amazon.com/jp/blogs/news/optimizing-lambda-functions-packaged-as- container-images/ ベースイメージを python:slim から
public.ecr.aws/lambda/python に変更 最終イメージから機械学習モデルの訓練データを削除
「プロビジョニングされた同時実行」の設定 Lambda が呼び出しを実行するために新しい環境を初期化しなければならない状 況は、コールドスタートとして知られています。コールドスタートを緩和するた め、プロビジョニングされた同時実行を使用できます。 https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/lambda- concurrency.html#reserved-and-provisioned
「プロビジョニングされた同時実行」の設定 使用率が50%を超えたらスケールするようApplication Auto Scalingを設定
可用性とレイテンシの監視 SLOを策定 期間:28日間 可用性:99.9%以上 レイテンシ:正常系レスポンスの95パーセンタイルが0.08秒以下 レイテンシ:正常系レスポンスの50パーセンタイルが0.06秒以下 エラーバジェットのバーンレート監視を内製ツールで開始
リトライ実装の依頼 Web API パターンのクライアントで行うべきエラーハンドリングの 1 つとしてリ トライがあります。 リクエスト頻度の制限 (=スロットリング) や、一時的な障害、ネットワーク起因
によるエラーなど一時的なエラーにはリトライで対応します。 https://aws.amazon.com/jp/builders-flash/202307/serverless-error-handling-2/ 開発チームにAPIエラー時のリトライ実装を依頼
移行後
ALBが半減
Lambdaの料金もEC2の半額 $110/月 → $55/月
NAT Gatewayはゼロに EC2削除によりインターネット通信が消滅 $45/月 * 6台のコスト削減
可用性やレイテンシも上々
まとめ
Web APIのAWS Lambda移行で工夫したこと コンテナイメージの最適化 「プロビジョニングされた同時実行」の設定 可用性とレイテンシの監視 リトライ実装の依頼