Cloud Spanner dengan Terraform

1. Ringkasan

Terakhir Diperbarui: 23-07-2020

Apa itu Cloud Spanner?

Google Cloud Spanner adalah database yang sesuai dengan ACID dan didistribusikan secara global yang secara otomatis menangani replika, sharding, dan pemrosesan transaksi, sehingga Anda dapat dengan cepat melakukan penskalaan untuk memenuhi pola penggunaan apa pun dan memastikan kesuksesan produk Anda.

Fitur Utama

  • Database relasional, dibangun untuk penskalaan: Semua hal yang Anda harapkan dari database relasional—skema, kueri SQL, dan transaksi ACID—teruji serta siap diskalakan secara global.
  • Ketersediaan 99,999%: Cloud Spanner memberikan ketersediaan 99,999% yang terdepan di industri untuk instance multi-regional—10x lebih sedikit waktu henti dibandingkan empat sembilan—dan menyediakan replikasi yang transparan dan sinkron di seluruh konfigurasi region dan multi-region.
  • Sharding otomatis: Cloud Spanner mengoptimalkan performa dengan melakukan sharding data secara otomatis berdasarkan beban permintaan dan ukuran data. Hasilnya, Anda tidak perlu terlalu banyak memikirkan cara menskalakan database, sehingga dapat fokus pada penskalaan bisnis Anda.

Lihat semua fitur

Yang akan Anda pelajari

  • Cara menggunakan penyedia Terraform Google Cloud.
  • Menggunakan Terraform untuk membuat instance dan database Cloud Spanner.
  • Menggunakan Terraform untuk mengubah resource Cloud Spanner.
  • Menggunakan Terraform untuk menghapus resource Cloud Spanner.

2. Penyiapan dan Persyaratan

Penyiapan lingkungan mandiri

Jika belum memiliki Akun Google (Gmail atau Google Apps), Anda harus membuatnya. Login ke Google Cloud Platform console ( console.cloud.google.com) dan buat project baru:

50983ac3fdbbf8d0.png

ea581205026ca8e3.png

Ingat project ID, nama unik di semua project Google Cloud (maaf, nama di atas telah digunakan dan tidak akan berfungsi untuk Anda!) Project ID tersebut selanjutnya akan dirujuk di codelab ini sebagai PROJECT_ID.

Selanjutnya, Anda harus mengaktifkan penagihan di Konsol Cloud untuk menggunakan resource Google Cloud.

Menjalankan melalui codelab ini tidak akan menghabiskan biaya lebih dari beberapa dolar, tetapi bisa lebih jika Anda memutuskan untuk menggunakan lebih banyak resource atau jika Anda membiarkannya berjalan (lihat bagian "pembersihan" di akhir dokumen ini).

Pengguna baru Google Cloud Platform memenuhi syarat untuk mendapatkan uji coba gratis senilai$300.

Autentikasi

Jika belum pernah melakukannya, instal alat command line gcloud. Setelah gcloud diinstal, aktifkan Kredensial Default Aplikasi dengan menjalankan perintah berikut di terminal Anda:

$ gcloud auth application-default login

Terraform

Jika Anda belum menginstal Terraform sebelumnya, instal Terraform.

3. Penyedia Terraform Google Cloud

Penyedia Terraform Google Cloud menyediakan empat resource Cloud Spanner:

Dalam codelab ini, kita akan membuat dan mengelola instance dan database Cloud Spanner.

Lingkungan

Di lingkungan pengembangan, buat direktori baru untuk file konfigurasi Terraform Anda.

$ mkdir ~/terraform-spanner
$ cd ~/terraform-spanner

Kemudian, buat file bernama "main.tf" dengan konten berikut dan ganti PROJECT_ID dengan project ID Google Cloud Anda sendiri:

$ cat >> main.tf <<'EOF'
provider "google" {
  project = "PROJECT_ID"
}
EOF

