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.
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:
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:
- google_spanner_instance
- google_spanner_database
- google_spanner_instance_iam
- google_spanner_database_iam
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.
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:
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
- Baca dokumentasi Google Cloud Spanner.
- Baca resource Terraform Google Cloud Spanner.
- Baca cara menetapkan aturan IAM untuk instance dan database.