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って課金されるの?〜非同期処理でちょっとやらかした話 /jawsug_bgnr_c...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Kenichiro Wada
April 16, 2021
Technology
0
50
Lambdaって課金されるの?〜非同期処理でちょっとやらかした話 /jawsug_bgnr_chiba_lt
JAWS-UG 初心者支部&千葉支部 #26 - 新人さん歓迎!ハンズオン<(オンライン) -
Kenichiro Wada
April 16, 2021
Tweet
Share
More Decks by Kenichiro Wada
See All by Kenichiro Wada
JAWS-UGとLambdaに感謝を込めて~ AWS と共に歩んだX年 ~/kmj-20260117
kwada
1
56
My First Impression Of Kiro / 20250801-kumoben-lt
kwada
0
97
(全日本人)待望のS3トリガーのLambda無限ループ対応について / chibaraki-1
kwada
0
170
AWS Lambdaに出会って人生が変わった1人の10年間 /awslambda10th
kwada
0
120
GPSデバイスを使った簡易位置案内システムの構築をしてみた話。/jawsfesta2024
kwada
0
970
とある航空会社の飛行機の乗り方をお教えします。/20240913-lt
kwada
3
360
Building a Simple Navigation Guide Service Using GPS Devices/jaws-pankration2024
kwada
0
160
IaCジェネレーターを使って、昔に作ったLambda関数をCDK管理下においてみた / jaws-ug-josys-30
kwada
0
160
SORACOM UG Explorer 2023ハンズオンの裏側サービスを紹介 / soracom-ug-online-17
kwada
0
370
Other Decks in Technology
See All in Technology
Amazon Bedrock Knowledge Basesチャンキング解説!
aoinoguchi
0
150
量子クラウドサービスの裏側 〜Deep Dive into OQTOPUS〜
oqtopus
0
130
レガシー共有バッチ基盤への挑戦 - SREドリブンなリアーキテクチャリングの取り組み
tatsukoni
0
220
AWS Network Firewall Proxyを触ってみた
nagisa53
1
240
ランサムウェア対策としてのpnpm導入のススメ
ishikawa_satoru
0
180
超初心者からでも大丈夫!オープンソース半導体の楽しみ方〜今こそ!オレオレチップをつくろう〜
keropiyo
0
110
Bedrock PolicyでAmazon Bedrock Guardrails利用を強制してみた
yuu551
0
250
SRE Enabling戦記 - 急成長する組織にSREを浸透させる戦いの歴史
markie1009
0
130
予期せぬコストの急増を障害のように扱う――「コスト版ポストモーテム」の導入とその後の改善
muziyoshiz
1
2k
AIと新時代を切り拓く。これからのSREとメルカリIBISの挑戦
0gm
1
2.8k
AIエージェントを開発しよう!-AgentCore活用の勘所-
yukiogawa
0
170
データの整合性を保ちたいだけなんだ
shoheimitani
8
3.2k
Featured
See All Featured
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
0
150
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
320
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
1
300
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.1k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.7k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
51k
Designing Experiences People Love
moore
144
24k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
110
What does AI have to do with Human Rights?
axbom
PRO
0
2k
Into the Great Unknown - MozCon
thekraken
40
2.3k
Information Architects: The Missing Link in Design Systems
soysaucechin
0
780
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
420
Transcript
+"846(ॳ৺ऀࢧ෦ˍઍ༿ࢧ෦ ৽ਓ͞ΜܴʂϋϯζΦϯ-5 ΦϯϥΠϯ -BNCEBͬͯ՝ۚ͞ΕΔͷʁʙඇಉظॲཧͰ ͪΐͬͱΒ͔ͨ͠
ࣗݾհ ・和⽥ 健⼀郎 ・アイレット株式会社所属 ・ JAWS-UG 千葉⽀部運営 ・普段は、社内ツールの開発に従事 ・趣味で開発する(IoTっぽいこと)時はLambdaメイン ・好きなAWSサービスはAWS
Lambda Twitter : @Keni_W Qiita: https://qiita.com/keni_w
Lambdaって課⾦されるの?
-BNCEBͬͯ՝ۚ͞ΕΔͷʁ 趣味(ハンズオンとかちょっとした開発)で 利⽤している限りは、まずないです。 例)2020/03の利⽤料⾦
-BNCEBͬͯ՝ۚ͞ΕΔͷʁ ただし、 「Provisioned Concurrency」という機能を 有効にすると、その利⽤料は無料利⽤枠対象外 になります。 例)検証していた際(12⽉)の利⽤料⾦
ただし、⾮同期処理で、 やらかした場合は、 その限りではありません! -BNCEBͬͯ՝ۚ͞ΕΔͷʁ
ちょっとやらかした⼀例を、 実例を含めてお話しします。 ミスによるものなので、 基本的にはLambda、 サーバーレス怖くないですよ。 -BNCEBͬͯ՝ۚ͞ΕΔͷʁ
構成(想定) ඇಉظॲཧͰΒ͔ͨ͠ AWS Lambda Amazon CloudFront Amazon Simple Storage Service
バケットA AWS Lambda Amazon Simple Storage Service バケットB User ①ユーザーはCFn経由で、 ファイルをS3バケットA に アップロード ②S3トリガーでLambda が起動。Lambda関数内 で、バケットBにファイ ルをコピーし、元のファ イルを削除 ③バケットBでもS3トリ ガーでLambdaが起動し、 後続処理を実⾏
察しの良い⽅は、この時点で何を どう間違えたか気づくかと思いますが。。。 ඇಉظॲཧͰΒ͔ͨ͠
構成(実際) ඇಉظॲཧͰΒ͔ͨ͠ AWS Lambda Amazon CloudFront バケットB User ①ユーザーはCFn経由で、 ファイルをS3バケットA
に アップロード ②S3トリガーでLambdaが起動。 Lambda関数内で、バケットBバケットA にファイルをコピーし、元のファイルを削除 ・ ・ ・ ③S3トリガーでLambdaが起動。 Lambda関数内で、バケットBバケットA にファイルをコピーし、元のファイルを削除 ④S3トリガーでLambdaが起動。 Lambda関数内で、バケットBバケットA にファイルをコピーし、元のファイルを削除 ⑤S3トリガーでLambdaが起動。 Lambda関数内で、バケットBバケットA にファイルをコピーし、元のファイルを削除
ඇಉظॲཧͰΒ͔ͨ͠
⽬に⾶び込んできたのは、 Lambdaの実⾏数(Invocations)が 凄まじい勢いで跳ね上り、 Throttlesの値が出現する Cloudwatchのメトリクス。 そして、Slackに通知される監視システムからの アラートメッセージ。。。 ඇಉظॲཧͰΒ͔ͨ͠
ඇಉظॲཧͰΒ͔ͨ͠
いや、挫折してる暇はないんです。 ⽌めないと。。。 ඇಉظॲཧͰΒ͔ͨ͠
Lambda関数消しました ※もっといい⽌め⽅があるので後述します。 ඇಉظॲཧͰΒ͔ͨ͠
S3バケットの指定は、Lambdaの環境変数に定義して あったので、それを変えればいいんじゃ・・・? ඇಉظॲཧͰΒ͔ͨ͠
ඇಉظॲཧͰΒ͔ͨ͠
Lambdaに限らずですが、 まあ、まずは落ち着きましょう。 ඇಉظॲཧͰΒ͔ͨ͠
救いだったのは。。。 新規開発のもので、実装終わって、 さあーってLambdaデプロイして、 テストするかー。の時点だったこと (メトリクスも⾒てたので、すぐに気づけた) そういう存在だったので容赦なく捨てられたこと。 ඇಉظॲཧͰΒ͔ͨ͠
暴⾛Lambdaの⽌め⽅ですが、 コンソール上部にある「スロットリング」ボタンを押す と⽌められるそうです。 ඇಉظॲཧͰΒ͔ͨ͠
どう対策するべきか。 ※ダメなケースもあるので最適解ではないです。 ・同時実⾏数の予約を1にする。 ・Invocationsの異常値、もしくは Throttlesが発⽣時に、Clouwatch Alerm もしくはサードパーティーの監視システム で通知をあげる。 ඇಉظॲཧͰΒ͔ͨ͠
ちょっと聞いた話なんですが、 こんなケースもあるそうです。 ඇಉظॲཧͰΒ͔ͨ͠
構成(⼀部想像) ඇಉظॲཧͰΒ͔ͨ͠ AWS Lambda Amazon Simple Storage Service Bucket with
objects AWS Lambda Amazon Simple Storage Service Bucket with objects User ①ユーザーは S3バケットAに アップロード ②S3トリガーでLambda が起動。Lambda関数内 で、ファイル内のデータ を使って処理後、バケッ トBにファイルをコピー ③S3トリガーでLambda が起動。Lambda関数内 で、ファイル内のデータ を使って処理後、バケッ トCにファイルをコピー Amazon Simple Storage Service Bucket with objects AWS Lambda ④S3トリガーでLambda が起動。Lambda関数内 で、ファイル内のデータ を使って処理後、バケッ トAにファイルをコピー ⑤②と同様
1Lambdaの実⾏が淡々と繰り返される。。。 スロットリングにもならないので、エラーも起こらない。 ඇಉظॲཧͰΒ͔ͨ͠
どう対策するべきか。 聞いた時ちょっと悩みましたね。でも、以下かな? ※これまたダメなケースもあるので最適解ではないです。 ・関数のInvocationsのsum(合計)が異常値検知 して、アラートを⾶ばす。 ・BillingAlertを設定し、課⾦発⽣/想定外時 に、アラートを⾶ばす。 ඇಉظॲཧͰΒ͔ͨ͠
いずれにしろ、確かなことは、 ⼈はミスする⽣物なので、 オンプレ・EC2上で動作するアプリでも、 サーバーレスのアプリでも監視は重要ってことです。 ·ͱΊ
とはいえ、いきなり監視(しかも個⼈の場合は特に)は 難しいので、テスト実⾏して、ログ・メトリクスを⾒ま しょう! ·ͱΊ
素敵なサーバーレス開発ライフを! ·ͱΊ