クラスタリソースをサーバーレスまたは専用クラスタリソースに移行する

TiDB Cloud Terraform Provider v0.4.0 以降では、 tidbcloud_clusterリソースがtidbcloud_serverless_clustertidbcloud_dedicated_cluster 2 つの新しいリソースに置き換えられます。TiDB TiDB Cloud Terraform Provider v0.4.0 以降のバージョンをご利用の場合は、このドキュメントに従ってtidbcloud_clusterリソースをtidbcloud_serverless_clusterまたはtidbcloud_dedicated_clusterリソースに移行できます。

ヒント:

このドキュメントの手順では、Terraform の構成生成機能を使用して、クラスターリソースの.tf構成を自動的に再作成することで、移行プロセスを簡素化します。詳細については、Terraform ドキュメントの構成の生成参照してください。

前提条件

ステップ1. 移行するtidbcloud_clusterリソースを特定する

  1. すべてのtidbcloud_clusterリソースを一覧表示します:

    terraform state list | grep "tidbcloud_cluster"
  2. 移行するターゲット クラスター リソースを選択し、後で使用するためにクラスターidを取得します。

    terraform state show ${your_target_cluster_resource} | grep ' id '

ステップ2. Terraform状態から既存のリソースを削除する

ターゲット クラスター リソースを Terraform 状態から削除します。

terraform state rm ${your_target_cluster_resource}

ステップ3. ターゲットクラスタリソースの構成を削除する

.tfファイルで、ターゲット クラスター リソースの構成を見つけて、対応するコードを削除します。

ステップ4. 新しいサーバーレスまたは専用クラスターリソースのインポートブロックを追加する

  • ターゲット クラスターがTiDB Cloud Serverless の場合は、次のインポート ブロックを.tfファイルに追加し、 example目的のリソース名に置き換え、 ${id} ステップ1から取得したクラスター ID に置き換えます。

    # TiDB Cloud Serverless import { to = tidbcloud_serverless_cluster.example id = "${id}" }
  • ターゲット クラスターがTiDB Cloud Dedicated の場合は、次のインポート ブロックを.tfファイルに追加し、 example目的のリソース名に置き換え、 ${id} ステップ1から取得したクラスター ID に置き換えます。

    # TiDB Cloud Dedicated import { to = tidbcloud_dedicated_cluster.example id = "${id}" }

ステップ5. 新しい構成ファイルを生成する

インポート ブロックに従って、新しいサーバーレスまたは専用クラスター リソースの新しい構成ファイルを生成します。

terraform plan -generate-config-out=generated.tf

上記のコマンドでは、既存の.tf名を指定しないでください。指定した場合、Terraform はエラーを返します。

ステップ6. 生成された構成を確認して適用する

生成された構成ファイルを確認し、ニーズを満たしていることを確認してください。必要に応じて、このファイルの内容を任意の場所に移動することもできます。

次に、 terraform apply実行してインフラストラクチャをインポートします。適用後の出力例は次のとおりです。

tidbcloud_serverless_cluster.example: Importing... tidbcloud_serverless_cluster.example: Import complete Apply complete! Resources: 1 imported, 0 added, 0 changed, 0 destroyed.

このページは役に立ちましたか?