Google Cloud SQL for MySQL インスタンス作成 – Terraform –

はじめに

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の発展に貢献できれば幸いです。

 

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中