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
3k
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
AWS Protonの概要
iwamot
0
46
ENECHANGEが実現した管理者の工数負担を削減しながらもAWSセキュリティを強化した方法とは
iwamot
0
100
ECS on FargateへのSeekable OCI導入レポート
iwamot
0
450
サービスクォータ、ちゃんと監視してますか?
iwamot
0
920
AWS Well-Architected Toolで信頼性をレビューした結果
iwamot
0
440
テックカンパニーとしてのENECHANGEの中期目標
iwamot
0
78
AIの活用状況と今後の展望
iwamot
0
62
ENECHANGE社のAWSセキュリティ改革ストーリー
iwamot
0
130
ALBのアクセスログをAthenaで分析してSLOをゆるく決める
iwamot
3
1.3k
Other Decks in Technology
See All in Technology
[I/O Extended Android 2024] What`s new in Android 2024
kyeongwan
0
220
可視化プラットフォームGrafanaの基本と活用方法の全て
hamadakoji
0
230
公共領域から学ぶ クラウド移行についてエンジニアが意識していること
kawakawa2222
0
140
Scaling Technical Excellence at 104: Evolution in AWS and Developer Empowerment
scotthsieh825
1
150
「単なる OAuth 2.0 を認証に使うと、車が通れるほどのどでかいセキュリティー・ホールができる」のか検証してみた
terara
0
380
OSSコミットしてZennの課題を解決した話
dyoshikawa1993
0
150
技術負債による事業の失敗はなぜ起こるのか / Why do business failures due to technical debt occur?
i35_267
0
190
クラウド利用者の「責任」をどう果たす?AWSセキュリティ対策のススメ #AWSSummit
hiashisan
0
280
累計ダウンロード数1億8000万を超えるアプリケーションプラットフォームのレガシーシステム脱却とモダン化への道
kmitsuhashi
0
120
JBUG岡山 #6 WordCamp男木島の チームビルディング
takeshifurusato
0
150
ABEMAにおけるLLMを用いたコンテンツベース推薦システム導入と効果検証
cyberagentdevelopers
PRO
1
730
【基調講演】変える、今ここから ― IoTとAIで紡ぐ未来
soracom
PRO
0
320
Featured
See All Featured
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
121
18k
Large-scale JavaScript Application Architecture
addyosmani
506
110k
What’s in a name? Adding method to the madness
productmarketing
PRO
21
2.9k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
20
7.2k
Writing Fast Ruby
sferik
623
60k
Stop Working from a Prison Cell
hatefulcrawdad
266
20k
RailsConf 2023
tenderlove
16
720
The World Runs on Bad Software
bkeepers
PRO
63
11k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
226
52k
Adopting Sorbet at Scale
ufuk
71
8.8k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
245
1.2M
Optimizing for Happiness
mojombo
373
69k
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移行で工夫したこと コンテナイメージの最適化 「プロビジョニングされた同時実行」の設定 可用性とレイテンシの監視 リトライ実装の依頼