Terraform ile Cloud Spanner

1. Genel Bakış

Son Güncelleme: 2020-07-23

Cloud Spanner nedir?

Google Cloud Spanner; tüm kullanım kalıplarının gereksinimlerini karşılamak amacıyla hızla ölçeklendirebilmeniz ve ürünlerinizin başarılı olmasını sağlamanız için replikalar, parçalama ve işlemlerin işlenmesiyle otomatik olarak ilgilenen küresel olarak dağıtılmış, ACID uyumlu bir veritabanıdır.

Temel Özellikler

  • Ölçeklendirme için tasarlanmış ilişkisel veritabanı: Şemalar, SQL sorguları ve ACID işlemleri gibi bir ilişkisel veritabanından bekleyebileceğiniz her şey çalışma koşullarında test edilmiş ve küresel olarak ölçeklenmeye hazır durumda.
  • %99,999 kullanılabilirlik: Cloud Spanner, çok bölgeli örnekler için sektör lideri %99,999 kullanılabilirlik sunar.Bu, %99,99'a göre 10 kat daha az kapalı kalma süresi anlamına gelir.Ayrıca bölgesel ve çok bölgeli yapılandırmalarda şeffaf ve eş zamanlı çoğaltma sağlar.
  • Otomatik parçalama: Cloud Spanner, verileri istek yüküne ve verilerin boyutuna göre otomatik olarak parçalayarak performansı optimize eder. Böylece, veritabanınızı nasıl ölçeklendireceğiniz konusunda endişelenmeye daha az zaman harcayıp bunun yerine işletmenizi ölçeklendirmeye odaklanabilirsiniz.

Tüm özellikleri göster

Neler öğreneceksiniz?

  • Google Cloud Terraform sağlayıcısını kullanma
  • Cloud Spanner örnekleri ve veritabanları oluşturmak için Terraform'u kullanma.
  • Cloud Spanner kaynaklarını değiştirmek için Terraform'u kullanma.
  • Cloud Spanner kaynaklarını silmek için Terraform'u kullanma.

2. Kurulum ve Gereksinimler

Yönlendirmesiz ortam kurulumu

Google Hesabınız (Gmail veya Google Apps) yoksa hesap oluşturmanız gerekir. Google Cloud Platform Console'da ( console.cloud.google.com) oturum açın ve yeni bir proje oluşturun:

50983ac3fdbbf8d0.png

ea581205026ca8e3.png

Proje kimliğini unutmayın. Bu kimlik, tüm Google Cloud projelerinde benzersiz bir addır (Yukarıdaki ad zaten alınmış olduğundan sizin için çalışmayacaktır). Bu codelab'de daha sonra PROJECT_ID olarak adlandırılacaktır.

Ardından, Google Cloud kaynaklarını kullanmak için Cloud Console'da faturalandırmayı etkinleştirmeniz gerekir.

Bu codelab'i tamamlamak size birkaç dolardan fazla maliyet getirmemelidir. Ancak daha fazla kaynak kullanmaya veya kaynakları çalışır durumda bırakmaya karar verirseniz maliyet artabilir (bu belgenin sonundaki "temizleme" bölümüne bakın).

Google Cloud Platform'un yeni kullanıcıları 300 ABD doları değerinde ücretsiz deneme sürümünden yararlanabilir.

Kimlik doğrulama

Daha önce yüklemediyseniz lütfen gcloud komut satırı aracını yükleyin. gcloud yüklendikten sonra terminalinizde aşağıdaki komutu çalıştırarak uygulamanın varsayılan kimlik bilgilerini etkinleştirin:

$ gcloud auth application-default login

Terraform

Daha önce Terraform'u yüklemediyseniz Terraform'u yükleyin.

3. Google Cloud Terraform Sağlayıcısı

Google Cloud Terraform Sağlayıcısı dört Cloud Spanner kaynağı sağlar:

Bu codelab'de Cloud Spanner örnekleri ve veritabanları oluşturup yöneteceğiz.

Ortam

Geliştirme ortamınızda, Terraform yapılandırma dosyalarınız için yeni bir dizin oluşturun.

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

Ardından, aşağıdaki içeriğe sahip "main.tf" adlı bir dosya oluşturun ve PROJECT_ID'yi kendi Google Cloud proje kimliğinizle değiştirin:

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

Bu codelab'in geri kalanında bu dosyayı değiştirecek ve değişiklikleri uygulayacağız.

4. Örnek ve Veritabanı Oluşturma

Yeni bir Cloud Spanner örneği eklemek için main.tf dosyasını aşağıdaki içerikle değiştirin:

provider "google" {
  project = "PROJECT_ID"
}

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

Değişiklikleri uygulamak için aşağıdaki komutu çalıştırın:

$ 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.

Değişiklikler uygulandıktan sonra örneği Google Cloud Console'da görebilirsiniz. Bölgesel yapılandırmanın, örnek oluşturulduktan sonra değiştirilemeyeceğini lütfen unutmayın.

48b67416982fa152.png

Örneği oluşturduktan sonraki adımlarda bir veritabanı oluşturacağız. main.tf dosyasını aşağıdaki içeriklerle değiştirin:

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"
}

Değişiklikleri uygulamak için aşağıdaki komutu tekrar kullanın:

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

Başarılı olursa my-first-database, örnek altında kullanılabilir:

9962a71c6b2a3aff.png

5. Örnekleri Değiştirme

Önceki bölümde belirtildiği gibi, örneklerin tüm özellikleri değiştirilemez. Ancak örnek tarafından kullanılan kaynakları ayarlamak için düğüm sayısını artırabilir/azaltabilirsiniz. Oluşturulan örnek 3 düğümlüydü. main.tf dosyasını değiştirerek düğüm sayısını 5'e çıkaracağız:

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"
}

Bir sonraki adım, değişiklikleri uygulamaktır:

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

İşlem başarılı olduğunda örnek 5 düğüm kullanır.

6. Veritabanı Silme

Artık ihtiyacınız olmayan bir veritabanını kalıcı olarak silebilirsiniz. Veritabanını main.tf dosyasından kaldırıp değişiklikleri uygulamanız yeterlidir.

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.

İşlem başarılı olduğunda veritabanı kalıcı olarak silinir.

7. Örnekleri Silme

Artık ihtiyacınız olmayan bir örneği kalıcı olarak silebilirsiniz. Örneği main.tf dosyasından kaldırmanız ve değişiklikleri uygulamanız yeterlidir.

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

İşlem başarılı olduğunda örnek kalıcı olarak silinir.

8. Tebrikler!

Terraform'u kullanarak Cloud Spanner kaynakları oluşturmuş, değiştirmiş ve silmiş olmanız gerekir.

İşlediğimiz konular

  • Google Cloud Terraform sağlayıcısını kullanma
  • Cloud Spanner örnekleri ve veritabanları oluşturmak için Terraform'u kullanma.
  • Cloud Spanner kaynaklarını değiştirmek için Terraform'u kullanma.
  • Cloud Spanner kaynaklarını silmek için Terraform'u kullanma.

Daha Fazla Bilgi