Open3
TiDB Cloud serverlessを試したメモ
TiDBとは
ハイブリッド トランザクションおよび分析処理 (HTAP) ワークロードをサポートするオープンソースの分散 SQL データベースです。
アーキテクチャとしては、いくつかのレイヤーに分かれていて、
多少乱暴に言うと以下の3つで構成されている。
- SQLをパースし前段処理を行うTiDB
- 各ストレージへの分散処理周りを担うPD
- 永続化などの、ストレージ周りを担うTiKV
https://docs.pingcap.com/tidb/stable
TiDB Cloudとは
TiDB をクラウドで利用できる、フルマネージドの Database-as-a-Service (DBaaS)。
従量課金で自動スケールのServerless、固定でリソースを確保して利用するDedicated が存在する
今回は、従量課金で無料枠も豊富に用意されている、Serverlessをお試し。
注意ポイント 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では利用可能だが、
TiDB Serverless (TiDB ver6.6)では対応していない
SHOW COLLATION;
publicでアクセスさせるのはセキュリティ上危険なので
TiDB cloud上で、public accessをdisabledにして、AWSのPrivate経由で、awsのvpc内からアクセスさせます。
public accessを、設定からdisabledに
参考資料
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インスタンスからのインバウンドアクセスを許可していること