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
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_vite-pluginのあれこれ
chimame
2
600
Boost Your Web Performance with Hyperdrive
chimame
1
530
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
500
GraphQL Server on Edge
chimame
12
6.5k
エッジで輝くフロントエンド
chimame
11
6.9k
Cloudflare Workersと状態管理
chimame
4
2.1k
Other Decks in Programming
See All in Programming
えっ!!コードを読まずに開発を!?
hananouchi
0
220
JAWS-UG横浜 #102 AWSサ終供養LT会 成仏できない AWS サービスたち 〜本日、三体供養します〜
maroon1st
0
210
はてなアカウント基盤 State of the Union
cockscomb
1
1.3k
作るコストが小さくなった時代 幸せに働くために改めて考えたいこと 〜エンジニアとして価値を出し続けるために注視している二分野〜
yuppeeng
0
100
ルールを書いて終わらせないハーネスエンジニアリング
yug1224
3
1.5k
アルゴリズムは何を圧縮しているのか ─ Haskell から育った「圧縮代数」というメンタルモデル
naoya
16
3.5k
AIを活用したE2Eテスト実装効率化のあゆみ / ebisu-mobile-14-kotetu
kotetuco
0
170
act1-costs.pdf
sumedhbala
0
230
才能?センス?知らん、 続けたもん勝ちだ。-- 結婚・出産・癌を越えてなお、私がプロダクトを創り続ける理由
16bitidol
2
870
初めてのKubernetes 本番運用でハマった話
oku053
0
130
信頼性について考えてみる(SRE NEXT 2026 miniLT)
hayama17
0
200
エンジニア向け会社紹介/Findy Company Profile
findyinc
6
360k
Featured
See All Featured
The Language of Interfaces
destraynor
162
27k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
GraphQLとの向き合い方2022年版
quramy
50
15k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.1k
How to build a perfect <img>
jonoalderson
1
5.8k
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
500
Google's AI Overviews - The New Search
badams
0
1.1k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Darren the Foodie - Storyboard
khoart
PRO
3
3.4k
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.8k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
530
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