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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Kenichiro Wada
October 02, 2021
Technology
1.4k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
AWSの基礎を学ぼう 特別編 最新サービスをみんなで触ってみる LambdaとRDS Proxy RDS Proxy を試してみてた/awsbasics-rds-proxy
2021.10.02
AWSの基礎を学ぼう 特別編
」最新サービスをみんなで触ってみる LambdaとRDS Proxy」のLT発表資料です。
Kenichiro Wada
October 02, 2021
More Decks by Kenichiro Wada
See All by Kenichiro Wada
[未発表]GPS + Beacon Edge Unit SORACOM Editionを試す 〜開封編〜 LT Version /discovery-night-2026
kwada
0
16
楽しく学ぼう!サーバーレス入門 /jawsdays2026
kwada
0
98
JAWS-UGとLambdaに感謝を込めて~ AWS と共に歩んだX年 ~/kmj-20260117
kwada
1
83
My First Impression Of Kiro / 20250801-kumoben-lt
kwada
0
130
(全日本人)待望のS3トリガーのLambda無限ループ対応について / chibaraki-1
kwada
0
200
AWS Lambdaに出会って人生が変わった1人の10年間 /awslambda10th
kwada
0
140
GPSデバイスを使った簡易位置案内システムの構築をしてみた話。/jawsfesta2024
kwada
0
1.2k
とある航空会社の飛行機の乗り方をお教えします。/20240913-lt
kwada
3
420
Building a Simple Navigation Guide Service Using GPS Devices/jaws-pankration2024
kwada
0
200
Other Decks in Technology
See All in Technology
関数型の考えを TypeScript に持ち込んで、テストしやすい純粋関数を増やす / Pure at the Core, Effects at the Edge: Bringing Functional Thinking into TypeScript
kaminashi
2
130
ruby.wasmとPicoRuby.wasmに対応した仮想DOMライブラリを作ってる話 #kaigieffect_kaigi
sue445
PRO
0
150
CIで使うClaude
iwatatomoya
0
290
Terraform共通モジュールをチーム横断で“変えられる”運用へ ― リリースと適用の分離
kekke_n
1
3.3k
LLM/Agent評価:トップ営業の発言を「正解」にする 〜暗黙的正解による評価を営業資産に変える〜
takkuhiro
1
230
2年前に削除したPHPクラスが、 ある日突然決済をエラーにした
ykagano
1
270
OPENLOGI Company Profile for engineer
hr01
1
74k
SRE依存からの脱却 運用を開 発チームへ移す、 フルサイ クル開 発体制の実践
joooee0000
0
3.1k
「AIに依存している」と 「AIを使いこなしている」の違い
k8yasuma
0
110
AIレビューはどこまで任せられるのか?自動化と人が背負うレビューの境界
sansantech
PRO
3
1.1k
Kaggleで成長するために意識したこと
prgckwb
2
410
AIコード生成×サプライチェーン攻撃 — PHPが直面する“二重の信頼問題
shinyasaita
0
190
Featured
See All Featured
Designing Powerful Visuals for Engaging Learning
tmiket
1
450
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
1
370
Color Theory Basics | Prateek | Gurzu
gurzu
0
390
YesSQL, Process and Tooling at Scale
rocio
174
15k
Producing Creativity
orderedlist
PRO
348
40k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
4.1k
The Pragmatic Product Professional
lauravandoore
37
7.4k
Test your architecture with Archunit
thirion
1
2.3k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.8k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
72
40k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
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 ご静聴ありがとうございました