TiDB Cloud BYOC マルチリージョンデプロイ
TiDB Cloud BYOC は、複数の AWS リージョンにまたがるデプロイをサポートしています。同じ IAM ロールをリージョン間で再利用できるため、追加のリージョンを有効化する際に BYOC IAM ロールを再作成する必要はありません。
マルチリージョンデプロイには、次の 2 つのシナリオがあります。
- 複数リージョンを前提とした新規デプロイについては、シナリオ 1: 新規マルチリージョンデプロイ を参照してください。
- 既存の BYOC デプロイにリージョンを追加する場合は、シナリオ 2: 既存の BYOC デプロイへのリージョン追加 を参照してください。
リソース計画: 共有リソースと専用リソース
複数リージョンを設定する前に、次の基盤リソースをリージョン間で共有するか、各リージョン専用にするかを決定してください。
- AWS プライベート認証局 (PCA)
- TiDB 用の Route 53 ホストゾーン
共有リソース
同じ PCA と TiDB ホストゾーンを、すべての有効化されたリージョンで共有できます。
この構成では、標準パラメータを使用してプライマリ PCA と TiDB ホストゾーンを指定し、対応する --additional-* パラメータは省略します。
専用リソース
追加リージョンごとに、個別の PCA と TiDB ホストゾーンを用意できます。
プライマリリージョンのリソースは、標準パラメータで指定します。
--pca-arn--tidb-hz-id
追加リージョンのリソースは、次のパラメータで指定します。
--additional-pca-arns--additional-tidb-hz-ids
追加リージョンが 2 つ以上ある場合は、同じリージョン順でカンマ区切りのリストとして値を指定してください。
混在リソース
共有リソースと専用リソースは組み合わせて使用できます。
たとえば、すべてのリージョンで同じ PCA を共有しつつ、TiDB ホストゾーンはリージョンごとに分けることができます。
各追加リソースパラメータは独立しています。対応するリソースをプライマリリージョンと共有する場合は、そのパラメータを省略してください。
シナリオ 1: 新規マルチリージョンデプロイ
まだどの BYOC リージョンもデプロイしておらず、最初から複数リージョンをデプロイする予定がある場合は、このセクションを使用してください。
tidbcloud-byoc-setup.sh を実行して、BYOC 環境を初期化し、必要なリソースを設定します。
すべてのリージョンで同じリソースを共有する
すべてのリージョンで同じ PCA と TiDB ホストゾーンを共有する場合は、標準のセットアップコマンドを実行します。
bash tidbcloud-byoc-setup.sh \
--control-plane-id <ControlPlaneAccountId> \
--clinic-id <ClinicAccountId> \
--tidb-hz-id <SharedTidbHostedZoneId> \
--pca-arn <SharedPCAArn>
--additional-* パラメータは不要です。
追加リージョンで専用リソースを使用する
プライマリリージョンのリソースは標準パラメータで指定し、追加リージョンのリソースは --additional-* パラメータで指定します。
bash tidbcloud-byoc-setup.sh \
--control-plane-id <ControlPlaneAccountId> \
--clinic-id <ClinicAccountId> \
--tidb-hz-id <Region1TidbHostedZoneId> \
--pca-arn <Region1PCAArn> \
--additional-tidb-hz-ids <Region2TidbHostedZoneId>,<Region3TidbHostedZoneId> \
--additional-pca-arns <Region2PCAArn>,<Region3PCAArn>
すべてのカンマ区切りリスト内の値は、同じリージョン順に従う必要があります。たとえば、次のとおりです。
- 1 番目の値はリージョン 2 を表します。
- 2 番目の値はリージョン 3 を表します。
共有リソースと専用リソースを混在させる
次の例では、1 つの PCA をすべてのリージョンで共有しつつ、TiDB ホストゾーンは専用にしています。
bash tidbcloud-byoc-setup.sh \
--control-plane-id <ControlPlaneAccountId> \
--clinic-id <ClinicAccountId> \
--tidb-hz-id <Region1TidbHostedZoneId> \
--pca-arn <SharedPCAArn> \
--additional-tidb-hz-ids <Region2TidbHostedZoneId>,<Region3TidbHostedZoneId>
PCA は共有されるため、--additional-pca-arns は省略します。
シナリオ 2: 既存の BYOC デプロイへのリージョン追加
すでに 1 つ以上の BYOC リージョンがデプロイされており、1 つ以上の新しいリージョンを追加したい場合は、このセクションを使用してください。
tidbcloud-byoc-setup.sh を再度実行しないでください。
既存の CloudFormation スタックを更新するには、tidbcloud-byoc-update.sh を使用します。既存の IAM ロールと、以前に設定したスタックパラメータが再利用されます。
リージョンを追加する前に
更新スクリプトを実行する前に、次の点を確認してください。
- 追加する AWS リージョンを確認します。
- 新しいリージョンのアベイラビリティゾーンを選択します。リージョナルリソースプールには、少なくとも 3 つの利用可能なアベイラビリティゾーンが必要です。新しいリージョンでリージョナルリソースプールを作成する予定がある場合は、そのリージョンに対して少なくとも 3 つの利用可能なアベイラビリティゾーンを選択してください。
- 各新規リージョンの O11Y CIDR と、作成予定のリソースプール用のリソースプール CIDR を計画します。異なるリージョンで同じ O11Y CIDR を使用することは可能です。ただし、メトリクス統合を使用して Grafana を複数リージョンに接続する場合は、それらのリージョンでは重複しない O11Y CIDR を使用してください。
- 各新規リージョンについて、次のいずれにするかを確認します。
- 既存の PCA と TiDB ホストゾーンを共有する
- 専用の PCA と TiDB ホストゾーンを使用する
- 各新規リージョンで AWS サービスクォータを確認し、必要に応じて引き上げます。
- 新規リージョンに関する情報を TiDB Cloud の担当者に共有します。
各新規リージョンについて、O11Y CIDR とリソースプール CIDR は次のいずれとも重複してはいけません。
- 同じリージョン内の O11Y CIDR
- 同じリージョン内の既存のリソースプール CIDR
- VPC Peering または VPN を通じて接続される既存のアプリケーション VPC、オンプレミスネットワーク、または VPN ネットワーク
- リソースプールがクロスリージョンレプリケーションに参加する場合、他リージョンのリソースプール CIDR
異なるリージョンのリソースプール CIDR は重複していてもかまいません。ただし、クロスリージョン接続またはレプリケーションが必要なリソースプールには、重複しない CIDR を使用してください。
既存の PCA と TiDB ホストゾーンを共有する
新しいすべてのリージョンで、既存デプロイですでに使用している PCA と TiDB ホストゾーンを共有する場合は、このオプションを使用します。
追加のリソースパラメータは不要です。
bash tidbcloud-byoc-update.sh \
--stack all
既存のリソースは、すべての有効化されたリージョンで引き続き使用されます。
新しいマルチリージョン用リソース値が不要な場合、単純な --stack all 更新は安全です。
新しいリージョンで専用リソースを使用する
新しいリージョンで専用の PCA または TiDB ホストゾーンが必要な場合は、このオプションを使用します。
新しいリージョン用のリソースを、対応する --additional-* パラメータで指定します。
bash tidbcloud-byoc-update.sh \
--stack all \
--additional-pca-arns <Region2PCAArn>,<Region3PCAArn> \
--additional-tidb-hz-ids <Region2TidbHostedZoneId>,<Region3TidbHostedZoneId>
各パラメータは独立しています。対応するリソースを既存リージョンと共有する場合は、そのパラメータを省略してください。
すべてのカンマ区切りリスト内の値は、同じリージョン順に従う必要があります。たとえば、次のとおりです。
- 各リストの 1 番目の値はリージョン 2 を表します。
- 各リストの 2 番目の値はリージョン 3 を表します。
共有リソースと専用リソースを組み合わせて使用する
新しいリージョンでは、一部の既存リソースを共有しつつ、他のリソースには専用リソースを使用できます。
たとえば、既存の PCA を共有しながら、新しいリージョンには専用の TiDB ホストゾーンを使用する場合は、次のようにします。
bash tidbcloud-byoc-update.sh \
--stack all \
--additional-tidb-hz-ids <Region2TidbHostedZoneId>,<Region3TidbHostedZoneId>
既存の PCA は共有されるため、--additional-pca-arns は省略します。
リソース戦略は新しいリージョンごとに異なっていてもかまいません。ただし、各 --additional-* パラメータに指定する値は、同じリージョン順に対応している必要があります。
複数のリージョンがすでに存在する場合にリージョンを追加する
既存のデプロイにすでに複数のリージョンが含まれている場合は、同じ更新手順を使用してさらにリージョンを追加します。
マルチリージョンのリソース値は CloudFormation スタックに保存され、今後の更新時に再利用されます。更新コマンドを実行する際は、追加するリージョンで必要となる新規または変更済みのリソース値を指定してください。
たとえば、リージョン 1 がプライマリリージョンで、リージョン 2 はすでに設定済み、さらに専用リソースを使用してリージョン 3 を追加する場合は、次のようになります。
bash tidbcloud-byoc-update.sh \
--stack all \
--additional-pca-arns <Region2PCAArn>,<Region3PCAArn> \
--additional-tidb-hz-ids <Region2TidbHostedZoneId>,<Region3TidbHostedZoneId>
以前に設定したリソース値と新たに追加したリソース値が、正しいリージョン順のままになっていることを確認してください。
リージョンのデプロイを完了する
CloudFormation スタックを更新すると、新しいリージョンに必要なアカウントレベルの権限とリソース設定が準備されます。ただし、これだけではリージョンのインフラストラクチャのデプロイは完了しません。
更新が成功したら、次の手順を実行します。
- スクリプトの実行結果を TiDB Cloud の担当者に共有します。
- TiDB Cloud が更新された IAM とリージョンのリソース設定を検証します。
- TiDB Cloud が新しいリージョン向けの自動インフラストラクチャプロビジョニングを開始します。
- プロビジョニングの完了後、各新規リージョンについてセクション 5 で説明されている共同検証を実施します。