0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[Terraform][google provider]Spannerメモ

Last updated at Posted at 2024-09-06

前提

google provicer v5.36.0のリファレンスを元にしたものになります。

TerraformでSpanner上にインスタンスを作成し、さらにそのインスタンスの上にデータベースを作成する設定をしたかった時に書きためてたメモです。

Resources

google_spanner_instance

Cloud Spannerインスタンスの設定。

公式リファレンス

必須の引数

  • name: インスタンスのユニークID。インスタンス作成後の変更不可。6〜30文字で指定。与えなかった場合はtf-から始まるランダムな文字列が設定される。
  • config: インスタンスの地理的な配置および、このインスタンスに含まれるデータベース群のレプリケーションの設定を定義するインスタンス構成の名前(設定できる値は、リージョンと似ている)。
  • display_name: GCPコンソールで表示されるインスタンスの説明的な名前。プロジェクトごとに一意である必要がある。

任意の引数

  • num_nodes: インスタンスに割り当てるノードの数。num_node or processing_units のどちらか一方を指定する必要あり。
  • processing_units: インスタンスに割り当てる処理ユニット(PU)の数。num_node or processing_units のどちらか一方を指定する必要あり。1ノード = 1000PU。
  • labels: 各リソースに存在するアレ。
  • autocaling_config: オートスケーリング設定(2024/08/23時点でプレビュー版の機能であるため割愛
    • autoscaling_limits
      • min_processing_units
      • max_processing_units
      • min_nodes
      • max_nodes
    • autoscaling_targets
      • high_priority_cpu_utilization_percent
      • storage_utilization_percent
  • project: リソースが所属するプロジェクトのID。デフォルトではプロバイダーのプロジェクトIDが使われる。
  • force_destroy: インスタンスを削除する際に、全てのバックアップも削除するか否かをtrue/falseで設定。

コンソールでSpannerインスタンスを作成する場合とgoogle providerの引数名との対応

image.png

  • display_name: インスタンス名
  • name: インスタンスID

image.png

  • config: リージョン/デュアルリージョン/マルチリージョンのラジオボタン + 構成を選択のドロップダウン

image.png

  • num_nodes, processing_units: ノード/処理ユニットのラジオボタン
  • autoscaling_config: 自動スケーリング(プレビュー)

google_spanner_instance_config

カスタム構成を設定したい場合に。割愛。

google_spanner_instance_iam

他のリソースと同様に、以下3つで設定可能。
Terraformでのリソースに対するIAM設定は、[Terraform][google provider]IAMまとめの通り共通。

  • google_spanner_instance_iam_policy
  • google_spanner_instance_iam_binding
  • google_spanner_instance_iam_member

設定対象のSpannerインスタンスは、instance(インスタンス名)で指定する。

公式リファレンス

google_spaner_database

Spannerデータベースの設定。

公式リファレンス

必須の引数

  • name: データベースのユニークID。データベース作成後の変更不可。正規表現的に[a-z][-a-z0-9]*[a-z0-9](="<a〜zから1文字><a〜z,0〜9,-からn文字(n>=0)><a〜zor0〜9から1文字>")で設定可能。
  • instance: データベースを作成するインスタンス名(google_spanner_instance.nameに相当)。

任意の引数

  • version_retentiion_period: データベースの保持期間。 保持期間は 1時間から7日の間でなければならず、日、時、分、または秒単位で指定。 デフォルトは1hである。
  • ddl(任意): 新しく作成されたデータベース内で実行するDDL文。 テーブルやインデックスなどを作成できる。 DDLの実行でエラーが発生した場合、データベースは作成されない。
  • encryption_config: データベース暗号化設定。
    • kms_key_name(必須): データベースの暗号化に使用するKMSキーの完全修飾名。KMSキーはSpannerデータベースと同じロケーションに存在する必要がある。
  • database_dialect: Spannerデータベースの方言。GOOGLE_STANDARD_SQL or POSTGRESQL の二択。デフォルトはGOOGLE_STANDARD_SQL
  • enable_drop_protection: データベースのDROPを保護するかどうか。デフォルトはfalsetrueに設定すると、terraformに限らずすべてのインターフェースからデータベースの削除を保護する。データベースの親インスタンスの削除も防ぐことができる。
  • project: リソースが所属するプロジェクトのID。デフォルトではプロバイダーのプロジェクトIDが使われる。
  • deletion_protection: Terraformがデータベースを破壊しないようにするか。デフォルトはtrue。terraform destroyやterraform applyによって、データベースの削除を実行しようとした場合、deletion_protectionfalseになっていなければコマンドが失敗するようになる。

google_spanner_database_iam

他のリソースと同様に、以下3つで設定可能。Terraformでのリソースに対するIAM設定は、 [Terraform][google provider]IAMまとめの通り共通。

  • google_spanner_database_iam_policy
  • google_spanner_database_iam_binding
  • google_spanner_database_iam_member

設定対象のデータベースは、instance(Spannerのインスタンス名)とdatabase(データベース名)で指定する。

公式リファレンス

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?