TiDB CloudのServerlessとDedicatedの機能差分で重要そうな差分を調べてみた

2023.12.01

こんにちは、ゲームソリューション部のsoraです。
今回は、TiDB CloudのServerlessとDedicatedの機能差分で重要そうな差分を調べてみたことについて書いていきます。

はじめに

以下のTiDB公式ページに機能差分の概要が記載されています。
TiDB Cloudの価格とプラン - 世界初ChatGPTを搭載したデータベース - PingCAP株式会社

サーバレスでの機能制限の詳細についても以下に記載されています。
TiDB サーバーレスの制限とクォータ

今回はこれらのServerlessにおける機能制限を見つつ、導入判断にかかわりそうな機能について書いていきます。

ServerlessかDedicatedか

簡単にServerlessかDedicatedか、どちらがおすすめなのかを記載します。

Serverlessがおすすめな方
・機能制限が許容できる(使いたい機能が制限されていない)
・マルチテナントでも問題ない
・無料枠を使って検証用途でとりあえず試してみたい
・TiDBのコンポーネント数の調整をしたくない(自動でいい感じにやってほしい)

Serverlessの特徴は、サイジングや負荷に応じてオートスケールするためノードの調整が不要であり、運用が楽なことです。無料枠もあるため、気軽に触ってみたい方にもおすすめです。
GitHubのイベントを収集をしているOSS InsightもServerlessで動いていることから、大規模データにも対応できていることがわかります。

Dedicatedがおすすめな方
・機能を制限なく使いたい
・シングルテナントが良い
・本番環境で利用したい

Dedicatedの特徴は、TiDBの持つ機能をフルに利用できて、専用の環境を使用できることです。
現状で本番環境ではDedicatedが利用されている事例が多いと思います。

Serverlessで利用できない主な機能

Serverlessで利用できない機能で、特に気になる部分を見ていきたいと思います。
検証用途で触ってみるレベルでは気にならないとは思いますが、本番導入時には影響の有無は確認すべき部分だと思います。

Serverlessで利用できない機能を挙げていますが、特にこれらの機能を利用しないのであれば、Serverlessの方が圧倒的に運用が楽です。
Dedicatedでは負荷に合わせてノードを追加したり、コンポーネントのサイジングが必要になりますが、Serverlessであれば不要になります。

VPCピアリングが使用できず、IPアクセスリストの使用ができない

Serverlessでは、PrivateLinkは使用できるものの、VPCピアリングは使用できません。
また、IPアドレスでアクセスに制限をかけるIPアクセスリストの利用もできません。

TiDBを利用するシステムの要件などで、DB側にてIPアドレスでアクセス制限をかけたい要望がある場合には、Dedicatedを使う必要があります。
要件次第ですが、接続するアプリをAWSやGCP上に構築してれば、VPC間の通信でありそこまで気にする部分でもないのかなとは思います。

データベース監査ログが使用できない

ユーザアクセスや操作の詳細の履歴をログに記録することができません。
ちなみに、Dedicatedではもちろん使用できるのですが、以下にあるようにリソース消費の関係で導入するかどうかは検討する必要があるとのことです。

注記:監査ログはクラスターのリソースを消費するため、クラスターを監査するかどうかは慎重に検討してください。

サードパーティのメトリクス統合(ベータ版)が利用できない

ベータ版の機能にはなりますが、DataDogやNewRelic、Prometheus/Grafanaとの統合ができません。
最近ではサードパーティでメトリクスを一括管理していることが多いと思うため、多少影響がある部分かなと思います。

Changefeed(ベータ版)が使えない

Changefeedとは、TiDB Cloudから他のMySQLのDBやS3、Apache Kafkaなどへデータをストリーミングする機能です。
他のTiDB Cloudのクラスターなどへバックアップ用にレプリケーションを取るといったことができません。
Serverlessでも日次の自動バックアップがあるため、そちらでまかなえる場合は問題ないかと思います。

最後に

今回は、TiDB CloudのServerlessとDedicatedの機能差分で重要そうな差分を調べてみたことを記事にしました。
どなたかの参考になると幸いです。