Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Ruby on JetsとRDS Proxyを使ってRailsアプリをサーバレス化してみた

Y_uuu
January 09, 2020

Ruby on JetsとRDS Proxyを使ってRailsアプリをサーバレス化してみた

2019/01/09(Thu) 20:20-20:35
AWS re:Invent Recap with Serverless in Fusic にて発表

Y_uuu

January 09, 2020
Tweet

More Decks by Y_uuu

Other Decks in Technology

Transcript

  1. 現状の構成でのスケールアウト  Heyで100リクエストしてみる ❯ hey -H "Cookie: rack.session=xxx" -n 100

    -c 100 https://5mgq0llbxc.execute-api.ap-northeast-1.amazonaws.com/prod/ ※省略 Status code distribution: [200] 66 responses [502] 34 responses
  2. AuroraServerless構成でのスケールアウト  Heyで1024リクエストしてみる ❯ hey -H "Cookie: rack.session=xxx" -n 1024

    -c 1024 https://5mgq0llbxc.execute-api.ap-northeast-1.amazonaws.com/prod/ ※省略 Status code distribution: [200] 1024 responses
  3. RDS-Proxyを使った構成  Heyで50リクエストしてみる ❯ hey -H "Cookie: rack.session=xxx" -n 50

    -c 50 https://5mgq0llbxc.execute-api.ap-northeast-1.amazonaws.com/prod/ ※省略 Status code distribution: [200] 24 responses Error distribution: [26] Get https://5mgq0llbxc.execute-api.ap-northeast- 1.amazonaws.com/prod/: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
  4. RDS-Proxyを使った構成  Heyで50リクエストしてみる(タイムアウトを120秒に延ばす) ❯ hey -H "Cookie: rack.session=xxx" -n 50

    -c 50 –t 120 https://5mgq0llbxc.execute-api.ap-northeast-1.amazonaws.com/prod/ ※省略 Status code distribution: [200] 24 responses [504] 26 responses 29秒で⼀⻫に504が返ってくる= API Gatewayのタイムアウト
  5. まとめ  • Ruby on Jetsを使ってRailsアプリケーションを サーバレス化することができた • Aurora Serverlessを使ってLambdaの

    スケールアウト対策ができることがわかった • RDS-Proxyについては引き続き検証を続ける