はじめに
Google Cloud Platform(GCP) Google Cloud SQLのインスタンスを、Terraformを使用して作成します。
インスタンスの作成後、インスタンスの変更や削除を行う手順も記載します。
GCPのマニュアルを併せて参考にしていただけると作業がスムーズに進むと思います。
(参考情報)
google_sql_database_instance – Terraform –
Google Cloud SQL
1. インスタンスを作成する
1.1. tfvarsファイルを作成する。
# cat config.tfvars credentials = "/var/credentials/account.json" project = "xxxxx-xxxxx-xxxxx" region = "asia-northeast1"
1.2. tfファイルを作成する。
# cat gcp.tf variable "credentials" {} variable "project" {} variable "region" {} provider "google" { credentials = "${file("${var.credentials}")}" project = "${var.project}" region = "${var.region}" } resource "google_sql_database_instance" "master" { name = "master1" database_version = "MYSQL_5_7" region = "${var.region}" settings { tier = "db-f1-micro" } } resource "google_sql_database" "database" { name = "users-db" instance = "${google_sql_database_instance.master.name}" charset = "sjis" collation = "sjis_japanese_ci" } resource "google_sql_user" "users" { name = "root" instance = "${google_sql_database_instance.master.name}" host = "%" password = "Curry000" }
1.3. Terraformを初期化する。
# terraform init Initializing provider plugins...
1.4. Terraformの計画をたてる。
# terraform plan -out=tfplan -var-file=config.tfvars To perform exactly these actions, run the following command to apply: terraform apply "tfplan"
1.5. インスタンスを作成する。
# terraform apply "tfplan" Apply complete! Resources: 3 added, 0 changed, 0 destroyed.
1.6. インスタンスの状態を確認する。
# terraform show google_sql_user.users: id = master1/root host = % instance = master1 name = root password = Curry000 project = bright-crossbar-126909
1.7. インスタンスに接続できることを確認する。
# gcloud sql connect master1 --user=root Whitelisting your IP for incoming connection for 5 minutes...done. Connecting to database with SQL user [root].Enter password: ******** MySQL [(none)]>
2. インスタンスを変更する
passwordにCurry000changeを設定する。
2.1. tfファイルを作成する。
# cat gcp.tf variable "credentials" {} variable "project" {} variable "region" {} provider "google" { credentials = "${file("${var.credentials}")}" project = "${var.project}" region = "${var.region}" } resource "google_sql_database_instance" "master" { name = "master1" database_version = "MYSQL_5_7" region = "${var.region}" settings { tier = "db-f1-micro" } } resource "google_sql_database" "database" { name = "users-db" instance = "${google_sql_database_instance.master.name}" charset = "sjis" collation = "sjis_japanese_ci" } resource "google_sql_user" "users" { name = "root" instance = "${google_sql_database_instance.master.name}" host = "%" password = "Curry000change" }
2.2. Terraformの計画をたてる。
# terraform plan -out=tfplan -var-file=config.tfvars ~ google_sql_user.users password: => (attribute changed)
2.3. インスタンスを変更する。
# terraform apply "tfplan" password: "" => ""
2.4. インスタンスの状態を確認する。
# terraform show google_sql_user.users: id = master1/root host = % instance = master1 name = root password = Curry000change project = bright-crossbar-126909
2.5. インスタンスに接続できることを確認する。
# gcloud sql connect master1 --user=root Whitelisting your IP for incoming connection for 5 minutes...done. Connecting to database with SQL user [root].Enter password: ******** MySQL [(none)]>
3. インスタンスを削除する
3.1. インスタンスを削除する。
# terraform destroy -force -var-file=config.tfvars Destroy complete! Resources: 3 destroyed.
3.2. インスタンスが削除されていることを確認する。
# terraform show
まとめ
Google Cloud Platformの発展に貢献できれば幸いです。
コメントを残す