Open3

TiDB Cloud serverlessを試したメモ

yunayuna

TiDBとは

ハイブリッド トランザクションおよび分析処理 (HTAP) ワークロードをサポートするオープンソースの分散 SQL データベースです。

アーキテクチャとしては、いくつかのレイヤーに分かれていて、
多少乱暴に言うと以下の3つで構成されている。

  • SQLをパースし前段処理を行うTiDB
  • 各ストレージへの分散処理周りを担うPD
  • 永続化などの、ストレージ周りを担うTiKV
    https://docs.pingcap.com/tidb/stable

TiDB Cloudとは

TiDB をクラウドで利用できる、フルマネージドの Database-as-a-Service (DBaaS)。
従量課金で自動スケールのServerless、固定でリソースを確保して利用するDedicated が存在する
https://docs.pingcap.com/tidbcloud

今回は、従量課金で無料枠も豊富に用意されている、Serverlessをお試し。

yunayuna

注意ポイント Serverlessで利用できるTiDB verは最新ではない

最新はTiDB7.5(2024/1/24時点)でMySQL8.0への対応が売りだが、6.6時点ではMySQL8.0対応はされていない。

TiDB Cloud Serverless上で、 Clusterを作成すると、自動的にTiDB ver6.6.0で作成された(2024/1/24時点)

例: utf8mb4_0900_ai_ci が使えない

最新のTiDBでは利用可能だが、
https://docs.pingcap.com/tidb/stable/character-set-and-collation#character-set-and-collation

TiDB Serverless (TiDB ver6.6)では対応していない
SHOW COLLATION;

yunayuna

publicでアクセスさせるのはセキュリティ上危険なので
TiDB cloud上で、public accessをdisabledにして、AWSのPrivate経由で、awsのvpc内からアクセスさせます。

public accessを、設定からdisabledに

参考資料

https://docs.pingcap.com/tidbcloud/set-up-private-endpoint-connections-serverless

TiDBのコンソールのClouster情報→Connect情報を見ると、privateアクセスのための情報が確認できる

Service Name:
com.amazonaws.vpce.ap-northeast-1.vpce-svc-xxxxxxxxxxxxxxx

Availability Zone ID:
apne1-az4

Region ID:
regions/aws-ap-northeast-1

また、TiDBへのアクセス情報も取得できる

HOST:
gateway01-privatelink.ap-northeast-1.prod.aws.tidbcloud.com

PORT:
4000

USERNAME:
XXXXXXXXXXX.root

PASSWORD:
<PASSWORD>
DATABASE:
test

このService Nameを使ってVPCエンドポイントを作成する。
注意ポイントは以下

  • 「サービスカテゴリ:その他のエンドポイントのサービス」として作成する
  • サービス名を入力して、検証が通れば先に進める
  • VPC を選択する際に、 [追加設定] を展開し、[DNS 名を有効にする] チェックボックスを選択する
     (この設定をすると、上記のgateway01-privatelink.ap-northeast-1.prod.aws.tidbcloud.com が通るようになる)
  • サブネットは、TiDBクラスタが配置されているアベイラビリティゾーンと一致することが必要
  • 選択するセキュリティグループは、ポート4000でEC2インスタンスからのインバウンドアクセスを許可していること