Cloud Spanner và Terraform

1. Tổng quan

Lần cập nhật gần đây nhất: ngày 23 tháng 07 năm 2020

Cloud Spanner là gì?

Google Cloud Spanner là một cơ sở dữ liệu tuân thủ chuẩn ACID, được phân phối trên toàn cầu. Cơ sở dữ liệu này tự động xử lý việc sao chép, phân đoạn và xử lý giao dịch, nhờ đó, bạn có thể nhanh chóng mở rộng quy mô để đáp ứng mọi thói quen sử dụng và đảm bảo sản phẩm của bạn thành công.

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 từ một cơ sở dữ liệu quan hệ như giản đồ, truy vấn SQL và giao dịch ACID – trận chiến đã được thử nghiệm và sẵn sàng mở rộng ra toàn cầu.
  • Phạm vi cung cấp 99,999%: Cloud Spanner giúp bạn đạt được 99,999% khả năng hoạt động 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 49, đồng thời cung cấp khả năng sao chép minh bạch, đồng bộ giữa các cấu hình nhiều khu vực và nhiều khu vực.
  • Tự động phân đoạn: 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 tải yêu cầu và kích thước của dữ liệu. Nhờ đó, bạn có thể mất ít thời gian hơn để lo lắng về cách mở rộng cơ sở dữ liệu và thay vào đó, bạn sẽ tập trung vào việc mở rộng quy mô kinh doanh.

Xem tất cả tính năng

Kiến thức bạn sẽ học được

  • Cách sử dụng nhà cung cấp Terraform của Google Cloud.
  • Dùng Terraform để tạo các phiên bản và cơ sở dữ liệu của Cloud Spanner.
  • Sử dụng Terraform để sửa đổi tài nguyên Cloud Spanner.
  • 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 tiến độ riêng

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) và tạo một dự án mới:

50983ac3fdbbf8d0.png.

ea581205026ca8e3.png

Xin lưu ý rằng mã dự án là một tên riêng biệt trong tất cả dự án Google Cloud (tên ở trên đã được sử dụng nên sẽ không phù hợp với bạn!). Sau này trong lớp học lập trình này, mã này sẽ được gọi là PROJECT_ID.

Tiếp theo, bạn sẽ 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.

Bạn sẽ không mất quá vài đô la khi chạy lớp học lập trình này, nhưng sẽ tốn nhiều hơn nếu quyết định sử dụng nhiều tài nguyên hơn hoặc nếu bạn để chúng 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 nhận 300 USD dùng thử miễn phí.

Xác thực

Vui lòng cài đặt công cụ dòng lệnh gcloud nếu bạn chưa cài đặt. 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 trên thiết bị đầu cuối của bạn:

$ gcloud auth application-default login

Địa hình

Nếu trước đó bạn chưa cài đặt Terraform, hãy cài đặt Terraform.

3. Nhà cung cấp Google Cloud Terraform

Nhà cung cấp Google Cloud Terraform cung cấp 4 tài nguyên Cloud Spanner:

Trong lớp học lập trình này, chúng ta sẽ tạo và quản lý các thực thể cũng như cơ sở dữ liệu của 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 đó, tạo một tệp có tên "main.tf" bằng 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 với 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ể xem phiên bản này tại 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.

48b67416982fa152.png.

Sau khi tạo phiên bản thể hiệ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 với 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, cơ sở dữ liệu đầu tiên của tôi sẽ có trong thực thể:

9962a71c6b2a3aff.png.

5. Sửa đổi một thực thể

Như đã lưu ý trong phần trước, không phải tất cả thuộc tính của thực thể đều có thể sửa đổi được. 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à thực thể đó 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, thực thể này sẽ sử dụng 5 nút.

6. Xoá Cơ sở dữ liệu

Bạn có thể xoá vĩnh viễn cơ sở dữ liệu khi không cần cơ sở dữ liệu đó nữa. Bạn chỉ cần xoá cơ sở dữ liệu khỏi main.tf rồi á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 thực thể

Bạn có thể xoá vĩnh viễn một phiên bản khi không cần đến phiên bản đó nữa. Bạn chỉ cần xoá thực thể này khỏi main.tf rồi á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 thành công, thực thể này sẽ bị xoá vĩnh viễn.

8. Xin chúc mừng!

Bạn đã tạo, sửa đổi và xoá tài nguyên Cloud Spanner bằng Terraform.

Nội dung đã đề cập

  • Cách sử dụng nhà cung cấp Google Cloud Terraform.
  • Dùng Terraform để tạo các phiên bản và cơ sở dữ liệu của Cloud Spanner.
  • Sử dụng Terraform để sửa đổi tài nguyên Cloud Spanner.
  • Dùng Terraform để xoá tài nguyên Cloud Spanner.

Tìm hiểu thêm