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
より良いプロダクトの開発を目指して - 情報を中心としたプロダクト開発 #phpcon #phpcon2025
bengo4com
1
3.1k
AIの最新技術&テーマをつまんで紹介&フリートークするシリーズ #1 量子機械学習の入門
tkhresk
0
140
M3 Expressiveの思想に迫る
chnotchy
0
100
変化する開発、進化する体系時代に適応するソフトウェアエンジニアの知識と考え方(JaSST'25 Kansai)
mizunori
1
210
TechLION vol.41~MySQLユーザ会のほうから来ました / techlion41_mysql
sakaik
0
180
Prox Industries株式会社 会社紹介資料
proxindustries
0
290
OpenHands🤲にContributeしてみた
kotauchisunsun
1
430
ひとり情シスなCTOがLLMと始めるオペレーション最適化 / CTO's LLM-Powered Ops
yamitzky
0
430
AIのAIによるAIのための出力評価と改善
chocoyama
2
550
米国国防総省のDevSecOpsライフサイクルをAWSのセキュリティサービスとOSSで実現
syoshie
2
1.1k
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
26k
Node-RED × MCP 勉強会 vol.1
1ftseabass
PRO
0
140
Featured
See All Featured
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
657
60k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
930
Being A Developer After 40
akosma
90
590k
Building Applications with DynamoDB
mza
95
6.5k
Automating Front-end Workflow
addyosmani
1370
200k
Writing Fast Ruby
sferik
628
61k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Git: the NoSQL Database
bkeepers
PRO
430
65k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
357
30k
Intergalactic Javascript Robots from Outer Space
tanoku
271
27k
Building an army of robots
kneath
306
45k
KATA
mclloyd
29
14k
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