Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】TiDB Cloudのオートスケール改善 – 時間帯別制御、TiKVへの拡張、運用の自動化

2026年10月08日に「メルカリ」が公開したITニュース「TiDB Cloudのオートスケール改善 – 時間帯別制御、TiKVへの拡張、運用の自動化」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

TiDB Cloudのオートスケール機能が改善された。アクセス量に応じてデータベース性能を自動調整するこの機能は、時間帯別制御、主要部分TiKVへの拡張、運用の自動化に対応し、効率的で安定したデータベース運用をより簡単に実現する。

ITニュース解説

メルカリが利用するデータベースサービス「TiDB Cloud」におけるオートスケール機能の改善について解説する。TiDB Cloudは、高いスケーラビリティと可用性を持つ分散型データベースで、メルカリのような大規模サービスにおいて、膨大なデータやユーザーからのアクセスを安定して処理するために利用されている。ここで「オートスケール」とは、データベースへのアクセス量や負荷に応じて、必要な計算資源(サーバーのCPUやメモリなど)の量を自動で増やしたり減らしたりする機能のことだ。

なぜオートスケールが重要かというと、データベースへのアクセスは常に一定ではないからだ。例えば、セール期間中やテレビCM放送後など、特定の時間にアクセスが急増することがある。このような時、手動でサーバーの台数を増やしたり設定を変更したりするのは大変な労力と時間がかかり、対応が遅れればサービスの応答速度が低下したり、最悪の場合サービスが停止してしまう可能性もある。逆に、アクセスが少ない時間帯に必要以上の資源を確保し続けると、無駄なコストが発生してしまう。オートスケールは、この問題を自動で解決し、サービスの安定稼働とコスト効率の両立を目指すものだ。

しかし、これまでのTiDB Cloudのオートスケール機能にはいくつかの課題があった。一つは、急激な負荷増加に対して、リソースの増強が間に合わないことがあった点だ。リソースを増やし始めるには、システムが負荷を検知してから判断し、実際に増やすまでの時間が必要になる。このタイムラグにより、一時的にサービスの性能が低下する可能性があった。もう一つの課題は、データベースを構成する主要なコンポーネントの一つであるTiKVに対して、オートスケールが適用されていなかった点だ。TiDB Cloudは、SQL処理を行う「TiDB」、分析処理を行う「TiFlash」、そして実際にデータを保存する「TiKV」という複数のコンポーネントで構成されている。従来のオートスケールはTiDBとTiFlashには対応していたが、データの大部分が格納されるTiKVに対応していなかったため、データベース全体として最適なスケーリングが実現できていなかった。これにより、TiKVがボトルネックとなり、全体の性能に影響を与えることがあった。

今回の改善では、これらの課題を解決するために大きく三つの取り組みが行われた。一つ目は「時間帯別オートスケール制御の導入」、二つ目は「TiKVコンポーネントへのオートスケール拡張」、三つ目は「運用の自動化」である。

まず、「時間帯別オートスケール制御」について説明する。これは「Predictive Scaling(予測型スケーリング)」とも呼ばれ、過去のアクセスパターンや事前に予測される負荷変動に基づいて、あらかじめ決められた時間帯にリソースを増減させる機能だ。例えば、毎日ランチタイムにアクセスが急増することが分かっていれば、その時間より少し前にあらかじめリソースを増やしておく。これにより、負荷が実際に高まる前に準備が完了するため、急激なアクセス増加に対しても安定した性能を維持できるようになった。メルカリでは、これを実現するために、定期的に実行されるプログラム(Cron)と、データベースのCPU使用率などの監視指標(Prometheus)を組み合わせて利用している。これにより、特定の時間帯に自動でリソースを増やし、不要になった時間帯には減らすというきめ細やかな制御が可能になった。これは、システムが負荷を検知してから対応する従来のリアクティブな(反応型の)スケーリングに対し、よりプロアクティブな(事前対応型の)スケーリングと言える。

次に、「TiKVコンポーネントへのオートスケール拡張」について解説する。前述の通り、TiKVはTiDB Cloudにおいて実際のデータをKey-Value形式で保存する非常に重要なコンポーネントである。これまではTiKVのリソースは固定で運用されることが多く、ストレージ容量や処理能力が不足した場合には手動での対応が必要だった。今回の改善により、TiKVについても自動でリソースを調整できるようになり、データベース全体としてのスケーラビリティが大幅に向上した。メルカリでは、TiKVのストレージ使用率やCPU使用率といった指標を監視し、これらの値が一定のしきい値を超えた場合に自動でリソースを増やす設定にしている。TiKVのリソースを増減させる際には、保存されているデータの再配置(リバランス)が必要となり、これには時間がかかる場合があるため、その点も考慮した設計が重要となる。この機能により、データ量が増加しても安定して処理を続けられるだけでなく、不要なリソースを削減しコスト最適化にも貢献する。

最後に、「運用の自動化と効率化」について説明する。TiDB Cloudのオートスケール設定やその他のインフラ設定を、手動ではなくコードで管理する「Infrastructure as Code (IaC)」の考え方を導入している。具体的には、Terraformというツールを使って、データベースの構成やオートスケールのルールなどをコードとして記述し、GitHub Actionsという自動化ツールを使ってそのコードをTiDB Cloudに適用している。これにより、手作業によるミスを防ぎ、設定変更の履歴を追跡しやすくしたり、必要に応じて以前の状態に戻しやすくしたりすることが可能になる。また、開発環境、ステージング環境、本番環境といった複数の環境に対して、同じ設定を確実に適用できるため、環境間での差異によるトラブルも減らせる。さらに、データベースの異常を検知するためのアラート設定も自動化され、PagerDutyといったツールを通じて担当者に速やかに通知される仕組みも整備された。これらの自動化により、運用チームの負担を大幅に軽減し、より重要な業務に集中できるようになった。

これらの改善により、メルカリのTiDB Cloudは、アクセスが集中するピーク時でもサービスの安定稼働を維持できるようになり、ユーザー体験の向上に貢献している。また、不要なリソースを削減することでコストを最適化し、運用の手間も大幅に軽減された。システムエンジニアを目指す上では、このように、サービスの安定性、コスト効率、運用効率を同時に高めるための自動化やスケーリングの技術が非常に重要であることが理解できるだろう。データベースはシステムの心臓部であり、その効率的な運用はサービス成功の鍵を握っている。

関連コンテンツ