1. Tổng quan
Có một số cách để kết nối với một phiên bản Cloud SQL riêng tư từ một dự án hoặc mạng VPC khác. Bạn có thể sử dụng tính năng Quyền truy cập vào dịch vụ riêng tư (PSA) để truy cập vào địa chỉ IP nội bộ của Google và các dịch vụ của bên thứ ba thông qua các kết nối riêng tư. Để mở rộng quyền truy cập vào cơ sở dữ liệu, giờ đây, bạn cũng có thể bật Private Service Connect (PSC).
Private Service Connect (PSC) cho phép nhà sản xuất dịch vụ hiển thị dịch vụ của họ thông qua tệp đính kèm dịch vụ. Người dùng có thể sử dụng tệp đính kèm này để tạo điểm cuối PSC và/hoặc phần phụ trợ PSC trong môi trường của họ. Thông qua các điểm cuối PSC này, chúng có thể kết nối với các dịch vụ nhà sản xuất thông qua một địa chỉ IP riêng tư do người dùng chỉ định.
Trong lớp học này, bạn có thể định cấu hình và kiểm thử tuỳ chọn này.
Trong lớp học này, bạn sẽ xây dựng một cấu trúc đơn giản minh hoạ cách sử dụng quyền truy cập điểm cuối PSA và PSC bằng CloudSQL.
Hình 1.
Đối với lớp học này, bạn sẽ cần hai dự án hoặc các VPC riêng biệt trong cùng một dự án.
Mục tiêu
Trong lớp học này, bạn sẽ tìm hiểu cách thực hiện nhiệm vụ sau:
- Bật tính năng kết nối mạng dịch vụ
- Thiết lập PSA
- Tạo phiên bản CloudSQL bằng PSA
- Bật tệp đính kèm dịch vụ PSC.
- Tạo điểm cuối PSC trong VPC của người dùng để kết nối với cơ sở dữ liệu CloudSQL
- Xác minh quyền truy cập vào cơ sở dữ liệu SQL từ các máy ảo thử nghiệm, trong cả VPC của nhà sản xuất và nhà tiêu dùng
2. Cách thiết lập và các yêu cầu
Thiết lập môi trường theo tốc độ của riêng bạn
- Đăng nhập vào Google Cloud Console rồi tạo một dự án mới hoặc sử dụng lại một dự án hiện có. Nếu chưa có tài khoản Gmail hoặc Google Workspace, bạn phải tạo một tài khoản.
- Tên dự án là tên hiển thị cho người tham gia dự án này. Đây là một chuỗi ký tự không được API của Google sử dụng. Bạn luôn có thể cập nhật thông tin này.
- Mã dự án là duy nhất trên tất cả các dự án Google Cloud và không thể thay đổi (không thể thay đổi sau khi đặt). Cloud Console sẽ tự động tạo một chuỗi duy nhất; thường thì bạn không cần quan tâm đến chuỗi này. Trong hầu hết các lớp học lập trình, bạn sẽ cần tham chiếu đến Mã dự án (thường được xác định là
PROJECT_ID
). Nếu không thích mã được tạo, bạn có thể tạo một mã ngẫu nhiên khác. Ngoài ra, bạn có thể thử dùng email của riêng mình để xem có thể sử dụng hay không. Bạn không thể thay đổi thông tin này sau bước này và thông tin này sẽ được giữ nguyên trong suốt thời gian diễn ra dự án. - Xin lưu ý rằng có một giá trị thứ ba là Mã dự án mà một số API sử dụng. Tìm hiểu thêm về cả ba giá trị này trong tài liệu.
- 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/API trên Cloud. Việc tham gia lớp học lập trình này sẽ không tốn kém nhiều chi phí, nếu có. Để tắt các tài nguyên nhằm tránh bị tính phí sau khi hoàn tất hướng dẫn này, bạn có thể xoá các tài nguyên đã tạo hoặc xoá dự án. Người dùng mới của Google Cloud đủ điều kiện tham gia chương trình Dùng thử miễn phí 300 USD.
Khởi động Cloud Shell
Mặc dù có thể điều khiển Google Cloud từ xa trên máy tính xách tay, nhưng trong lớp học lập trình này, bạn sẽ sử dụng Google Cloud Shell, một môi trường dòng lệnh chạy trên đám mây.
Trong Bảng điều khiển Google Cloud, hãy nhấp vào biểu tượng Cloud Shell trên thanh công cụ trên cùng bên phải:
Quá trình cấp phép và kết nối với môi trường sẽ chỉ mất vài phút. Khi hoàn tất, bạn sẽ thấy như sau:
Máy ảo này được tải sẵn tất cả các công cụ phát triển mà bạn cần. Ứng dụng này cung cấp một thư mục gốc 5 GB ổn định và chạy trên Google Cloud, giúp nâng cao đáng kể hiệu suất mạng và xác thực. Bạn có thể thực hiện tất cả công việc trong lớp học lập trình này trong một trình duyệt. Bạn không cần cài đặt gì cả.
3. Nhiệm vụ 1. Thiết lập môi trường cho dự án cơ sở dữ liệu bằng (Terraform)
Trong dự án cơ sở dữ liệu, chúng ta sẽ bật tính năng kết nối mạng dịch vụ, tạo VPC, tạo dải PSA, tạo mối liên kết kết nối mạng dịch vụ và tạo quy tắc tường lửa. Mở bảng điều khiển trên đám mây rồi chọn dự án mà bạn sẽ sử dụng cho cơ sở dữ liệu.
- Mở Cloud Shell ở đầu bảng điều khiển ở bên phải, đảm bảo bạn thấy Mã dự án của cơ sở dữ liệu cho dự án cơ sở dữ liệu trong Cloud Shell, xác nhận mọi lời nhắc để cho phép truy cập.
- Tạo một thư mục có tên terraform-db-psc rồi di chuyển đến thư mục
mkdir terraform-db-psc && cd terraform-db-psc
- Tạo tệp main.tf, variable.tf, nat-vm.tf và database.tf.
touch main.tf variable.tf nat-vm.tf database.tf
- Chuyển sang chế độ xem Trình chỉnh sửa Cloud Shell. Chọn editor (trình chỉnh sửa), đảm bảo bạn cho phép mọi lời nhắc cần thiết để giao diện có thể tải.
- Sau khi tải, hãy chuyển đến File > Open Folder (Tệp > Mở thư mục) rồi chuyển đến /home/your-user-name/terraform-db-psc và chọn Ok để mở thư mục trong trình chỉnh sửa.
- Chọn tệp variable.tf rồi thêm nội dung sau. Thay thế văn bản
your-database-project-id-here
bằng mã dự án cơ sở dữ liệu thực tế của bạn trong dấu ngoặc kép. Thay thế văn bảnyour-consumer-project-id-here
bằng mã dự án người tiêu dùng thực tế của bạn trong dấu ngoặc kép.
variable "project_id" { type = string default = "your-database-project-id-here" } variable "project_id_consumer" { type = set(string) default = ["your-consumer-project-id-here"] } variable "network_id" { type = string default = "database-net" } variable "region_id" { type = string default = "us-east1" } variable "db_password" { type = string default = "cloudsql24" }
- Tiếp theo, hãy mở tệp main.tf. Chúng ta sẽ thêm một số mã terraform để thực hiện nhiều thao tác như giải thích bên dưới.
Bật API |
|
Tạo VPC |
|
Thêm quy tắc tường lửa |
|
Tạo dải PSA |
|
Tạo mối liên kết ngang |
|
- Sao chép và dán nội dung sau vào tệp .tf chính.
resource "google_project_service" "default" { for_each = toset([ "compute.googleapis.com", "servicenetworking.googleapis.com", "sqladmin.googleapis.com", "cloudresourcemanager.googleapis.com" ]) service = each.value disable_on_destroy = false } resource "google_compute_network" "default" { project = var.project_id name = var.network_id auto_create_subnetworks = true mtu = 1460 routing_mode = "GLOBAL" } resource "google_compute_global_address" "psa_range" { name = "psa-range-${google_compute_network.default.name}" project = var.project_id purpose = "VPC_PEERING" address_type = "INTERNAL" prefix_length = 20 address = "172.18.0.0" network = google_compute_network.default.id } resource "google_service_networking_connection" "private_connection" { network = google_compute_network.default.self_link service = "servicenetworking.googleapis.com" reserved_peering_ranges = [ google_compute_global_address.psa_range.name, ] } resource "google_compute_firewall" "allow_icmp" { name = "allow-icmp-${google_compute_network.default.name}" network = google_compute_network.default.id project = var.project_id allow { protocol = "icmp" } source_ranges = ["0.0.0.0/0"] target_tags = ["allow-icmp"] } resource "google_compute_firewall" "allow_ssh" { name = "allow-ssh-${google_compute_network.default.name}" network = google_compute_network.default.id project = var.project_id allow { protocol = "tcp" ports = ["22"] } source_ranges = ["0.0.0.0/0"] target_tags = ["allow-ssh"] } resource "google_compute_firewall" "allow_sql" { name = "allow-sql-${google_compute_network.default.name}" network = google_compute_network.default.id project = var.project_id allow { protocol = "tcp" ports = ["3306"] } source_ranges = ["0.0.0.0/0"] } resource "google_compute_firewall" "allow_internal" { name = "allow-internal-${google_compute_network.default.name}" network = google_compute_network.default.id project = var.project_id allow { protocol = "icmp" } allow { protocol = "tcp" ports = ["0-65535"] } allow { protocol = "udp" ports = ["0-65535"] } source_ranges = ["10.128.0.0/9", "172.18.0.0/20"] # Include PSA range }
- Chuyển về cửa sổ dòng lệnh Cloud Shell, đảm bảo bạn đang ở thư mục terraform-db-psc
cd terraform-db-psc
và chạy các lệnh sau
terraform init
Khởi chạy thư mục đang hoạt động. Bước này sẽ tải các nhà cung cấp cần thiết cho cấu hình đã cho.
terraform plan
Tạo một kế hoạch thực thi, cho biết những hành động mà Terraform sẽ thực hiện để triển khai cơ sở hạ tầng của bạn.
- Bây giờ, để tạo tài nguyên, hãy chạy lệnh
terraform apply
và nhậpyes
để chạy.
4. Nhiệm vụ 2. Tạo phiên bản CloudSQL bằng PSA (Terraform)
Hãy sử dụng Terraform để tạo một phiên bản CloudSQL, với tuỳ chọn PSA để cho phép kết nối. Hoàn tất cấu hình này trong dự án cơ sở dữ liệu.
- Chuyển sang chế độ xem Trình chỉnh sửa Cloud Shell. Đảm bảo bạn đang ở thư mục
terraform-db-psc
. Chọn tệpdatabase.tf
rồi thêm nội dung sau.
resource "google_sql_database_instance" "default" {
name = "psc-psa-sql-db"
region = var.region_id
database_version = "MYSQL_8_0"
settings {
tier = "db-f1-micro"
availability_type = "REGIONAL"
backup_configuration {
enabled = true
binary_log_enabled = true
}
ip_configuration {
ipv4_enabled = "false"
private_network = google_compute_network.default.id
}
}
deletion_protection = false
}
resource "google_sql_user" "users" {
name = "testsql"
instance = google_sql_database_instance.default.name
password = var.db_password
}
- Chuyển về cửa sổ dòng lệnh Cloud Shell,đảm bảo bạn đang ở thư mục terraform-db-psc. Bây giờ, để tạo tài nguyên, hãy chạy lệnh
terraform apply
và nhậpyes
để chạy. Quá trình tạo thực thể CloudSQL bằng PSA có thể mất hơn 15 phút.
Xác minh cơ sở dữ liệu
- Sau khi hoàn tất, hãy chuyển đến SQL trong bảng điều khiển, chọn thực thể cơ sở dữ liệu psc-psa-sql-db mới tạo.
- Ở bên trái, hãy mở rộng ngăn trượt các tuỳ chọn SQL rồi chọn Kết nối
- Trong thẻ tóm tắt, bạn có thể xem thông tin về kết nối.
- Sao chép Internal IP Address (Địa chỉ IP nội bộ) rồi lưu vào một nơi nào đó trên hệ thống. Như bạn có thể thấy, giá trị này được chỉ định từ phạm vi mà chúng ta đã đặt trước.
- Bạn sẽ cần địa chỉ IP này để hoàn tất bước 5 trong nhiệm vụ 3.
- Ở bên trái, hãy mở rộng ngăn tuỳ chọn SQL và chọn Người dùng.
- Bạn sẽ thấy một người dùng có tên là testsql với mật khẩu cloudsql24 (Mật khẩu này sẽ được dùng để truy cập vào cơ sở dữ liệu sau này)
5. Nhiệm vụ 3. Tạo máy ảo kiểm thử và kết nối với phiên bản SQL từ trong dự án cơ sở dữ liệu (Terraform)
Hãy sử dụng Terraform để tạo máy ảo kiểm thử và cổng NAT. Hoàn tất cấu hình này trong dự án cơ sở dữ liệu.
- Chuyển sang chế độ xem Trình chỉnh sửa Cloud Shell. Đảm bảo bạn đang ở thư mục
terraform-db-psc
. Chọn tệpnat-vm.tf
rồi thêm nội dung sau.
resource "google_compute_router" "default" {
name = "outbound-nat"
region = var.region_id
network = google_compute_network.default.id
bgp {
asn = 64514
}
}
resource "google_compute_router_nat" "default" {
name = "outbound-nat-gw"
router = google_compute_router.default.name
region = google_compute_router.default.region
nat_ip_allocate_option = "AUTO_ONLY"
source_subnetwork_ip_ranges_to_nat = "ALL_SUBNETWORKS_ALL_IP_RANGES"
log_config {
enable = true
filter = "ERRORS_ONLY"
}
}
resource "google_compute_instance" "sql_net_vm" {
name = "db-vm-test"
machine_type = "e2-medium"
zone = "${var.region_id}-b"
project = var.project_id
boot_disk {
initialize_params {
image = "debian-cloud/debian-11"
}
}
network_interface {
network = google_compute_network.default.self_link
}
# No external IP address
network_performance_config {
total_egress_bandwidth_tier = "DEFAULT"
}
tags = ["allow-icmp", "allow-ssh", "allow-internal", "allow-health-check"]
# Install MariaDB at startup
metadata_startup_script = <<EOF
#!/bin/bash
apt-get update
apt-get install -y mariadb-server
systemctl enable mariadb
EOF
}
- Chuyển về cửa sổ dòng lệnh Cloud Shell,đảm bảo bạn đang ở thư mục terraform-db-psc. Bây giờ, để tạo tài nguyên, hãy chạy lệnh
terraform plan, then terraform apply
và nhậpyes
để chạy. Thao tác này sẽ tạo một cổng NAT và máy ảo đã cài đặt MariaDB.
Xác minh cơ sở dữ liệu
Hoàn tất việc này trong dự án người dùng
- Chuyển đến Phiên bản máy ảo. Chọn db-vm-test
- Chọn tuỳ chọn SSH để kết nối với máy ảo.
- Kết nối với DB thông qua IP cục bộ mà bạn đã sao chép trước đó bằng cách sau:
mysql --host=172.18.0.2 --user=testsql --password=cloudsql24
Lưu ý: Thay đổi địa chỉ IP thành địa chỉ IP thực tế để kết nối.
- Khi kết nối được thiết lập, hãy tạo một cơ sở dữ liệu bằng localvpcsqldb sau.
CREATE DATABASE localvpcsqldb;
- Sau khi hoàn tất, hãy nhập exit để thoát khỏi kết nối. Nhập exit một lần nữa để đóng máy ảo.
6. Nhiệm vụ 4. Bật PSC trên phiên bản CloudSQL
Hãy sử dụng các lệnh gcloud để bật tuỳ chọn PSC nhằm cho phép kết nối. Hoàn tất cấu hình này trong dự án cơ sở dữ liệu.
- Chuyển sang chế độ xem Cloud Shell (Lọt vào đám mây).
- Chạy lệnh sau trong Cloud Shell.
- Thay thế Ensure
YOUR_DB_PROJECT_HERE
bằng mã dự án cơ sở dữ liệu. - Thay thế Ensure
YOUR_CONSUMER_PROJECT_HERE
bằng mã dự án của người dùng.
project_id=YOUR_DB_PROJECT_HERE
allowed_project=YOUR_CONSUMER_PROJECT_HERE
gcloud beta sql instances patch psc-psa-sql-db \
--project=$project_id \
--enable-private-service-connect \
--allowed-psc-projects=$allowed_project
- Thao tác này sẽ cập nhật cơ sở dữ liệu hiện có bằng tệp đính kèm PSC. Quá trình này sẽ mất hơn 10 phút.
Nếu bạn gặp lỗi chờ hết thời gian chờ, thì lỗi này cũng sẽ cung cấp cho bạn lệnh để tiếp tục xem tiến trình. Ví dụ: "Bạn có thể tiếp tục chờ thao tác bằng cách chạy `gcloud beta sql operations wait –project "
Xin lưu ý rằng bạn có thể triển khai một cơ sở dữ liệu mới đã bật PSA và PSC từ đầu.
Xác minh cơ sở dữ liệu
- Sau khi hoàn tất, hãy chuyển đến SQL trong bảng điều khiển, chọn thực thể cơ sở dữ liệu psc-psa-sql-db.
- Ở bên trái, hãy mở rộng ngăn trượt các tuỳ chọn SQL rồi chọn Kết nối
- Trong thẻ tóm tắt, bạn có thể xem thông tin về kết nối.
- Sao chép địa chỉ Tệp đính kèm dịch vụ rồi lưu vào một nơi nào đó trên hệ thống.
- Bạn sẽ cần thông tin này để hoàn thành nhiệm vụ tiếp theo 5 – bước 8.
7. Nhiệm vụ 5. Thiết lập môi trường cho dự án người dùng (Terraform)
Trong dự án người dùng, chúng ta sẽ tạo một VPC tuỳ chỉnh có quy tắc Tường lửa và mạng con. Mở bảng điều khiển trên đám mây rồi chọn dự án mà bạn sẽ sử dụng.
- Ở đầu bảng điều khiển, bên phải biểu tượng Google Cloud, hãy nhấp vào trình đơn thả xuống rồi chọn thẻ tất cả.
- Trong số các dự án được liệt kê, hãy chọn mã dự án người dùng để tiếp tục.
- Mở Cloud Shell ở đầu bảng điều khiển ở bên phải, đảm bảo bạn thấy mã dự án của người dùng trong Cloud Shell, xác nhận mọi lời nhắc để cho phép truy cập.
- Tạo thư mục có tên terraform-consumer-psc và di chuyển đến thư mục
mkdir terraform-consumer-psc && cd terraform-consumer-psc
- Tạo tệp main.tf, variable.tf và psc.tf.
touch main.tf variable.tf psc.tf
- Chuyển sang chế độ xem Trình chỉnh sửa Cloud Shell cho mã dự án của người dùng. Chọn editor (trình chỉnh sửa), đảm bảo bạn cho phép mọi lời nhắc cần thiết để giao diện có thể tải.
- Sau khi tải, hãy chuyển đến File > Open Folder (Tệp > Mở thư mục) rồi chuyển đến /home/your-user-name/terraform-consumer-psc và chọn Ok để mở thư mục trong trình chỉnh sửa.
- Chọn tệp variable.tf rồi thêm nội dung sau. Thay thế văn bản
your-consumer-project-id-here
bằng mã dự án của người tiêu dùng thực tế của bạn trong dấu ngoặc kép. Thay thế văn bảnyour-psc-attachment-id-here
bằng địa chỉ đính kèm psc của bạn trong dấu ngoặc kép. Đây là mã nhận dạng bạn đã sao chép trong nhiệm vụ 4 phần 5-7
variable "project_id" { type = string default = "your-consumer-project-id-here" } variable "psc_attachment_id" { type = string default = "your-psc-attachment-id-here" } variable "network_id" { type = string default = "psc-endpoint-vpc" } variable "region_id" { type = string default = "us-east1" }
- Tiếp theo, hãy mở tệp main.tf. Chúng ta sẽ thêm một số mã terraform để thực hiện nhiều thao tác như giải thích bên dưới.
Bật API |
|
Tạo VPC |
|
Tạo cổng NAT |
|
Thêm quy tắc tường lửa |
|
- Sao chép và dán nội dung sau vào tệp .tf chính.
resource "google_project_service" "default" { for_each = toset([ "compute.googleapis.com", "cloudresourcemanager.googleapis.com" ]) service = each.value disable_on_destroy = false } resource "google_compute_network" "default" { project = var.project_id name = var.network_id auto_create_subnetworks = false mtu = 1460 routing_mode = "GLOBAL" } resource "google_compute_subnetwork" "vm_subnet_pc" { name = "vm-net" ip_cidr_range = "192.168.80.0/24" region = var.region_id network = google_compute_network.default.name project = var.project_id } resource "google_compute_subnetwork" "psc_subnet_ip" { name = "psc-subnet" ip_cidr_range = "192.168.100.0/24" region = var.region_id network = google_compute_network.default.name project = var.project_id } resource "google_compute_router" "default" { name = "outbound-nat" region = var.region_id network = google_compute_network.default.id bgp { asn = 64514 } } resource "google_compute_router_nat" "default" { name = "outbound-nat-gw" router = google_compute_router.default.name region = google_compute_router.default.region nat_ip_allocate_option = "AUTO_ONLY" source_subnetwork_ip_ranges_to_nat = "ALL_SUBNETWORKS_ALL_IP_RANGES" log_config { enable = true filter = "ERRORS_ONLY" } } resource "google_compute_firewall" "allow_icmp" { name = "allow-icmp-${google_compute_network.default.name}" network = google_compute_network.default.id project = var.project_id allow { protocol = "icmp" } source_ranges = ["0.0.0.0/0"] } resource "google_compute_firewall" "allow_ssh" { name = "allow-ssh-${google_compute_network.default.name}" network = google_compute_network.default.id project = var.project_id allow { protocol = "tcp" ports = ["22"] } source_ranges = ["0.0.0.0/0"] target_tags = ["allow-ssh"] } resource "google_compute_firewall" "allow_internal" { name = "allow-internal-${google_compute_network.default.name}" network = google_compute_network.default.id project = var.project_id allow { protocol = "icmp" } allow { protocol = "tcp" ports = ["0-65535"] } allow { protocol = "udp" ports = ["0-65535"] } source_ranges = ["192.168.0.0/16"] }
- Chuyển về giao diện dòng lệnh Cloud Shell, đảm bảo bạn đang ở thư mục terraform-consumer-psc
cd terraform-consumer-psc
trong dự án người dùng và chạy các lệnh sau
terraform init
Khởi chạy thư mục đang hoạt động. Bước này sẽ tải các nhà cung cấp cần thiết cho cấu hình đã cho.
terraform plan
Tạo một kế hoạch thực thi, cho biết những hành động mà Terraform sẽ thực hiện để triển khai cơ sở hạ tầng của bạn.
- Bây giờ, để tạo tài nguyên, hãy chạy lệnh
terraform apply
và nhậpyes
để chạy.
8. Nhiệm vụ 6. Tạo điểm cuối PSC đến tệp đính kèm cơ sở dữ liệu SQL trong dự án của người dùng và kiểm thử máy ảo (Terraform)
Hoàn tất cấu hình này trong dự án người dùng.
- Chuyển về trình chỉnh sửa Cloud Shell, mở thư mục terraform-consumer-psc rồi chọn tệp
psc.tf
. Thêm mã Terraform sau vào tệp. Thao tác này sẽ tạo một IP nội bộ tĩnh, một điểm cuối PSC và một máy ảo thử nghiệm đã cài đặt Maria DB.
resource "google_compute_address" "default" { name = "psc-ip-1" region = var.region_id address_type = "INTERNAL" subnetwork = google_compute_subnetwork.psc_subnet_ip.name address = "192.168.100.100" } resource "google_compute_forwarding_rule" "default" { name = "psc-sql-endpoint" region = var.region_id network = google_compute_network.default.name ip_address = google_compute_address.default.self_link load_balancing_scheme = "" target = var.psc_attachment_id } resource "google_compute_instance" "sql_test_vm" { name = "remote-sql-test-vm" machine_type = "e2-medium" zone = "${var.region_id}-b" project = var.project_id boot_disk { initialize_params { image = "debian-cloud/debian-11" } } network_interface { subnetwork = google_compute_subnetwork.vm_subnet_pc.name } # No external IP address network_performance_config { total_egress_bandwidth_tier = "DEFAULT" } tags = ["allow-icmp", "allow-ssh", "allow-internal", "allow-health-check"] # Install MariaDB at startup metadata_startup_script = <<EOF #!/bin/bash apt-get update apt-get install -y mariadb-server systemctl enable mariadb EOF }
- Chuyển về cổng nối Cloud Shell, đảm bảo bạn đang ở thư mục terraform-consumer-psc
cd terraform-consumer-psc
trong dự án người dùng và chạy các lệnh sau
terraform plan
Tạo một kế hoạch thực thi, cho biết những hành động mà Terraform sẽ thực hiện để triển khai cơ sở hạ tầng của bạn.
- Bây giờ, để tạo tài nguyên, hãy chạy lệnh
terraform apply
và nhậpyes
để chạy
9. Nhiệm vụ 7. Xác minh khả năng kết nối của điểm cuối từ máy ảo thông qua địa chỉ IP PSC
Hoàn tất việc này trong dự án người dùng
- Chuyển đến Phiên bản máy ảo. Chọn remote-sql-test-vm
- Chọn tuỳ chọn SSH để kết nối với máy ảo.
- Kết nối với DB qua điểm cuối bằng cách sau:
mysql --host=192.168.100.100 --user=testsql --password=cloudsql24
- Khi kết nối được thiết lập, hãy tạo một cơ sở dữ liệu có psc-sql-db sau đây.
CREATE DATABASE remotepscpsasqldb;
- Sau khi hoàn tất, hãy nhập exit để thoát khỏi kết nối. Nhập exit một lần nữa để đóng máy ảo.
10. Nhiệm vụ 8. Xác minh mục nhập cơ sở dữ liệu
Hoàn tất quy trình xác minh này trong dự án cơ sở dữ liệu
- Ở đầu bảng điều khiển, bên phải biểu tượng Google Cloud, hãy nhấp vào trình đơn thả xuống rồi chọn thẻ tất cả.
- Trong các dự án được liệt kê, hãy chọn mã dự án database (cơ sở dữ liệu) để tiếp tục.
- Chuyển đến SQL, chọn cơ sở dữ liệu psc-psa-sql-db, mở rộng các tuỳ chọn SQL rồi chọn Cơ sở dữ liệu. Bạn sẽ thấy cơ sở dữ liệu bạn vừa tạo có tên là remotepscpsasqldb từ máy ảo dự án người dùng và cũng có localvpcsqldb từ máy ảo dự án db**
.
**
11. Dọn dẹp
Hoàn tất việc này trong dự án Người dùng
- Chọn mã dự án của người tiêu dùng
- Chuyển đến Cloud Shell để đảm bảo bạn thấy mã dự án của người dùng
- Chuyển đến thư mục terraform-consumer-psc
cd terraform-consumer-psc
và chạy lệnh sauterraform destroy
rồi nhậpyes
, tất cả tài nguyên bạn đã tạo trong dự án người dùng bằng Terraform sẽ bị xoá.
Hoàn thành việc này trong dự án Cơ sở dữ liệu
- Chọn mã dự án cơ sở dữ liệu
- Chuyển đến Cloud Shell để đảm bảo bạn thấy mã dự án cơ sở dữ liệu
- Chuyển đến thư mục terraform-db-psc
cd terraform-db-psc
và chạy lệnh sauterraform destroy
rồi nhậpyes
, hầu hết các tài nguyên bạn đã tạo trong dự án db bằng Terraform sẽ bị xoá. Không thể xoá mạng dịch vụ và sẽ báo lỗi. - Tiếp theo, hãy xoá các tệp sau khỏi thư mục terraform-db-psc.
rm -r terraform.tfstate terraform.tfstate.backup
- Tiếp theo, trong bảng điều khiển, hãy chuyển đến Mạng VPC
- Chọn VPC database-net, chọn PRIVATE SERVICES ACCESS (Quyền truy cập vào dịch vụ riêng tư), trong phần Allocated IP Ranges for Services (Dải IP được phân bổ cho dịch vụ), hãy chọn psa-range-database-net rồi chọn tuỳ chọn Release (Phát hành)
- Tiếp theo, hãy chọn VPC NETWORK PEERING (Kết nối mạng VPC), chọn servicenetworking-googleapis-com rồi chọn Delete (Xoá)
- Tiếp theo, hãy chọn Xoá mạng VPC
12. Xin chúc mừng
Xin chúc mừng! Bạn đã định cấu hình thành công một phiên bản Cloud SQL có tệp đính kèm PSA và PSC, đồng thời tạo một điểm cuối Kết nối dịch vụ riêng tư trong một VPC khác.
Tìm hiểu thêm
Bạn có thể đọc thêm về Kết nối dịch vụ riêng tư và Cloud SQL
Lớp học lập trình liên quan khác: https://codelabs.developers.google.com/codelabs/cloudsql-psc-terraform