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
AWSの基礎を学ぼう 特別編 最新サービスをみんなで触ってみる LambdaとRDS Prox...
Search
Kenichiro Wada
October 02, 2021
Technology
0
1.1k
AWSの基礎を学ぼう 特別編 最新サービスをみんなで触ってみる LambdaとRDS Proxy RDS Proxy を試してみてた/awsbasics-rds-proxy
2021.10.02
AWSの基礎を学ぼう 特別編
」最新サービスをみんなで触ってみる LambdaとRDS Proxy」のLT発表資料です。
Kenichiro Wada
October 02, 2021
Tweet
Share
More Decks by Kenichiro Wada
See All by Kenichiro Wada
AWS Lambdaに出会って人生が変わった1人の10年間 /awslambda10th
kwada
0
46
GPSデバイスを使った簡易位置案内システムの構築をしてみた話。/jawsfesta2024
kwada
0
380
とある航空会社の飛行機の乗り方をお教えします。/20240913-lt
kwada
3
240
Building a Simple Navigation Guide Service Using GPS Devices/jaws-pankration2024
kwada
0
61
IaCジェネレーターを使って、昔に作ったLambda関数をCDK管理下においてみた / jaws-ug-josys-30
kwada
0
72
SORACOM UG Explorer 2023ハンズオンの裏側サービスを紹介 / soracom-ug-online-17
kwada
0
160
(2023.08.17 Update)Detecting and stopping recursive loops in AWS Lambda functionsでAWS Lambdaの無限ループを防ぐ! / jaws-ug-shizuoka
kwada
0
210
三国志好きの自分が一番最初に出会った三国志のゲームを令和になってやってみた / retrogstudy-8
kwada
0
100
意外と使われている3レターコードの話 / 20230715_katsuura
kwada
0
120
Other Decks in Technology
See All in Technology
Jetpack Composeで始めるServer Cache State
ogaclejapan
2
170
【re:Invent 2024 アプデ】 Prompt Routing の紹介
champ
0
140
KubeCon NA 2024 Recap / Running WebAssembly (Wasm) Workloads Side-by-Side with Container Workloads
z63d
1
240
GitHub Copilot のテクニック集/GitHub Copilot Techniques
rayuron
29
12k
Storage Browser for Amazon S3
miu_crescent
1
140
re:Invent をおうちで楽しんでみた ~CloudWatch のオブザーバビリティ機能がスゴい!/ Enjoyed AWS re:Invent from Home and CloudWatch Observability Feature is Amazing!
yuj1osm
0
120
alecthomas/kong はいいぞ / kamakura.go#7
fujiwara3
1
300
1等無人航空機操縦士一発試験 合格までの道のり ドローンミートアップ@大阪 2024/12/18
excdinc
0
160
ガバメントクラウドのセキュリティ対策事例について
fujisawaryohei
0
530
kargoの魅力について伝える
magisystem0408
0
200
2024年にチャレンジしたことを振り返るぞ
mitchan
0
130
フロントエンド設計にモブ設計を導入してみた / 20241212_cloudsign_TechFrontMeetup
bengo4com
0
1.9k
Featured
See All Featured
Building Better People: How to give real-time feedback that sticks.
wjessup
365
19k
How To Stay Up To Date on Web Technology
chriscoyier
789
250k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
17
2.3k
Speed Design
sergeychernyshev
25
670
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
5
440
Fireside Chat
paigeccino
34
3.1k
A Philosophy of Restraint
colly
203
16k
Facilitating Awesome Meetings
lara
50
6.1k
Producing Creativity
orderedlist
PRO
341
39k
Making Projects Easy
brettharned
116
5.9k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
132
33k
Optimizing for Happiness
mojombo
376
70k
Transcript
3%41SPYZ Λࢼͯ͠Έͯͨ BXTCBTJDT KBXTVHDIJCB 2021.10.02 AWSの基礎を学ぼう 特別編 最新サービスをみんなで触ってみる LambdaとRDS Proxy
和⽥健⼀郎@Keni_W
⾃⼰紹介 ⽒名:和⽥ 健⼀郎 所属:アイレット株式会社 エンジニア JAWS-UG 千葉 運営メンバー SORACOM UG東京
運営メンバー Twitter: @Keni_W Facebook : kenichiro.wada.3 好きなAWSサービス : AWS Lambda 2021 APN AWS Top Engineers 昨年、共著でサーバーレスの本書きました
͓ͼ "84ͷجૅΛֶ΅͏ ಛผฤ BXTCBTJDT KBXTVHDIJCB こちらの内容は、 2020年8⽉27⽇にあった JAWS UG千葉⽀部勉強会 Online
#6 のLTで話した内容にちょっと加筆したものです。
71$-BNCEBͱ "84ͷجૅΛֶ΅͏ ಛผฤ BXTCBTJDT KBXTVHDIJCB • VPC内リソースにアクセスするためのLambda 関数のこと • ⼀番多いであろう(多分)⽤途はLambdaの
データストアとして、RDBMS(RDS)を使う ケース • エンプラ⽤途では今なおよくあるケースでは
71$-BNCEBͱ "84ͷجૅΛֶ΅͏ ಛผฤ BXTCBTJDT KBXTVHDIJCB 今の会社⼊って、 最初に担当した案件、 VPC Lambda +
RDS(Aurora)案件でした。 (2016年、Node.js v4.3時代)
71$-BNCEBͱ "84ͷجૅΛֶ΅͏ ಛผฤ BXTCBTJDT KBXTVHDIJCB こんな感じの構成図(ざっくり)
71$-BNCEBͱ "84ͷجૅΛֶ΅͏ ಛผฤ BXTCBTJDT KBXTVHDIJCB (その当時の) VPC Lambdaの問題点 • ENI作成問題(いわゆるコールドスタンバイ問題)
• DBコネクション問題 しかし、2019年のアップデートで、 この辺が全部解消されました
71$-BNCEBͱ "84ͷجૅΛֶ΅͏ ಛผฤ BXTCBTJDT KBXTVHDIJCB 2019年にあったアップデートは、以下 1. ENI作成タイミングの変更 2. Provisioned
Concurrency 3. RDS Proxy(厳密にはLambdaのアップデートではない) この辺の詳細は、AWSJ下川さんが作成された 「Serverless Services Update at AWS re:Invent 2019 」という資料をご覧いただくといいかなと 思います。 https://speakerdeck.com/_kensh/serverless-services-update-at-aws-re-invent-2019
3%41SPYZݕূͯ͠Έͨ "84ͷجૅΛֶ΅͏ ಛผฤ BXTCBTJDT KBXTVHDIJCB 2019年のアップデートと書きましたが、 RDS Proxyは、Previewとして使えていて、 GAになったのは、2020年7⽉1⽇のことでした。
3%41SPYZݕূͯ͠Έͨ "84ͷجૅΛֶ΅͏ ಛผฤ BXTCBTJDT KBXTVHDIJCB ちょうど、最終稿のチェックをしているあたりで して、本の中でも、無論RDS Proxyについても、 触れているんですが・・・。 執筆中は、Previewでしたので、変わる可能性が
ありますというっていう案内を書いてあったんで すが・・・。
3%41SPYZݕূͯ͠Έͨ "84ͷجૅΛֶ΅͏ ಛผฤ BXTCBTJDT KBXTVHDIJCB 消しましたね。 そして、 GAされましたという記載を追加したという 思い出があるRDS Proxyです。
3%41SPYZݕূͯ͠Έͨ "84ͷجૅΛֶ΅͏ ಛผฤ BXTCBTJDT KBXTVHDIJCB さらに謝っておきますと、 このやってみたの元ネタは、 2020年7⽉28⽇に開催された AWSJさんのイベント、 「RDS+Lambda
が始まる。 過去のアンチパターンはどう変わるのか」 であった、AWSJ福井さんのDEMOになります
3%41SPYZݕূͯ͠Έͨ "84ͷجૅΛֶ΅͏ ಛผฤ BXTCBTJDT KBXTVHDIJCB 構成 RDS Proxyなし RDS Proxyあり
3%41SPYZݕূͯ͠Έͨ "84ͷجૅΛֶ΅͏ ಛผฤ BXTCBTJDT KBXTVHDIJCB テスト条件 • 処理件数は500件と1000件で実施 • SQSへのメッセージ送信は10件毎に5秒Waitしながら実施
• なるべくLambdaの起動数を増やしたいので • SQSは3回リトライ失敗するとDLQ⾏き • RDS(Aurora)のmax_connectionsは100に設定 • Auroraだったので、もともと45だった(汗) • RDS Proxyは50%の接続を設定 • SQSトリガーのLambdaはDBコネクション接続後、90秒 SleepしてからデータInsert
3%41SPYZݕূͯ͠Έͨ "84ͷجૅΛֶ΅͏ ಛผฤ BXTCBTJDT KBXTVHDIJCB • 500件のケース
3%41SPYZݕূͯ͠Έͨ "84ͷجૅΛֶ΅͏ ಛผฤ BXTCBTJDT KBXTVHDIJCB • 500件のケース
3%41SPYZݕূͯ͠Έͨ "84ͷجૅΛֶ΅͏ ಛผฤ BXTCBTJDT KBXTVHDIJCB • 1000件のケース
3%41SPYZݕূͯ͠Έͨ "84ͷجૅΛֶ΅͏ ಛผฤ BXTCBTJDT KBXTVHDIJCB • 1000件のケース
·ͱΊ "84ͷجૅΛֶ΅͏ ಛผฤ BXTCBTJDT KBXTVHDIJCB • RDS Proxy 想像以上にすごい •
意図的にコネクションが溜まるようなロジックにしたけど、 ちゃんとエラーなく処理される • しかも、単純にRDS Proxyに接続先を変えただけ • ピン留めという事象もあるらしいので、利⽤の際は注意必要 • RDS Proxy⾃体は別にLambda専⽤ではないので、活⽤でき るケースは多そう • お⾦かかるので、ご利⽤は計画的に
·ͱΊ "84ͷجૅΛֶ΅͏ ಛผฤ BXTCBTJDT KBXTVHDIJCB • Aurora(MySQL)でやってしまったが、⾮AuroraのMySQL でも試した⽅が良かったかもしれないのは反省 • SQSトリガーって、EventのRecordsオブジェクト内に複数
メッセージを格納していることを失念(知らなかった)して いた。 • SQSトリガーの復習にもなったので今回よかった(SQSト リガー絶賛活⽤中です) • VPC Lambda⾃体は、使いやすくなったので、VPC内のリ ソースアクセス以外にも、別APIを叩く際のIP固定にも活⽤ できるケースもありそう
͓ΘΓ "84ͷجૅΛֶ΅͏ ಛผฤ BXTCBTJDT KBXTVHDIJCB ご静聴ありがとうございました