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
Kenichiro Wada
August 12, 2023
Technology
0
240
(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
Tweet
Share
More Decks by Kenichiro Wada
See All by Kenichiro Wada
(全日本人)待望のS3トリガーのLambda無限ループ対応について / chibaraki-1
kwada
0
120
AWS Lambdaに出会って人生が変わった1人の10年間 /awslambda10th
kwada
0
84
GPSデバイスを使った簡易位置案内システムの構築をしてみた話。/jawsfesta2024
kwada
0
690
とある航空会社の飛行機の乗り方をお教えします。/20240913-lt
kwada
3
300
Building a Simple Navigation Guide Service Using GPS Devices/jaws-pankration2024
kwada
0
110
IaCジェネレーターを使って、昔に作ったLambda関数をCDK管理下においてみた / jaws-ug-josys-30
kwada
0
130
SORACOM UG Explorer 2023ハンズオンの裏側サービスを紹介 / soracom-ug-online-17
kwada
0
300
三国志好きの自分が一番最初に出会った三国志のゲームを令和になってやってみた / retrogstudy-8
kwada
0
150
意外と使われている3レターコードの話 / 20230715_katsuura
kwada
0
170
Other Decks in Technology
See All in Technology
Postman AI エージェントビルダー最新情報
nagix
0
110
米国国防総省のDevSecOpsライフサイクルをAWSのセキュリティサービスとOSSで実現
syoshie
2
1.1k
Liquid Glass革新とSwiftUI/UIKit進化
fumiyasac0921
0
210
Кто отправит outbox? Валентин Удальцов, автор канала Пых
lamodatech
0
340
TechLION vol.41~MySQLユーザ会のほうから来ました / techlion41_mysql
sakaik
0
180
AWS アーキテクチャ作図入門/aws-architecture-diagram-101
ma2shita
29
11k
5min GuardDuty Extended Threat Detection EKS
takakuni
0
140
【TiDB GAME DAY 2025】Shadowverse: Worlds Beyond にみる TiDB 活用術
cygames
0
1.1k
Observability infrastructure behind the trillion-messages scale Kafka platform
lycorptech_jp
PRO
0
140
Observability в PHP без боли. Олег Мифле, тимлид Altenar
lamodatech
0
340
SalesforceArchitectGroupOsaka#20_CNX'25_Report
atomica7sei
0
170
本が全く読めなかった過去の自分へ
genshun9
0
280
Featured
See All Featured
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Building a Modern Day E-commerce SEO Strategy
aleyda
42
7.3k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
130
19k
4 Signs Your Business is Dying
shpigford
184
22k
The Straight Up "How To Draw Better" Workshop
denniskardys
234
140k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Optimising Largest Contentful Paint
csswizardry
37
3.3k
Site-Speed That Sticks
csswizardry
10
660
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Reflections from 52 weeks, 52 projects
jeffersonlam
351
20k
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