1. Tổng quan
Lần cập nhật gần đây nhất: ngày 23 tháng 7 năm 2020
Cloud Spanner là gì?
Google Cloud Spanner là một cơ sở dữ liệu tuân thủ ACID, được phân phối trên toàn cầu, tự động xử lý các bản sao, phân đoạn và giao dịch, nhờ đó bạn có thể nhanh chóng mở rộng quy mô để đáp ứng mọi mẫu sử dụng và đảm bảo thành công cho sản phẩm của mình.
Các tính năng chính
- Cơ sở dữ liệu quan hệ, được xây dựng để mở rộng quy mô: Mọi thứ bạn mong đợi ở một cơ sở dữ liệu quan hệ (giản đồ, truy vấn SQL và giao dịch ACID) đều được kiểm tra kỹ lưỡng và sẵn sàng mở rộng quy mô trên toàn cầu.
- Độ tin cậy 99,999%: Cloud Spanner mang đến độ tin cậy 99,999% hàng đầu trong ngành cho các phiên bản đa khu vực (thời gian ngừng hoạt động ít hơn 10 lần so với độ tin cậy 99,99%) và cung cấp tính năng sao chép đồng bộ, minh bạch trên các cấu hình khu vực và đa khu vực.
- Phân đoạn tự động: Cloud Spanner tối ưu hoá hiệu suất bằng cách tự động phân đoạn dữ liệu dựa trên mức tải yêu cầu và kích thước của dữ liệu. Nhờ đó, bạn có thể dành ít thời gian hơn để lo lắng về cách mở rộng quy mô cơ sở dữ liệu, thay vào đó, hãy tập trung vào việc mở rộng quy mô doanh nghiệp của mình.
Kiến thức bạn sẽ học được
- Cách sử dụng trình cung cấp Terraform của Google Cloud.
- Sử dụng Terraform để tạo các thực thể và cơ sở dữ liệu Cloud Spanner.
- Sử dụng Terraform để sửa đổi các tài nguyên Cloud Spanner.
- Sử dụng Terraform để xoá tài nguyên Cloud Spanner.
2. Thiết lập và yêu cầu
Thiết lập môi trường theo tốc độ của riêng bạn
Nếu chưa có Tài khoản Google (Gmail hoặc Google Apps), bạn phải tạo một tài khoản. Đăng nhập vào bảng điều khiển Google Cloud Platform ( console.cloud.google.com) rồi tạo một dự án mới:


Hãy nhớ mã dự án, một tên duy nhất trên tất cả các dự án trên Google Cloud (tên ở trên đã được sử dụng và sẽ không hoạt động đối với bạn, xin lỗi!). Sau này trong lớp học lập trình này, chúng ta sẽ gọi đó là PROJECT_ID.
Tiếp theo, bạn cần bật tính năng thanh toán trong Cloud Console để sử dụng các tài nguyên của Google Cloud.
Việc thực hiện lớp học lập trình này sẽ không tốn của bạn quá vài đô la, nhưng có thể tốn nhiều hơn nếu bạn quyết định sử dụng nhiều tài nguyên hơn hoặc nếu bạn để các tài nguyên đó chạy (xem phần "dọn dẹp" ở cuối tài liệu này).
Người dùng mới của Google Cloud Platform đủ điều kiện dùng thử miễn phí trị giá 300 USD.
Xác thực
Nếu chưa từng cài đặt, vui lòng cài đặt công cụ dòng lệnh gcloud. Sau khi cài đặt gcloud, hãy kích hoạt Thông tin xác thực mặc định của ứng dụng bằng cách chạy lệnh sau trong thiết bị đầu cuối:
$ gcloud auth application-default login
Terraform
Nếu bạn chưa cài đặt Terraform trước đó, hãy cài đặt Terraform.
3. Nhà cung cấp Terraform của Google Cloud
Google Cloud Terraform Provider cung cấp 4 tài nguyên Cloud Spanner:
- google_spanner_instance
- google_spanner_database
- google_spanner_instance_iam
- google_spanner_database_iam
Trong lớp học lập trình này, chúng ta sẽ tạo và quản lý các phiên bản và cơ sở dữ liệu Cloud Spanner.
Môi trường
Trong môi trường phát triển, hãy tạo một thư mục mới cho các tệp cấu hình Terraform.
$ mkdir ~/terraform-spanner $ cd ~/terraform-spanner
Sau đó, hãy tạo một tệp có tên "main.tf" với nội dung sau và thay thế PROJECT_ID bằng mã dự án Google Cloud của riêng bạn:
$ cat >> main.tf <<'EOF'
provider "google" {
project = "PROJECT_ID"
}
EOF
Trong phần còn lại của lớp học lập trình này, chúng ta sẽ sửa đổi tệp này và áp dụng các thay đổi.
4. Tạo thực thể và cơ sở dữ liệu
Sửa đổi main.tf bằng nội dung sau để thêm một phiên bản Cloud Spanner mới:
provider "google" {
project = "PROJECT_ID"
}
resource "google_spanner_instance" "main" {
config = "regional-us-central1"
display_name = "first-terraform-instance"
num_nodes = 3
}
Chạy lệnh sau để áp dụng các thay đổi:
$ 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.
Sau khi áp dụng các thay đổi, bạn sẽ có thể thấy phiên bản này trên Google Cloud Console. Xin lưu ý rằng bạn không thể sửa đổi cấu hình theo khu vực sau khi tạo một phiên bản.

