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

9ec05c5a1b9b0ce9cd53ec3a63838b9a?s=47 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 にて発表

9ec05c5a1b9b0ce9cd53ec3a63838b9a?s=128

Y_uuu

January 09, 2020
Tweet

Transcript

  1. 19.
  2. 20.
  3. 41.

    現状の構成でのスケールアウト  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
  4. 45.

    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
  5. 49.

    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)
  6. 50.

    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のタイムアウト
  7. 58.

    まとめ  • Ruby on Jetsを使ってRailsアプリケーションを サーバレス化することができた • Aurora Serverlessを使ってLambdaの

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