TiDB移行によりスケーラビリティの改善とコストダウン / 株式会社Voicy
会員限定コンテンツです。無料登録すると制限なしでお読みいただけます。
レビュー投稿日の情報になります
株式会社Voicy / thousanda
チームリーダー / バックエンドエンジニア / 従業員規模: 51名〜100名 / エンジニア組織: 11名〜50名
最終更新日投稿日
利用プラン | ツールの利用規模 | ツールの利用開始時期 | 事業形態 |
---|---|---|---|
コミットメントプラン (Enterpriseサポート) | 10名以下 | 2024年4月 | B to B B to C |
利用プラン | コミットメントプラン (Enterpriseサポート) |
---|---|
ツールの利用規模 | 10名以下 |
ツールの利用開始時期 | 2024年4月 |
事業形態 | B to B B to C |
アーキテクチャ
会員限定コンテンツ無料登録してアーキテクチャを見る
導入の背景・解決したかった問題
導入背景
ツール導入前の課題
- データベースにかかる金銭的なコストが高かった
- 効果的な負荷軽減を実施できておらず、インスタンスのスペックを上げることでトラフィックを捌いていた
どのような状態を目指していたか
- 移行前よりもデータベースのコストが下がっている状態
- かつ、適正コストで十分なデパフォーマンスが出ている状態
タイムライン
- 2023年4月 PoCを開始
- 2023年6月 PoCを終え、採用を決定
- 2023年8月 移行設計開始
- 2023年10月 移行作業開始
- 2024年4月 移行完了
比較検討したサービス
- 強いて言えば移行前に使っていたAmazon Aurora MySQL
- ツールの特性で苦労していただけでなく、弊社の使い方が悪いために性能を出しきれていなかった側面もあったため、Auroraのまま改善を実施する案もあった
比較した軸
- コスト
- どれくらい料金を下げられるか
- パフォーマンス
- 現在、そしてサービス規模拡大後のトラフィックに耐えられるだけの性能が出せるか
- ポータビリティ
- 移行は容易か
選定理由
一番の選定理由は、PoCを実施し、現実的なチューニング工数で目標とするコスト/パフォーマンスを実現できると判断できたことです。
PoC内容
- コストとパフォーマンス
- 目標とするコストをベースにクラスターのスペックを決定
- そのスペックでのパフォーマンスを測定
- バックエンドAPIとデータベースを統合した状態で負荷試験を実施しました
- まず本番環境における高トラフィックなタイミングでのAPIリクエストの種類とRPS (Request Per Second) を特定
- その後、試験環境でそれを再現するように、同程度の負荷をかけました
- パフォーマンスが出ないSQLについてはチューニングを実施
- ポータビリティ
- 開発環境のバックエンドAPIをTiDBに接続した状態で、普段から継続的に実施されているリグレッションテストを実施
また、TiDB Cloudを提供するPingCAP社のサポートの手厚さを実感したことも挙げられます。性能が出ていない原因と、実施するべきチューニング内容について明快にご説明いただきました。
導入の成果
- コスト
- 移行前よりコストを下げることができた
- 目標としていた削減規模までは導入直後の時点では達成していなかったが、チューニングとスケールイン/アウトによって達成できる見込み (本レビューを執筆している 2024年7月現在、TiDB CloudのDedicated Tierのクラスターにはオートスケーリング機能が未実装)
- パフォーマンス
- 切り替えによって性能が悪化した一部のクエリをチューニングすることで、現行のトラフィックに耐えられる性能を出すことができた
また、副次的な効果として、PingCAPの方々のチューニングに関する知見の一部を、社内に取り入れることができました。
導入時の苦労・悩み
周辺ツールが未成熟
- TiDB Data Migration使用中にバグに遭遇
- Terraformへの対応が部分的
- など
社内の知見の少なさ
- データベースに精通した人がいなかった
導入に向けた社内への説明
上長・チームへの説明
エンジニアリングを専門としない経営層に向けて、以下のメリットを説明しました。
- 移行後のコストダウン
- いくら程度まで下げられるかという金額を示して説明
- 今後ユーザが増加するとWriterのスケールが必要となるが、TiDBではその対応が容易
- AuroraのWriterスケール対応の想定工数を示して説明
活用方法
よく使う機能
- TiDB Cloudが提供するDedicated TierのTiDBクラスター
- Voicyのアプリケーションの主要なデータを記録する基幹データベースとして
ツールの良い点
- MySQL互換のため、他のNewSQLと比較すると移行が容易
ツールの課題点
- 分散DBであることを意識して扱う必要がある
- 例えば AUTO_INCREMENTの挙動など
株式会社Voicy / thousanda
チームリーダー / バックエンドエンジニア / 従業員規模: 51名〜100名 / エンジニア組織: 11名〜50名
よく見られているレビュー
株式会社Voicy / thousanda
チームリーダー / バックエンドエンジニア / 従業員規模: 51名〜100名 / エンジニア組織: 11名〜50名
レビューしているツール
目次
- アーキテクチャ
- 導入の背景・解決したかった問題
- 活用方法