Cloud Spanner dengan Terraform

1. Ringkasan

Terakhir diperbarui: 23-07-2020

Apa itu Cloud Spanner?

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

Fitur Utama

  • Database relasional, dibangun untuk penskalaan: Semua yang Anda harapkan dari database relasional—skema, kueri SQL, dan transaksi ACID—sudah teruji serta siap diskalakan secara global.
  • Ketersediaan 99,999%: Cloud Spanner menghadirkan ketersediaan 99,999% yang terdepan di industri untuk instance multi-regional, yaitu periode nonaktif 10x lebih rendah dibandingkan 99,99%, serta menyediakan replikasi sinkron yang transparan 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 berfokus 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 konsol Google Cloud Platform ( console.cloud.google.com) dan buat project baru:

50983ac3fdbbf8d0.pngS

ea581205026ca8e3.png

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

Selanjutnya, Anda harus mengaktifkan penagihan di Cloud Console 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 melakukannya, silakan instal alat command line gcloud. Setelah gcloud terinstal, aktifkan Kredensial Default Aplikasi dengan menjalankan perintah berikut di terminal Anda:

$ gcloud auth application-default login

Terraform

Jika Anda belum pernah menginstal Terraform, instal Terraform.

3. Penyedia Google Cloud Terraform

Google Cloud Terraform Provider 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.

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

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

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

Di sisa codelab ini, kita akan memodifikasi 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 dapat melihat instance di Konsol Google Cloud. Perhatikan bahwa konfigurasi regional tidak dapat diubah setelah instance dibuat.

48b67416982fa152.pngS

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, database my-first-first akan tersedia pada instance:

9962a71c6b2a3aff.pngS

5. Mengubah Instance

Seperti 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 memodifikasi 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 setelah tidak diperlukan lagi. Sederhananya, hapus database dari main.tf dan terapkan perubahannya.

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 setelah tidak membutuhkannya lagi. Sederhananya, hapus instance dari main.tf dan terapkan perubahannya.

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 Google Cloud Terraform.
  • 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