Di bagian selanjutnya dari codelab ini, kita akan mengubah file ini dan menerapkan perubahan.

4. Membuat Instance dan Database

Ubah main.tf dengan konten berikut untuk menambahkan instance Cloud Spanner baru:

provider "google" {
  project = "PROJECT_ID"
}

resource "google_spanner_instance" "main" {
  config       = "regional-us-central1"
  display_name = "first-terraform-instance"
  num_nodes    = 3
}

Jalankan perintah berikut untuk menerapkan perubahan:

$ terraform apply
# ...
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: 1 added, 0 changed, 0 destroyed.

Setelah perubahan diterapkan, Anda akan dapat melihat instance di Konsol Google Cloud. Perhatikan bahwa konfigurasi regional tidak dapat diubah setelah instance dibuat.

48b67416982fa152.png

Setelah membuat instance, kita akan membuat database pada langkah berikutnya. Ubah main.tf dengan konten berikut:

provider "google" {
  project = "PROJECT_ID"
}

resource "google_spanner_instance" "main" {
  config       = "regional-us-central1"
  display_name = "first-terraform-instance"
  num_nodes    = 3
}

resource "google_spanner_database" "database" {
  instance = google_spanner_instance.main.name
  name     = "my-first-database"
}

Sekali lagi, gunakan perintah berikut untuk menerapkan perubahan:

$ terraform apply
# ...
Apply complete! Resources: 0 added, 1 changed, 0 destroyed.

Setelah berhasil, my-first-database akan tersedia di instance:

9962a71c6b2a3aff.png

5. Mengubah Instance

Seperti yang disebutkan di bagian sebelumnya, tidak semua properti instance dapat diubah. Namun, Anda dapat menambah/mengurangi jumlah node untuk menyesuaikan resource yang digunakan oleh instance. Instance yang dibuat memiliki 3 node. Dengan mengubah file main.tf, kita akan meningkatkan jumlah node menjadi 5:

provider "google" {
  project = "PROJECT_ID"
}

resource "google_spanner_instance" "main" {
  config       = "regional-us-central1"
  display_name = "first-terraform-instance"
  num_nodes    = 5
}

resource "google_spanner_database" "database" {
  instance = google_spanner_instance.main.name
  name     = "my-first-database"
}

Langkah berikutnya adalah menerapkan perubahan:

$ terraform apply
# ...
Apply complete! Resources: 0 added, 1 changed, 0 destroyed.

Setelah berhasil, instance akan menggunakan 5 node.

6. Menghapus Database

Anda dapat menghapus database secara permanen jika tidak lagi memerlukannya. Cukup hapus database dari main.tf dan terapkan perubahan.

provider "google" {
  project = "PROJECT_ID"
}

resource "google_spanner_instance" "main" {
  config       = "regional-us-central1"
  display_name = "first-terraform-instance"
  num_nodes    = 5
}
$ terraform apply
# ...
Apply complete! Resources: 0 added, 0 changed, 1 destroyed.

Setelah berhasil, database akan dihapus secara permanen.

7. Menghapus Instance

Anda dapat menghapus instance secara permanen jika tidak lagi memerlukannya. Cukup hapus instance dari main.tf dan terapkan perubahan.

provider "google" {
  project = "PROJECT_ID"
}
$ terraform apply
# ...
Apply complete! Resources: 0 added, 0 changed, 1 destroyed.

Setelah berhasil, instance akan dihapus secara permanen.

8. Selamat!

Anda telah membuat, mengubah, dan menghapus resource Cloud Spanner menggunakan Terraform.

Yang telah kita bahas

  • Cara menggunakan penyedia Terraform Google Cloud.
  • Menggunakan Terraform untuk membuat instance dan database Cloud Spanner.
  • Menggunakan Terraform untuk mengubah resource Cloud Spanner.
  • Menggunakan Terraform untuk menghapus resource Cloud Spanner.

Pelajari Lebih Lanjut