О практической работе
1. Обзор
Последнее обновление: 23 июля 2020 г.
Что такое облачный гаечный ключ?
Google Cloud Spanner — это глобально распределенная база данных, совместимая с ACID, которая автоматически обрабатывает реплики, сегментирование и обработку транзакций, поэтому вы можете быстро масштабироваться в соответствии с любым шаблоном использования и обеспечить успех своих продуктов.
Ключевые особенности
- Реляционная база данных, созданная для масштабирования. Все, что вы ожидаете от реляционной базы данных — схемы, SQL-запросы и транзакции ACID — проверено в боевых условиях и готово к глобальному масштабированию.
- Доступность 99,999 %: Cloud Spanner обеспечивает лучшую в отрасли доступность 99,999 % для многорегиональных экземпляров — время простоя в 10 раз меньше, чем четыре девятки — и обеспечивает прозрачную синхронную репликацию между регионами и многорегиональными конфигурациями.
- Автоматическое сегментирование. Cloud Spanner оптимизирует производительность, автоматически сегментируя данные в зависимости от нагрузки запроса и размера данных. В результате вы сможете тратить меньше времени на размышления о том, как масштабировать свою базу данных, и вместо этого сосредоточиться на масштабировании своего бизнеса.
Что вы узнаете
- Как использовать поставщика Google Cloud Terraform .
- Использование Terraform для создания экземпляров и баз данных Cloud Spanner.
- Использование Terraform для изменения ресурсов Cloud Spanner.
- Использование Terraform для удаления ресурсов Cloud Spanner.
2. Настройка и требования
Самостоятельная настройка среды
Если у вас еще нет учетной записи Google (Gmail или Google Apps), вам необходимо ее создать . Войдите в консоль Google Cloud Platform ( console.cloud.google.com ) и создайте новый проект:
Запомните идентификатор проекта — уникальное имя для всех проектов Google Cloud (имя, указанное выше, уже занято и не подойдет вам, извините!). Позже в этой лаборатории он будет называться PROJECT_ID .
Далее вам необходимо включить биллинг в Cloud Console, чтобы использовать ресурсы Google Cloud.
Выполнение этой кодовой лаборатории не должно стоить вам больше нескольких долларов, но может стоить больше, если вы решите использовать больше ресурсов или оставите их включенными (см. раздел «Очистка» в конце этого документа).
Новые пользователи Google Cloud Platform имеют право на бесплатную пробную версию стоимостью 300 долларов США .
Аутентификация
Если вы еще этого не сделали, установите инструмент командной строки gcloud . После установки gcloud активируйте учетные данные приложения по умолчанию, выполнив следующую команду в своем терминале:
$ gcloud auth application-default login
Терраформировать
Если вы еще не установили Terraform ранее, установите Terraform .
3. Поставщик Google Cloud Terraform
Поставщик Google Cloud Terraform предоставляет четыре ресурса Cloud Spanner:
- google_spanner_instance
- google_spanner_database
- google_spanner_instance_iam
- google_spanner_database_iam
В этой лаборатории кода мы будем создавать экземпляры и базы данных Cloud Spanner и управлять ими.
Среда
В вашей среде разработки создайте новый каталог для файлов конфигурации Terraform.
$ mkdir ~/terraform-spanner $ cd ~/terraform-spanner
Затем создайте файл с именем «main.tf» со следующим содержимым и замените PROJECT_ID на свой собственный идентификатор проекта Google Cloud:
$ cat >> main.tf <<'EOF' provider "google" { project = "PROJECT_ID" } EOF
В оставшейся части этой лаборатории мы собираемся изменить этот файл и применить изменения.
4. Создание экземпляров и баз данных
Измените файл main.tf следующим содержимым, чтобы добавить новый экземпляр Cloud Spanner:
provider "google" { project = "PROJECT_ID" } resource "google_spanner_instance" "main" { config = "regional-us-central1" display_name = "first-terraform-instance" num_nodes = 3 }
Выполните следующую команду, чтобы применить изменения:
$ 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.
После применения изменений вы сможете увидеть экземпляр в Google Cloud Console . Обратите внимание, что региональную конфигурацию невозможно изменить после создания экземпляра.
После создания экземпляра на следующих шагах мы создадим базу данных. Измените main.tf следующим содержимым:
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" }
Снова используйте следующую команду, чтобы применить изменения:
$ terraform apply # ... Apply complete! Resources: 0 added, 1 changed, 0 destroyed.
В случае успеха my-first-database будет доступна в экземпляре:
5. Изменение экземпляра
Как отмечалось в предыдущем разделе, не все свойства экземпляров можно изменить. Но вы можете увеличить/уменьшить количество узлов, чтобы настроить ресурсы, используемые экземпляром. Созданный экземпляр имел 3 узла. Изменив файл main.tf, мы собираемся увеличить количество узлов до 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" }
Следующий шаг — применить изменения:
$ terraform apply # ... Apply complete! Resources: 0 added, 1 changed, 0 destroyed.
В случае успеха экземпляр будет использовать 5 узлов.
6. Удаление базы данных
Вы можете удалить базу данных навсегда, если она вам больше не нужна. Просто удалите базу данных из main.tf и примените изменения.
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.
В случае успеха база данных будет удалена без возможности восстановления.
7. Удаление экземпляра
Вы можете удалить экземпляр навсегда, если он вам больше не нужен. Просто удалите экземпляр из main.tf и примените изменения.
provider "google" { project = "PROJECT_ID" }
$ terraform apply # ... Apply complete! Resources: 0 added, 0 changed, 1 destroyed.
В случае успеха экземпляр будет удален без возможности восстановления.
8. Поздравляем!
Вы создавали, изменяли и удаляли ресурсы Cloud Spanner с помощью Terraform.
Что мы рассмотрели
- Как использовать поставщика Google Cloud Terraform.
- Использование Terraform для создания экземпляров и баз данных Cloud Spanner.
- Использование Terraform для изменения ресурсов Cloud Spanner.
- Использование Terraform для удаления ресурсов Cloud Spanner.
Узнать больше
- Ознакомьтесь с документацией Google Cloud Spanner .
- Прочтите о ресурсе Google Cloud Spanner Terraform .
- Прочтите о настройке правил IAM для экземпляров и баз данных .