Sau khi tạo phiên bản, chúng ta sẽ tạo một cơ sở dữ liệu trong các bước tiếp theo. Sửa đổi main.tf bằng nội dung sau:
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"
}
Một lần nữa, hãy dùng lệnh sau để áp dụng các thay đổi:
$ terraform apply # ... Apply complete! Resources: 0 added, 1 changed, 0 destroyed.
Sau khi thành công, my-first-database sẽ có trong phiên bản:

5. Sửa đổi một đối tượng
Như đã lưu ý trong phần trước, không phải tất cả các thuộc tính của phiên bản đều có thể sửa đổi. Tuy nhiên, bạn có thể tăng/giảm số lượng nút để điều chỉnh tài nguyên mà phiên bản sử dụng. Phiên bản được tạo có 3 nút. Bằng cách sửa đổi tệp main.tf, chúng ta sẽ tăng số lượng nút lên 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"
}
Bước tiếp theo là áp dụng các thay đổi:
$ terraform apply # ... Apply complete! Resources: 0 added, 1 changed, 0 destroyed.
Sau khi thành công, phiên bản sẽ sử dụng 5 nút.
6. Xoá cơ sở dữ liệu
Bạn có thể xoá vĩnh viễn một cơ sở dữ liệu khi không cần dùng nữa. Bạn chỉ cần xoá cơ sở dữ liệu khỏi main.tf và áp dụng các thay đổi.
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.
Sau khi thành công, cơ sở dữ liệu sẽ bị xoá vĩnh viễn.
7. Xoá một đối tượng
Bạn có thể xoá vĩnh viễn một phiên bản khi không cần dùng nữa. Bạn chỉ cần xoá phiên bản khỏi main.tf và áp dụng các thay đổi.
provider "google" {
project = "PROJECT_ID"
}
$ terraform apply # ... Apply complete! Resources: 0 added, 0 changed, 1 destroyed.
Sau khi xoá thành công, phiên bản sẽ bị xoá vĩnh viễn.
8. Xin chúc mừng!
Bạn đã tạo, sửa đổi và xoá các tài nguyên Cloud Spanner bằng cách sử dụng Terraform.
Nội dung đã đề cập
- Cách sử dụng trình cung cấp Google Cloud Terraform.
- Sử dụng Terraform để tạo các thực thể và cơ sở dữ liệu Cloud Spanner.
- Sử dụng Terraform để sửa đổi các tài nguyên Cloud Spanner.
- Sử dụng Terraform để xoá tài nguyên Cloud Spanner.
Tìm hiểu thêm
- Xem tài liệu về Google Cloud Spanner.
- Đọc về tài nguyên Google Cloud Spanner Terraform.
- Đọc về cách thiết lập các quy tắc IAM cho các phiên bản và cơ sở dữ liệu.