Terraform は、クラウドインフラストラクチャおよびリソースを安全かつ効率的にプレビュー、プロビジョニング、管理できるオープンソースツールです。Tablestore は Terraform と統合されています。このトピックでは、Terraform を使用して Tablestore インスタンスを作成する方法について説明します。
このチュートリアルのサンプルコードは、ワンクリックで実行できます。今すぐ実行
前提条件
-
セキュリティリスクを最小限に抑えるため、このチュートリアルを完了するために必要な最小限の権限を持つ RAM ユーザーを使用してください。詳細については、「RAM ユーザーの作成」および「RAM ユーザーへの権限付与」をご参照ください。次のポリシーは、このチュートリアルに必要な最小限の権限を付与します。
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "ots:GetInstance", "ots:BindInstance2Vpc", "ots:ListVpcInfoByInstance", "ots:UnbindInstance2Vpc", "ots:DeleteInstance", "ots:InsertInstance", "ots:UpdateInstance", "ots:ListInstance" ], "Resource": "*" } ] } -
Terraform の実行環境を準備します。以下のいずれかの方法を使用できます。
-
Explorer:Alibaba Cloud は Terraform 向けのオンライン実行環境を提供しています。インストールせずにログインして Terraform を使用・実験できます。これは、Terraform を試用およびデバッグするための迅速で便利かつ無料な方法です。
-
Terraform を使用したリソースの迅速な作成:Cloud Shell には Terraform が事前にインストールされており、認証情報も事前設定されています。Cloud Shell で直接 Terraform コマンドを実行できます。この方法により、Terraform に迅速かつ便利で低コストでアクセスできます。
-
Terraform のインストールと設定:ネットワーク接続が不安定な場合やカスタム開発環境が必要なシナリオに適しています。
-
使用リソース
-
alicloud_ots_instance:Tablestore インスタンス。
Tablestore インスタンスの作成
-
作業ディレクトリを作成し、その中に main.tf という名前の設定ファイルを作成して、次のコードを main.tf にコピーします。
variable "name" { default = "tf-example" } variable "region" { default = "cn-hangzhou" } provider "alicloud" { region = var.region } resource "random_integer" "default" { min = 10000 max = 99999 } # Tablestore instance resource "alicloud_ots_instance" "default" { name = "${var.name}-${random_integer.default.result}" # Instance name description = var.name # Instance description accessed_by = "Vpc" # Network type for instance access tags = { # Instance tags Created = "TF" For = "Building table" } } -
次のコマンドを実行して、Terraform の実行環境を初期化します。
terraform init次の出力が表示された場合、Terraform の初期化が成功しています。
Terraform has been successfully initialized! You may now begin working with Terraform. Try running "terraform plan" to see any changes that are required for your infrastructure. All Terraform commands should now work. If you ever set or change modules or backend configuration for Terraform, rerun this command to reinitialize your working directory. If you forget, other commands will detect it and remind you to do so if necessary. -
次のコマンドを実行して、構成を適用します。
terraform applyプロンプトが表示されたら、
yesと入力し、Enter キーを押します。コマンドの完了まで待ちます。次の出力が表示された場合、リソースの適用が成功しています。You can apply this plan to save these new output values to the Terraform state, without changing any real infrastructure. Do you want to perform these actions? Terraform will perform the actions described above. Only 'yes' will be accepted to approve. Enter a value: yes Apply complete! Resources: 2 added, 0 changed, 0 destroyed. -
結果を確認します。
Terraform show
作業ディレクトリで次のコマンドを実行し、Terraform によって作成されたリソースの詳細を表示します。
terraform show
Tablestore コンソール
Tablestore コンソール にログインします。 ページで、作成したインスタンスを検索して表示します。

リソースの解放
Terraform によって作成または管理されたリソースが不要になった場合は、次のコマンドを実行します。terraform destroy コマンドの詳細については、「一般的なコマンド」をご参照ください。
terraform destroy
実行中、Terraform は削除対象のリソースをプレビューします。削除を確定するには、プロンプトで yes と入力し、Enter キーを押します。コマンドの完了まで待ちます。次の出力が表示された場合、リソースの削除が成功しています。
Plan: 0 to add, 0 to change, 2 to destroy.
Do you really want to destroy all resources?
Terraform will destroy all your managed infrastructure, as shown above.
There is no undo. Only 'yes' will be accepted to confirm.
Enter a value: yes
...
Destroy complete! Resources: 2 destroyed.
完全な例
このチュートリアルのサンプルコードは、ワンクリックで実行できます。今すぐ実行
サンプルコード
より完全な例については、より完全な例 の該当クラウドサービスのフォルダをご覧ください。
よくある質問
-
Terraform で複数のクラウドサービスをプロビジョニングする際に、Tablestore インスタンスの作成および削除の効率を向上させるにはどうすればよいですか?
-
ユースケース:ワークフローは Tablestore インスタンスの作成に成功しましたが、後続のリソースの作成に失敗しました。ユーザーはワークフローをロールバックし、作成済みのインスタンスを削除してから再度ワークフローを実行しようとしています。しかし、Tablestore インスタンスの削除には時間がかかり、かつインスタンス名はリージョン内で一意である必要があります。そのため、元のインスタンスが削除されるまでは、同じ名前で再度ワークフローを実行できません。
-
ソリューション:Tablestore インスタンス名に乱数サフィックスまたは自動増分 ID を付加することで、各ワークフロー実行時に一意の名前を確保します。これにより、ワークフローが失敗してロールバックおよび再実行が必要な場合でも、直前のインスタンスの削除を待たずにすぐにワークフローを再実行できます。