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を使ってAuroraと仲良くなる
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
chimame
February 19, 2020
Programming
1.3k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
RDS Proxyを使ってAuroraと仲良くなる
HIGOBASHI.AWS #13
〜令和新春!AWSだらけのLT大会〜
chimame
February 19, 2020
More Decks by chimame
See All by chimame
Cloudflare is Agents
chimame
0
190
知って得する@cloudflare_vite-pluginのあれこれ
chimame
2
650
Boost Your Web Performance with Hyperdrive
chimame
1
570
RemixでVersion skewに立ち向かう
chimame
2
1.3k
私がエッジを使う理由
chimame
10
4.2k
GraphQL Server on Edge after that
chimame
1
1.8k
Accelerating App Dev with Cloudflare Workers
chimame
1
510
GraphQL Server on Edge
chimame
12
6.7k
エッジで輝くフロントエンド
chimame
11
7k
Other Decks in Programming
See All in Programming
The Good Stuff, Not the Slop: Engineering High-Quality Android Apps with Modern AI Tooling
danybony
1
180
思考垂れ流し開発 ~音声入力 × AIエージェント × 開発ハーネスによる試行錯誤~
npostring
0
810
Hello, Hiroshima Geospatial Data! — Exploring DoboX with Python
ra0kley
0
170
AIに既存システムを理解させる技術 ~レガシーを見捨てないハーネスエンジニアリング入門~
ochtum
0
200
私のClaude Code活用法 (個人開発編) - PHPerKaigi mini #4(2026/08/24)
panda_program
1
210
in-process GraphQL のすすめ #ginzajs
izumin5210
4
1.5k
PHPプロジェクトの結合バランスを可視化する #php_night
kajitack
0
210
AI に Inclusive UI を書かせよう — Design Rules Skill で Compose UI を作り直す
theoriatec2024
1
440
30年振りにコンパイラの定数整数除算を改善した
herumi
9
4.4k
GKE アップグレード前に知っておきたい Blue/Green と PDB の関係
stkk
0
140
LL言語やWebフレームワークのPostgreSQL対応 〜DBの機能がユーザーに届くまで〜
kentaroutakeda
0
140
XP祭りでしか伝わらないフリップネタ #xpjug
murabayashi
0
110
Featured
See All Featured
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.5k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
6.1k
Color Theory Basics | Prateek | Gurzu
gurzu
0
460
GraphQLとの向き合い方2022年版
quramy
50
15k
Agile that works and the tools we love
rasmusluckow
331
22k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
580
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
250
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
770
Bash Introduction
62gerente
615
220k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.5k
Transcript
RDS Proxyを使って Auroraと仲良くなる 2020/01/30 HIGOBASHI.AWS #13 〜令和新春!AWSだらけのLT大会〜
RDS Proxy Agenda 自己紹介 まとめ
Whoa! 名前: rito 職業: Webエンジニア (アプリケーションエンジニア) 分野: Ruby on Rails,
Nodejs, React, Docker, AWS, GCP 所属: Ateam Finergy Inc. コミュニティ: GDG Osaka Rails follow-up Osaka Osaka Web Developers Meetup twitter: @chimame_rt GitHub: chimame
“Auroraとコネクション プーリングの仕組みは 相性が悪い”
コネクションプーリングとは? 5
Application Connections 使用中 使用中 使用中 未使用 未使用
7 Q.なんで相性が悪い?
Application Connections 使用中 使用中 使用中 未使用 未使用 replica master フェイルオーバーが発生したらmaster
だったreplicaに繋いだまま
RDS Proxy Managing Connections with Amazon RDS Proxy (Preview)
AWS re:Invent 2019で発表された新しいサービス。 • その名の通りRDS(データベース)用のプロキシ • RDS接続コスト(メモリ、CPU)を肩代わりする • 接続にIAM認証が使えてセキュアになる 特に発表された段階の巷ではAWS
LambdaとRDSの接続相 性の悪さを軽減できると期待されました。 RDS Proxyとは? 10
Application Connections 使用中 使用中 使用中 未使用 未使用 Aurora RDS Proxy
new!
RDS Proxyの利点 Benefits of using RDS Proxy
コネクションプーリング問題の解決
なんで? • アプリケーションはProxyに対して、コネクションプールをしている • Auroraがフェイルオーバーして接続が借り変わるのはProxyが管理している そのため、Read/Writeが入れ替わってもアプリケーションは意識する必要がない 相性が悪いというフェイルオーバー時の動作 が解消される 14
15 Q.フェイルオーバー時の読み込みないし書 き込み不可時間はどれくらい?
16 A.接続が入れ替わる瞬間の 1.4秒間くらい発生する
def show Rails.logger.debug("start: #{Time.zone.now.iso8601(3)}") Test.where(id: 1).pluck(:id) head :ok rescue Rails.logger.debug("error:
#{Time.zone.now.iso8601(3)}") head :forbidden end
フェイルオーバーとしては20秒ほど
約1.2秒の間、Readができない事象が 発生。
def show Rails.logger.debug("start: #{Time.zone.now.iso8601(3)}") Test.create(name: "#{Time.zone.now.iso8601(3)}") head :ok rescue Rails.logger.debug("error:
#{Time.zone.now.iso8601(3)}") head :forbidden end
フェイルオーバーとしては30秒ほど
約1.4秒の間、Writeができない事象が 発生。
RDS Proxyの欠点 Disadvantages of using RDS Proxy
レイテンシーが高くなる
def start # 1万件のデータ登録にProxyのありなしでどれくらい時間差が出るか 10000.times do |i| Test.create(name: "proxy #{i}")
end end
Proxyを介した場合は約3分15秒で完了 直接接続した場合には約1分8秒で完了
Proxyを介した場合と直接繋いだ場合のネットワーク送受信のスループットに大きな差が出 た RDS Proxyを挟むことで通信が制御され る? 27
Proxyを介した場合と直接繋いだ場合のネットワーク送受信のスループットに大きな差が出 た RDS Proxyを挟むことで通信が制御され る? 28 Proxyを介した場合 直接の場合
Readエンドポイントがなくなる
ここに接続エンドポイントのスクリーンショットを貼る masterへのエンドポイントしかない
まとめ STAY 障害性の保険と考えれば 費用として悪くない フェイルオーバーに は対応できる GOOD! Readエンドポイントは直接Aurora 参照することになりそう STAY
スループットが落ちるけど プレビューだからと思いたい BAD
Thanks! Does anyone have any questions? rito@chimame