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
(2023.08.17 Update)Detecting and stopping recur...
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Kenichiro Wada
August 12, 2023
Technology
280
0
Share
(2023.08.17 Update)Detecting and stopping recursive loops in AWS Lambda functionsで AWS Lambdaの無限ループを防ぐ! / jaws-ug-shizuoka
2023.08.12 JAWS-UG静岡支部 AWS勉強会での発表内容です。
2023.08.17 誤りがあったので、その部分をアップデートしました。
Kenichiro Wada
August 12, 2023
More Decks by Kenichiro Wada
See All by Kenichiro Wada
楽しく学ぼう!サーバーレス入門 /jawsdays2026
kwada
0
62
JAWS-UGとLambdaに感謝を込めて~ AWS と共に歩んだX年 ~/kmj-20260117
kwada
1
69
My First Impression Of Kiro / 20250801-kumoben-lt
kwada
0
110
(全日本人)待望のS3トリガーのLambda無限ループ対応について / chibaraki-1
kwada
0
190
AWS Lambdaに出会って人生が変わった1人の10年間 /awslambda10th
kwada
0
130
GPSデバイスを使った簡易位置案内システムの構築をしてみた話。/jawsfesta2024
kwada
0
1.1k
とある航空会社の飛行機の乗り方をお教えします。/20240913-lt
kwada
3
380
Building a Simple Navigation Guide Service Using GPS Devices/jaws-pankration2024
kwada
0
180
IaCジェネレーターを使って、昔に作ったLambda関数をCDK管理下においてみた / jaws-ug-josys-30
kwada
0
170
Other Decks in Technology
See All in Technology
コードや知識を組み込む / Incorporate Code and Knowledge
ks91
PRO
0
170
The Journey of Box Building
tagomoris
4
3.5k
音声言語モデル手法に関する発表の紹介
kzinmr
0
140
PicoRuby as a Multi-VM Operating System
kishima
1
210
UIライブラリに依存しすぎないReact Native設計を目指して
grandbig
0
140
はじめての MagicPod生成AI機能 機能紹介から活用方法まで
magicpod
0
120
小説執筆のハーネスエンジニアリング
yoshitetsu
0
790
20260428_Product Management Summit_Loglass_JoeHirose
loglassjoe
3
3.8k
AI バイブコーティングでキーボード不要?!
samakada
0
620
AI와 협업하는 조직으로의 여정
arawn
0
520
Good Enough Types: Heuristic Type Inference for Ruby
riseshia
1
310
CloudTrail を見つめ直してみる
kazzpapa3
1
120
Featured
See All Featured
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.7k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
250
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
380
30 Presentation Tips
portentint
PRO
1
280
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
3.8k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
720
Building the Perfect Custom Keyboard
takai
2
740
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Unsuck your backbone
ammeep
672
58k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
370
What does AI have to do with Human Rights?
axbom
PRO
1
2.1k
How STYLIGHT went responsive
nonsquared
100
6.1k
Transcript
BXT KBXTVH "846TFS(SPVQT BXTDPNNVOJUZ 2023.08.12 JAWS-UG静岡⽀部 AWS勉強会 和⽥健⼀郎@Keni_W %FUFDUJOHBOETUPQQJOHSFDVSTJWFMPPQT JO"84-BNCEBGVODUJPOTͰ
"84-BNCEBͷແݶϧʔϓΛ͙ʂ 6QEBUF7FS
ࠓ͢͜ͱ • ⾃⼰紹介 • AWS Lambdaとは • Detecting and stopping
recursive loops in AWS Lambda functions • まとめ +"846(੩Ԭࢧ෦"84ษڧձ-5
⾃⼰紹介 ⽒名:和⽥ 健⼀郎 所属:アイレット株式会社 エンジニア JAWS-UG 千葉 運営メンバー SORACOM UG東京
運営メンバー Twitter: @Keni_W Facebook : kenichiro.wada.3 好きなAWSサービス : AWS Lambda 実は静岡市⽣まれです! AWS Community Builder(Serverless) SORACOM MVC 2022
KBXTVH +"846(੩Ԭࢧ෦"84ษڧձ-5 ࣗݾհଓ͖ • いわゆる戦国三英傑では、徳川家康が好きです。 • 全員愛知⽣まれだろうは突っ込まないで。 • とある勉強会の影響で、静岡を舞台にした 「ローカル⼥⼦の遠吠え」にハマりました。
• さわやかは2019年に初めて⾷べた⼈です。 • 今回も⾷べたいけど台⾵次第かな・・・。 • 静岡おでんは好き。 • 静岡富⼠⼭空港は写真撮りに⾏っただけの⼈
"84-BNCEBͱ +"846(੩Ԭࢧ෦"84ษڧձ-5 • AWS Lambdaは現状、FaaS(Function as a Service) の代表格とも⾔える AWSのコンピューティングサービス
です。 • マネージメントコンソールやAPIを利⽤して、コードの アップロードするだけで、実⾏することができます。 • つまり、開発者はサーバーの構築、管理は⼀切不要で、 コードの実装のみに集中することができます。 • また、リクエストに応じて、⾃動的にスケーリングを ⾏ってくれます。 • リクエスト毎の課⾦となるため、関数が実⾏されない時 には、⼀切料⾦が発⽣しません。そのため、Amazon EC2を利⽤した場合に⽐べて⼤幅に料⾦が下がるケース もあります。 (弊書基礎から学ぶサーバーレス開発 SECTION-004より)
"84-BNCEBͱ +"846(੩Ԭࢧ෦"84ษڧձ-5 サーバーのことを考えずに コードを実⾏する
"84-BNCEBͱ +"846(੩Ԭࢧ෦"84ษڧձ-5 料⾦は、こんな感じなのです(東京リージョン)が、 趣味(ハンズオンとかちょっとした開発)で 利⽤している限りは、無料利⽤枠があるので、 普通に使っている限りは、課⾦されることはまずないです。
"84-BNCEBͱ +"846(੩Ԭࢧ෦"84ษڧձ-5 料⾦は、こんな感じなのです(東京リージョン)が、 趣味(ハンズオンとかちょっとした開発)で 利⽤している限りは、無料利⽤枠があるので、 普通に使っている限りは、課⾦されることはまずないです。
"84-BNCEBͱ +"846(੩Ԭࢧ෦"84ษڧձ-5 そう、普通に使っている限りは・・・。
"84-BNCEBͱ +"846(੩Ԭࢧ෦"84ษڧձ-5 構成(想定) 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が起動し、 後続処理を実⾏
"84-BNCEBͱ +"846(੩Ԭࢧ෦"84ษڧձ-5 察しの良い⽅は、 この図を⾒た時点で、 何をしたかお分かりになるかと 思いますが・・・。
"84-BNCEBͱ +"846(੩Ԭࢧ෦"84ษڧձ-5 AWS Lambda Amazon CloudFront バケットA User ①ユーザーはCFn経由で、 ファイルをS3バケットA
に アップロード ②S3トリガーでLambdaが起動。 Lambda関数内で、バケットBバケットA にファイルをコピーし、元のファイルを削除 ・ ・ ・ ③S3トリガーでLambdaが起動。 Lambda関数内で、バケットBバケットA にファイルをコピーし、元のファイルを削除 ④S3トリガーでLambdaが起動。 Lambda関数内で、バケットBバケットA にファイルをコピーし、元のファイルを削除 ⑤S3トリガーでLambdaが起動。 Lambda関数内で、バケットBバケットA にファイルをコピーし、元のファイルを削除 構成(実際)
"84-BNCEBͱ +"846(੩Ԭࢧ෦"84ษڧձ-5
+"846(੩Ԭࢧ෦"84ษڧձ-5
+"846(੩Ԭࢧ෦"84ษڧձ-5 https://aws.amazon.com/jp/about-aws/whats-new/2023/07/aws-lambda-detects-recursive-loops-lambda-functions/
%FUFDUJOHBOETUPQQJOHSFDVSTJWFMPPQTJO"84-BNCEBGVODUJPOT +"846(੩Ԭࢧ෦"84ษڧձ-5 • Lambda関数の再起ループの検出と停⽌を⾏う。 • Amazon SQS、Amazon SNSトリガーでのループ に対応 •
16回のループ実⾏後、停⽌ • AWS Health Dashboardと連絡先に指定された メールに案内が来る • 放置しておくと、毎⽇連絡が来るケースがある。 (DLQなしのSQSでループした場合)
%FUFDUJOHBOETUPQQJOHSFDVSTJWFMPPQTJO"84-BNCEBGVODUJPOT +"846(੩Ԭࢧ෦"84ษڧձ-5 Amazon S3 対応してないじゃん!
%FUFDUJOHBOETUPQQJOHSFDVSTJWFMPPQTJO"84-BNCEBGVODUJPOT +"846(੩Ԭࢧ෦"84ษڧձ-5 とはいえ、いい仕組みだと思うので、 検証もしてみました。
KBXTVH +"846(੩Ԭࢧ෦"84ษڧձ-5 https://zenn.dev/keni_w/articles/acbfd69a2c7dbb 詳細は公開済みなので、 ご覧ください。
%FUFDUJOHBOETUPQQJOHSFDVSTJWFMPPQTJO"84-BNCEBGVODUJPOT +"846(੩Ԭࢧ෦"84ษڧձ-5 Demo
·ͱΊ +"846(੩Ԭࢧ෦"84ษڧձ-5 • Lambda関数の再起ループの検出と停⽌を⾏うもの。 • 現状は、対応しているのは、 • Amazon SQS •
Amazon SNS • Amazon S3は対応していないので、注意! • SQSのキュー⾃体を数珠繋ぎ(ピタゴラスイッチ)に したものについては、おそらく対応していない。 • ごめんなさい。対応していました。
·ͱΊ +"846(੩Ԭࢧ෦"84ษڧձ-5 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にファイルをコピー ⑤②と同様 こういうやつ (S3は無理ですが、次ページのような構成は検知します。)
·ͱΊ +"846(੩Ԭࢧ෦"84ษڧձ-5 この構成は検知してくれます。
·ͱΊ +"846(੩Ԭࢧ෦"84ษڧձ-5 とりあえず、 Amazon S3に 対応してくれることを 願います!
·ͱΊ +"846(੩Ԭࢧ෦"84ษڧձ-5 あ、忘れてましたが・・・
·ͱΊ +"846(੩Ԭࢧ෦"84ษڧձ-5 ループになるような 構成・設定にしないこと!
·ͱΊ +"846(੩Ԭࢧ෦"84ษڧձ-5 そもそもループになるような 構成・設定にしないこと!
KBXTVH ご静聴 ありがとう ございました +"846(੩Ԭࢧ෦"84ษڧձ-5