talk
GraphQL×Railsアプリのデータベース負荷分散 - 月間3,000万人利用サービスを無停止で
弊社のサービス「マイベスト」はテレビに取り上げられたことで、わずか1分間に40,000アクセスが発生し、データベースの処理がボトルネックとなりサービスダウンしました。これは予想を大きく上回るトラフィックで、DBをスケールアップしていても捌ききれないアクセス数でした。サービスのさらなる成長を見据えると、データベースのスケーラビリティは喫緊の課題です。
Railsは6.0以降では複数のデータベースを扱う仕組みとして、HTTP METHODによる自動的なロール切り替え機能を提供しています。しかし、GraphQLでは通信の大半がHTTP POSTで行われるため、この標準機能をそのまま利用することはできません。GraphQLがRDBMSやRailsと比較して新しい技術であるため、情報源が少なく、多くの開発者を悩ませています。
本セッションでは、月間3,000万人ユーザー/1.1億のGraphQLリクエストの負荷分散させた実際の取り組みを通じて、DBサーバーのCPU 利用率を67% → 17%に削減したプロセスを共有します。さらに、組織のリソース制約を踏まえた技術選定プロセスから実装、そして大規模サービスへの安全な導入戦略まで包括的に解説します。
参加者が自身のプロジェクトに適用可能な具体的なアプローチを得られるようなセッションになるはずです。
Speaker
Koya Masuda
株式会社マイベストでおすすめ商品比較サービス「マイベスト」の開発を行っています。
主な業務内容はWeb, Mobile向けのAPI開発です。
好きなチームは清水エスパルスとレアル・マドリーです。