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
RDS Proxy?なにそれおいしいの??
Search
Kento Suzuki
October 29, 2022
Technology
1.1k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
RDS Proxy? なにそれ おいしいの??
2022/10/29
【オフライン】JAWS-UG青森 2022 Autumn 【八戸開催】登壇資料
Kento Suzuki
October 29, 2022
More Decks by Kento Suzuki
See All by Kento Suzuki
コミュニティが変えるキャリアの地平線:コロナ禍新卒入社のエンジニアがAWSコミュニティで見つけた成長の羅針盤
kentosuzuki
0
290
バッドプラクティスから学ぶハワイアン航空で行く re:Invent
kentosuzuki
0
520
上流工程に挑戦!「俺の考えた最強サーバレス構成」が一瞬で敗北した件
kentosuzuki
2
420
S3から始めるAWS 〜S3の簡単なユースケースの紹介〜
kentosuzuki
1
820
AWS のポリシー言語 “Cedar” で実現するアクセス制御
kentosuzuki
0
510
探せぇ!お薦めAWSセキュリティワークショップ!!〜 怒涛のワークショップ 48 連戦 〜
kentosuzuki
1
840
SIEM って何?〜 Amazon OpenSearch で始める SIEM 〜
kentosuzuki
0
1.1k
Verified Accessから始めるゼロトラストセキュリティ
kentosuzuki
2
880
復活のAWS DeepComposer 〜 古代兵器から始める生成系AI 〜
kentosuzuki
0
530
Other Decks in Technology
See All in Technology
ADDF - ループエンジニアリングするフレームワークを作ったら/I Didn't Set Out to Build Loop Engineering, But ADDF Did
fruitriin
0
120
インフラと開発の垣根を超えていき!〜元AWSインフラエンジニアがAWS開発で奮闘している話〜
hatahata021
1
170
アカウントが増えてからでは遅い? ~ マルチアカウント統制の勘所 ~
kenichinakamura
0
230
ローカルLLMとLINE Botの組み合わせ その3 / LINE DC Generative AI Meetup #8
you
PRO
0
130
SRE Next 2026 何でも屋からの脱却
bto
0
650
事業価値を⽣み出すSREへ SREが担うべき意思決定の5層
kenta_hi
2
3.6k
シンガポールで登壇してきます
yama3133
0
120
公式ドキュメントの歩き方etc
coco_se
0
100
End-to-Endで考える信頼性 —LINEアプリにおけるクライアント開発×SRE連携の実践
maruloop
4
4.1k
CSに"SLO"は要らない、経営層に"99.9%"は伝わらない - SREを全社に"翻訳"する3原則
cscengineer
PRO
1
4.5k
Foxgloveについて 実際にExtensionを開発して公開するまでの話 / About Foxglove: The Story of Developing and Releasing an Extension
ry0_ka
0
210
完全自律ロボットを作りたくて、先に開発を自律させた話(ROS Japan UG #63 LT)
rryz09
0
510
Featured
See All Featured
Scaling GitHub
holman
464
140k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
330
So, you think you're a good person
axbom
PRO
2
2.1k
Designing Powerful Visuals for Engaging Learning
tmiket
1
450
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6k
Ruling the World: When Life Gets Gamed
codingconduct
0
280
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Practical Orchestrator
shlominoach
191
11k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
630
It's Worth the Effort
3n
188
29k
The SEO Collaboration Effect
kristinabergwall1
1
500
Navigating Weather and Climate Data
rabernat
0
310
Transcript
RDS Proxy? なにそれ おいしいの?? 2022/10/29 JAWS-UG⻘森 2022 Autumn 1
自己紹介 鈴⽊ 健⽃ ( Suzuki Kento ) Twitter︓ @k_suzuki_pnx 所属︓アイレット株式会社
お仕事︓ AWSのインフラ構築・運⽤ 経歴︓ ・新卒 3 年⽬(エンジニア歴 = 社会⼈歴) ・2022 APN ALL AWS Certifications Engineer ・2022 APN AWS Top Engineer ・JAWS DAYS 2022 で発表 「S3の話をしよう ~ S3のコストとセキュリティについて考える ~」 2
自己紹介 鈴⽊ 健⽃ ( Suzuki Kento ) Twitter︓ @k_suzuki_pnx 所属︓アイレット株式会社
お仕事︓ AWSのインフラ構築・運⽤ 経歴︓ ・新卒 3 年⽬(エンジニア歴 = 社会⼈歴) ・2022 APN ALL AWS Certifications Engineer ・2022 APN AWS Top Engineer ・JAWS DAYS 2022 で発表 「S3の話をしよう ~ S3のコストとセキュリティについて考える ~」 3
4 RDS Proxy
5 先月の私
6 普段、業務で構築依頼を受ける中で お客様からこんな構成図を渡されることが…
7
8 RDS Proxy を入れないとダメでしょ!
9 Lambda から RDS へ 接続したい RDS Proxy を使おう︕ Lambda
→ RDS 直接接続するのは アンチパターン
10 ちょっと待った!
11 Lambda から RDS へ 接続したい RDS Proxy を使おう︕ Lambda
→ RDS 直接接続するのは アンチパターン なぜ アンチパターンなのか︖ なぜ RDS Proxy を使うのか︖
12 この 2 つの解説を通して、 RDS Proxy を理解してみよう! なぜ アンチパターンなのか︖ なぜ
RDS Proxy を使うのか︖ 目的
13 Lambda → RDS アンチパターン
14 前提︓Lambda の仕組み 呼び出されるたびにコンテナを作成し処理を実⾏ (マイクロVM) Lambda コンテナ (マイクロVM) 呼び出し
15 Lambda で RDS にログインして処理を実⾏ DBコネクションが張られる Lambda が実⾏される頻度が少なければ問題なし
16 DBコネクションが張られる RDS の最⼤同時接続数の制限に引っかかる RDS へログインする Lambda が 何度も 実⾏される
エラー Lambdaコンテナ
17 じゃあ、 max_connections パラメーターで 最大接続の上限を上げればいいじゃん
18
19 なぜ max_connections のパラメータが存在しているか ( max_connections の変更が推奨されない理由) メモリの逼迫を避けるため コネクションを作るにはメモリを使用
20 コネクションをプーリングする何か必要がある ? Lambdaコンテナ
21 RDS Proxy そこで現れたのは
22 コネクションを指定した期間使い回すことができる
23 ここでまた疑問が浮上
24 ポーリングといえば SQS がいるじゃないか SQS じゃダメなの?
25 ダメじゃない。だけど... ・Lambda 実⾏されるの量によっては上限に引っかかる可能性はある ・⾯倒 定期的に SQS からキューを 取り出すワーカーが必要
26 RDS Proxy はおいしい
27 完
28 実際に使ってみて気づいた点
29 その1 AWS Secrets Manager が必須
30 AWS Secrets Manager とは 特徴 ・シークレットのセキュアなストレージ ・アプリケーションに悪影響を与えずにシークレットを⾃動ローテーション ・複数の AWS
リージョンへのシークレットの⾃動レプリケーション ・プログラムでのシークレットの取得 ・シークレットの使⽤状況の監査と監視 ・シークレットあたり 0.4 USD/⽉ & 10,000 件の API コールあたり0.05USD DBの接続情報やAPIキーなど、 各種機密情報の管理を楽にするマネージドサービス
31 必須なのです
32 具体的に何を入力するの? ・ユーザー名 ・パスワード ・DB エンジン ・RDS ホスト名 ・ポート番号 ・DB
クラスター名
33 その2 AWS 環境のどこかでパスワード情報を 管理する必要がある
34 RDS Proxy が入ると RDS には IAM 認証情報を⽤いてログインすることが可能 ・AWS の内部でパスワードを管理する必要がない
・EC2 や ECS などに紐づいた IAM Role を⽤いて DB にログインできる IAM Role パスワードなしでログイン
35 RDS Proxy が入ると Secret Manager でパスワードを管理する必要がある ・Lambda → RDS
Proxy 間、もしくは RDS Proxy → RDS 間はパスワード認証を⽤いる IAM Role IAM認証 パスワード認証 Secret Manager 参考:Amazon RDS Proxy の使⽤ https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/rds-proxy.html
36 その3 権限管理をちゃんとしていないと シークレットが見えてしまう
37 ・不⽤意に IAM ユーザにadmin 権限を付与するのは NG ・「リソースのアクセス許可」は⼊れておく
38 まとめ
39 Lambda と RDS と聞いたら RDS Proxy を思い浮かべられるよう周りに布教をお願いします
40 脳死で Lambda → RDS は ダメ。ゼッタイ。