1. Giới thiệu
Private Service Connect (PSC) giúp đơn giản hoá cách thức mọi người sử dụng dịch vụ một cách an toàn và riêng tư. Mô hình này giúp kiến trúc mạng trở nên dễ dàng hơn rất nhiều bằng cách cho phép người sử dụng dịch vụ kết nối riêng tư với các nhà sản xuất dịch vụ trong nhiều tổ chức và loại bỏ nhu cầu kết nối ngang hàng đám mây riêng ảo. Hình 1 minh hoạ các thuộc tính ngang hàng của VPC và PSC.
Hình 1.
Là một người tiêu dùng dịch vụ, giải pháp này cho phép bạn linh hoạt lựa chọn cách phân bổ các IP riêng tư cho các dịch vụ, đồng thời loại bỏ gánh nặng quản lý dải mạng con cho các VPC của nhà sản xuất. Giờ đây, bạn có thể chỉ cần gán một IP ảo đã chọn từ VPC của mình cho dịch vụ đó bằng cách sử dụng tính năng kết nối dịch vụ.
Trong lớp học lập trình này, bạn sẽ xây dựng một cấu trúc Kết nối dịch vụ riêng tư toàn diện minh hoạ việc sử dụng quyền truy cập toàn cầu PSC bằng tập bản đồ MongoDB.
Quyền truy cập toàn cầu cho phép khách hàng kết nối với Private Service Connect (PSC) xuyên qua ranh giới khu vực. Điều này rất hữu ích khi tạo khả năng hoạt động cao trên các dịch vụ được quản lý được lưu trữ ở nhiều khu vực hoặc cho phép khách hàng truy cập vào một dịch vụ không ở cùng khu vực với khách hàng.
2. Bật quyền truy cập chung
Quyền truy cập chung là một tính năng không bắt buộc được định cấu hình trong quy tắc chuyển tiếp phía người tiêu dùng. Lệnh sau đây cho biết cách định cấu hình lệnh này:
gcloud beta compute forwarding-rules create psc-west \ --region=us-west1 \ --network=consumer-vpc \ --address=psc-west-address \ --target-service-attachment=projects/.../serviceAttachments/sa-west \ --allow-psc-global-access
- Cờ
--allow-psc-global-access
cho phép truy cập chung trên điểm cuối của Private Service Connect - Quyền truy cập chung cho phép ứng dụng ở một khu vực khác với quy tắc chuyển tiếp Kết nối dịch vụ riêng tư, nhưng quy tắc chuyển tiếp vẫn phải ở cùng khu vực với tệp đính kèm dịch vụ được kết nối.
- Không yêu cầu cấu hình trên tệp đính kèm dịch vụ của nhà sản xuất để cho phép truy cập chung. Đây hoàn toàn là một lựa chọn ở phía người tiêu dùng.
Bạn cũng có thể bật hoặc tắt Quyền truy cập chung đối với các điểm cuối hiện có bất cứ lúc nào. Khi bật chế độ truy cập chung trên một điểm cuối hiện tại, các kết nối đang hoạt động sẽ không làm gián đoạn lưu lượng truy cập. Quyền truy cập chung được bật trên quy tắc chuyển tiếp hiện có bằng lệnh sau:
gcloud beta compute forwarding-rules update psc-west --allow-psc-global-access
Tắt quyền truy cập chung
Bạn cũng có thể tắt quyền truy cập chung trên các quy tắc chuyển tiếp hiện có có cờ --no-allow-psc-global-access
. Xin lưu ý rằng mọi lưu lượng truy cập liên khu vực đang hoạt động sẽ bị chấm dứt sau khi lệnh này chạy.
gcloud beta compute forwarding-rules update psc-west --no-allow-psc-global-access
3. Sản phẩm bạn sẽ tạo ra
- Một cụm Atlas MongoDB đa vùng (cấu trúc liên kết được mô tả trong Hình 2) sẽ được tạo với một nút trong us-west1 và hai nút trong các vùng us-west2 tương ứng.
- VPC của người tiêu dùng và vm được liên kết để truy cập vào các cụm MongoDB trong us-west1 và us-west2.
- Một VPC và hai mạng con ở khu vực us-west1 và us-west2 tương ứng với ít nhất 64 địa chỉ IP miễn phí trong mỗi mạng con (Tạo mạng con với /26 trở xuống).
Ứng dụng MongoDB sẽ được cài đặt trên vm1 trong vpc dành cho người dùng. Khi nút chính bị lỗi trong us-west1, ứng dụng sẽ có thể đọc/ghi qua nút chính mới trong us-west2.
Hình 2.
Kiến thức bạn sẽ học được
- Cách tạo VPC và mạng con được triển khai ở 2 khu vực
- Cách triển khai cụm tập bản đồ MongoDB đa khu vực
- Cách tạo điểm cuối riêng tư
- Cách kết nối với MongoDB
- Cách thực hiện và xác thực tính năng chuyển đổi dự phòng MongoDB đa vùng
Bạn cần có
- Dự án trong Google Cloud
- Cung cấp 26 mạng con cho mỗi khu vực
- Quyền truy cập của Chủ sở hữu dự án hoặc Chủ sở hữu tổ chức vào MongoDB Atlas để tạo cụm MongoDB có cấp cụm M10 trở lên. (Vui lòng dùng GETATLAS để nhận tín dụng miễn phí khi chạy PoV)
4. Trước khi bắt đầu
Cập nhật dự án để hỗ trợ lớp học lập trình
Lớp học lập trình này sử dụng $variables để hỗ trợ việc triển khai cấu hình gcloud trong Cloud Shell.
Bên trong Cloud Shell, hãy thực hiện như sau:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=YOUR-PROJECT-NAME
echo $projectname
5. Thiết lập dành cho người tiêu dùng
Tạo VPC của người tiêu dùng
Bên trong Cloud Shell, hãy thực hiện như sau:
gcloud compute networks create consumer-vpc --project=$projectname --subnet-mode=custom
Tạo mạng con của người tiêu dùng
Bên trong Cloud Shell, hãy thực hiện như sau:
gcloud compute networks subnets create vm-subnet --project=$projectname --range=10.10.10.0/29 --network=consumer-vpc --region=us-west1
Bên trong Cloud Shell, hãy tạo điểm cuối dành cho người tiêu dùng cho us-west1:
gcloud compute networks subnets create psc-endpoint-us-west1 --project=$projectname --range=192.168.10.0/26 --network=consumer-vpc --region=us-west1
Bên trong Cloud Shell, hãy tạo điểm cuối dành cho người dùng cho us-west2:
gcloud compute networks subnets create psc-endpoint-us-west2 --project=$projectname --range=172.16.10.0/26 --network=consumer-vpc --region=us-west2
Cấu hình Cloud Router và NAT
Cloud NAT được dùng trong lớp học lập trình để cài đặt gói phần mềm vì các phiên bản VM không có địa chỉ IP bên ngoài.
Bên trong Cloud Shell, hãy tạo bộ định tuyến trên đám mây.
gcloud compute routers create consumer-cr --network consumer-vpc --region us-west1
Bên trong Cloud Shell, hãy tạo cổng NAT.
gcloud compute routers nats create consumer-nat --router=consumer-cr --auto-allocate-nat-external-ips --nat-all-subnet-ip-ranges --region us-west1
Cấu hình phiên bản vm1
Trong phần sau, bạn sẽ tạo phiên bản Compute Engine vm1.
Bên trong Cloud Shell, hãy tạo thực thể vm1.
gcloud compute instances create vm1 \
--project=$projectname \
--zone=us-west1-a \
--machine-type=e2-micro \
--network-interface=subnet=vm-subnet,no-address \
--maintenance-policy=MIGRATE \
--provisioning-model=STANDARD \
--create-disk=auto-delete=yes,boot=yes,device-name=vm1,image=projects/ubuntu-os-cloud/global/images/ubuntu-2004-focal-v20230213,mode=rw,size=10,type=projects/$projectname/zones/us-west1-a/diskTypes/pd-balanced
--metadata startup-script="#! /bin/bash
sudo apt-get update
sudo apt-get install tcpdump -y
sudo apt-get install dnsutils -y"
Để cho phép IAP kết nối với các phiên bản máy ảo của bạn, hãy tạo một quy tắc tường lửa:
- Áp dụng cho tất cả các thực thể máy ảo mà bạn muốn truy cập được bằng cách sử dụng IAP.
- Cho phép lưu lượng truy cập vào từ dải IP 35.235.240.0/20. Dải ô này chứa tất cả địa chỉ IP mà IAP sử dụng để chuyển tiếp TCP.
Bên trong Cloud Shell, hãy tạo quy tắc tường lửa cho IAP.
gcloud compute firewall-rules create ssh-iap-consumer-vpc \
--network consumer-vpc \
--allow tcp:22 \
--source-ranges=35.235.240.0/20
6. Tạo cụm Atlas MongoDB đa vùng
- Chúng ta cần thiết lập cụm Atlas trước khi bắt đầu thiết lập PSC. Bạn có thể đăng ký MongoDB Atlas theo một trong hai cách dưới đây:
- Thông qua Google Cloud Marketplace nếu bạn có tài khoản Google Cloud. Hãy tham khảo tài liệu này để thiết lập gói thuê bao của bạn.
- Bằng trang đăng ký Atlas.
- Sau khi đăng ký Atlas, nhấp vào nút Tạo cơ sở dữ liệu như được hiển thị dưới đây.
- Tạo cụm mới → Chuyên dụng
- Nhà cung cấp dịch vụ đám mây và khu vực → Google Cloud
- Đa đám mây, đa vùng và cách ly khối lượng công việc → Đã chọn (đánh dấu màu xanh dương)
- Các nút có thể điện → us-west1 (1 nút), us-west2 (2 nút)
- Cấp cụm → M10, Giữ tất cả các chế độ cài đặt khác làm mặc định
- Tên cụm → psc-mongodb-uswest1-uswest2
- Chọn → Tạo cụm
- Quá trình tạo cơ sở dữ liệu mất từ 7 đến 10 phút
Chế độ xem của cụm sau khi được triển khai
7. Tạo thiết bị đầu cuối riêng tư cho us-west1
- Đăng nhập vào tài khoản Atlas và chuyển đến dự án của bạn.
Tạo người dùng mới để cấp quyền đọc/ghi vào bất kỳ cơ sở dữ liệu nào
Bảo mật → Chọn mục Truy cập cơ sở dữ liệu để thêm người dùng cơ sở dữ liệu mới. Sau đây là ví dụ về tên người dùng và mật khẩu được định cấu hình dưới dạng lớp học lập trình. Hãy nhớ chọn tính năng đọc và ghi của vai trò tích hợp sẵn vào cơ sở dữ liệu bất kỳ.
- Trong phần Bảo mật → Quyền truy cập mạng, Danh sách truy cập IP không yêu cầu mục nhập
Chuẩn bị điểm cuối riêng tư trong MongoDB Atlas
- Chọn, Truy cập mạng → Thiết bị đầu cuối riêng tư → Cụm chuyên dụng → Thêm điểm cuối riêng tư
Nhà cung cấp dịch vụ đám mây
- Chọn Google Cloud, rồi chọn tiếp theo
Tệp đính kèm dịch vụ
- Chọn khu vực, us-west1, rồi chọn tiếp theo
Điểm cuối
- Để tạo điểm cuối kết nối dịch vụ riêng tư, hãy cung cấp những thông tin sau:
- Mã dự án trên Google Cloud: Chọn "hiển thị hướng dẫn" để biết thông tin chi tiết
- Tên đám mây riêng ảo: consumer-vpc
- Tên mạng con: psc-endpoint-us-west1
- Tiền tố kết nối thiết bị đầu cuối của dịch vụ riêng tư: psc-endpoint-us-west1
Thiết lập điểm cuối
Trong phần sau, một tập lệnh shell được tạo và cần được lưu cục bộ có tên là setup_psc.sh. Sau khi lưu, hãy chỉnh sửa tập lệnh shell để cho phép quyền truy cập chung psc. Bạn có thể thực hiện thao tác này trong dự án Cloud Shell trên Google Cloud.
- Ví dụ về tập lệnh shell, dữ liệu đầu ra của bạn sẽ có các giá trị khác nhau
- Sao chép tập lệnh shell từ bảng điều khiển MongoBD và lưu nội dung trong thiết bị đầu cuối Google Cloud Cloud Shell, đảm bảo lưu tập lệnh dưới dạng setup_psc.sh
Ví dụ trước khi cập nhật:
#!/bin/bash
gcloud config set project yourprojectname
for i in {0..49}
do
gcloud compute addresses create psc-endpoint-us-west1-ip-$i --region=us-west1 --subnet=psc-endpoint-us-west1
done
for i in {0..49}
do
if [ $(gcloud compute addresses describe psc-endpoint-us-west1-ip-$i --region=us-west1 --format="value(status)") != "RESERVED" ]; then
echo "psc-endpoint-us-west1-ip-$i is not RESERVED";
exit 1;
fi
done
for i in {0..49}
do
gcloud compute forwarding-rules create psc-endpoint-us-west1-$i --region=us-west1 --network=consumer-vpc --address=psc-endpoint-us-west1-ip-$i --target-service-attachment=projects/p-npwsmzelxznmaejhj2vn1q0q/regions/us-west1/serviceAttachments/sa-us-west1-61485ec2ae9d2e48568bf84f-$i
done
if [ $(gcloud compute forwarding-rules list --regions=us-west1 --format="csv[no-heading](name)" --filter="(name:psc-endpoint-us-west1*)" | wc -l) -gt 50 ]; then
echo "Project has too many forwarding rules that match prefix psc-endpoint-us-west1. Either delete the competing resources or choose another endpoint prefix."
exit 2;
fi
gcloud compute forwarding-rules list --regions=us-west1 --format="json(IPAddress,name)" --filter="name:(psc-endpoint-us-west1*)" > atlasEndpoints-psc-endpoint-us-west1.json
Cập nhật tập lệnh shell để hỗ trợ truy cập chung
Sử dụng trình chỉnh sửa nano hoặc vi để xác định và cập nhật tập lệnh shell bằng cú pháp bên dưới:
gcloud beta compute forwarding-rules create psc-endpoint-us-west1-$i --region=us-west1 --network=consumer-vpc --address=psc-endpoint-us-west1-ip-$i --target-service-attachment=projects/p-npwsmzelxznmaejhj2vn1q0q/regions/us-west1/serviceAttachments/sa-us-west1-61485ec2ae9d2e48568bf84f-$i --allow-psc-global-access
Ví dụ sau khi cập nhật:
#!/bin/bash
gcloud config set project yourprojectname
for i in {0..49}
do
gcloud compute addresses create psc-endpoint-us-west1-ip-$i --region=us-west1 --subnet=psc-endpoint-us-west1
done
for i in {0..49}
do
if [ $(gcloud compute addresses describe psc-endpoint-us-west1-ip-$i --region=us-west1 --format="value(status)") != "RESERVED" ]; then
echo "psc-endpoint-us-west1-ip-$i is not RESERVED";
exit 1;
fi
done
for i in {0..49}
do
gcloud beta compute forwarding-rules create psc-endpoint-us-west1-$i --region=us-west1 --network=consumer-vpc --address=psc-endpoint-us-west1-ip-$i --target-service-attachment=projects/p-npwsmzelxznmaejhj2vn1q0q/regions/us-west1/serviceAttachments/sa-us-west1-61485ec2ae9d2e48568bf84f-$i --allow-psc-global-access
done
if [ $(gcloud compute forwarding-rules list --regions=us-west1 --format="csv[no-heading](name)" --filter="(name:psc-endpoint-us-west1*)" | wc -l) -gt 50 ]; then
echo "Project has too many forwarding rules that match prefix psc-endpoint-us-west1. Either delete the competing resources or choose another endpoint prefix."
exit 2;
fi
gcloud compute forwarding-rules list --regions=us-west1 --format="json(IPAddress,name)" --filter="name:(psc-endpoint-us-west1*)" > atlasEndpoints-psc-endpoint-us-west1.json
Chạy tập lệnh shell
Thao tác và thực thi tập lệnh setup_psc.sh sau khi tạo xong một tệp có tên atlasEndpoints-psc-endpoint-us-west1.json. Tệp json chứa danh sách địa chỉ IP và Tên thiết bị đầu cuối của Kết nối dịch vụ riêng tư cần thiết cho bước tiếp theo của quá trình triển khai.
Bên trong Cloud Shell, thực hiện những việc sau:
sh setup_psc.sh
Sau khi tập lệnh hoàn tất, hãy sử dụng trình chỉnh sửa Cloud Shell để tải tệp atlasEndpoints-psc-endpoint-us-west1.json xuống thiết bị.
Tải tệp JSON lên
Tải tệp json đã lưu trước đó atlasEndpoints-psc-endpoint-us-west1.json lên
Chọn Tạo
Xác thực điểm cuối của Private Service Connect
Trong giao diện người dùng MongoDB, hãy chuyển đến dự án của bạn, sau đó là Bảo mật → Truy cập mạng → Điểm cuối riêng tư. Khi chọn thẻ, cụm chuyên dụng, quá trình chuyển đổi điểm cuối sang khả dụng sẽ mất 10 phút.
Trạng thái có sẵn
Trong Google Cloud Console, hãy chuyển đến phần Dịch vụ mạng → Private Services Connect, chọn thẻ Điểm cuối đã kết nối hiển thị các thiết bị đầu cuối của người dùng đang chuyển đổi đang chờ xử lý → Đã chấp nhận, trong ví dụ dưới đây:
8. Tạo thiết bị đầu cuối riêng tư cho us-west2
- Đăng nhập vào tài khoản Atlas và chuyển đến dự án của bạn.
Chuẩn bị điểm cuối riêng tư trong MongoDB Atlas
- Chọn, Truy cập mạng → Thiết bị đầu cuối riêng tư → Cụm chuyên dụng → Thêm điểm cuối riêng tư
Nhà cung cấp dịch vụ đám mây
- Chọn Google Cloud, rồi chọn tiếp theo
Tệp đính kèm dịch vụ
- Chọn khu vực, us-west2, rồi chọn tiếp theo
Điểm cuối
- Để tạo điểm cuối kết nối dịch vụ riêng tư, hãy cung cấp những thông tin sau:
- Mã dự án trên Google Cloud: Chọn "hiển thị hướng dẫn" để biết thông tin chi tiết
- Tên đám mây riêng ảo: consumer-vpc
- Tên mạng con: psc-endpoint-us-west2
- Tiền tố kết nối thiết bị đầu cuối của dịch vụ riêng tư: psc-endpoint-us-west2
Thiết lập điểm cuối
Trong phần sau, một tập lệnh shell được tạo và cần được lưu cục bộ có tên là setup_psc.sh. Sau khi lưu, hãy chỉnh sửa tập lệnh shell để cho phép quyền truy cập chung psc. Bạn có thể thực hiện thao tác này trong dự án Cloud Shell trên Google Cloud.
- Ví dụ về tập lệnh shell, dữ liệu đầu ra của bạn sẽ có các giá trị khác nhau
- Sao chép tập lệnh shell từ bảng điều khiển MongoBD và lưu nội dung trong thiết bị đầu cuối Google Cloud Cloud Shell, đảm bảo lưu tập lệnh dưới dạng setup_psc.sh
Ví dụ trước khi cập nhật:
#!/bin/bash
gcloud config set project yourprojectname
for i in {0..49}
do
gcloud compute addresses create psc-endpoint-us-west2-ip-$i --region=us-west2 --subnet=psc-endpoint-us-west2
done
for i in {0..49}
do
if [ $(gcloud compute addresses describe psc-endpoint-us-west2-ip-$i --region=us-west2 --format="value(status)") != "RESERVED" ]; then
echo "psc-endpoint-us-west2-ip-$i is not RESERVED";
exit 1;
fi
done
for i in {0..49}
do
gcloud compute forwarding-rules create psc-endpoint-us-west2-$i --region=us-west2 --network=consumer-vpc --address=psc-endpoint-us-west2-ip-$i --target-service-attachment=projects/p-npwsmzelxznmaejhj2vn1q0q/regions/us-west2/serviceAttachments/sa-us-west2-61485ec2ae9d2e48568bf84f-$i
done
if [ $(gcloud compute forwarding-rules list --regions=us-west2 --format="csv[no-heading](name)" --filter="(name:psc-endpoint-us-west2*)" | wc -l) -gt 50 ]; then
echo "Project has too many forwarding rules that match prefix psc-endpoint-us-west2. Either delete the competing resources or choose another endpoint prefix."
exit 2;
fi
gcloud compute forwarding-rules list --regions=us-west2 --format="json(IPAddress,name)" --filter="name:(psc-endpoint-us-west2*)" > atlasEndpoints-psc-endpoint-us-west2.json
Cập nhật tập lệnh shell để hỗ trợ truy cập chung
Sử dụng trình chỉnh sửa nano hoặc vi để xác định và cập nhật tập lệnh shell bằng cú pháp bên dưới:
gcloud beta compute forwarding-rules create psc-endpoint-us-west2-$i --region=us-west2 --network=consumer-vpc --address=psc-endpoint-us-west2-ip-$i --target-service-attachment=projects/p-npwsmzelxznmaejhj2v
n1q0q/regions/us-west2/serviceAttachments/sa-us-west2-61485ec2ae9d2e48568bf84f-$i --allow-psc-global-access
done
Ví dụ sau khi cập nhật:
#!/bin/bash
gcloud config set project yourprojectname
for i in {0..49}
do
gcloud compute addresses create psc-endpoint-us-west2-ip-$i --region=us-west2 --subnet=psc-endpoint-us-west2
done
for i in {0..49}
do
if [ $(gcloud compute addresses describe psc-endpoint-us-west2-ip-$i --region=us-west2 --format="value(status)") != "RESERVED" ]; then
echo "psc-endpoint-us-west2-ip-$i is not RESERVED";
exit 1;
fi
done
for i in {0..49}
do
gcloud beta compute forwarding-rules create psc-endpoint-us-west2-$i --region=us-west2 --network=consumer-vpc --address=psc-endpoint-us-west2-ip-$i --target-service-attachment=projects/p-npwsmzelxznmaejhj2v
n1q0q/regions/us-west2/serviceAttachments/sa-us-west2-61485ec2ae9d2e48568bf84f-$i --allow-psc-global-access
done
if [ $(gcloud compute forwarding-rules list --regions=us-west2 --format="csv[no-heading](name)" --filter="(name:psc-endpoint-us-west2*)" | wc -l) -gt 50 ]; then
echo "Project has too many forwarding rules that match prefix psc-endpoint-us-west2. Either delete the competing resources or choose another endpoint prefix."
exit 2;
fi
gcloud compute forwarding-rules list --regions=us-west2 --format="json(IPAddress,name)" --filter="name:(psc-endpoint-us-west2*)" > atlasEndpoints-psc-endpoint-us-west2.json
Chạy tập lệnh shell
Di chuyển và thực thi tập lệnh setup_psc.sh, sau khi tạo xong một tệp có tên atlasEndpoints-psc-endpoint-us-west2.json. Tệp json chứa danh sách địa chỉ IP và Tên thiết bị đầu cuối của Kết nối dịch vụ riêng tư cần thiết cho bước tiếp theo của quá trình triển khai.
Bên trong Cloud Shell, thực hiện những việc sau:
sh setup_psc.sh
Sau khi tập lệnh hoàn tất, hãy sử dụng trình chỉnh sửa Cloud Shell để tải atlasEndpoints-psc-endpoint-us-west2.json xuống thiết bị.
Tải tệp JSON lên
Tải tệp json đã lưu trước đó atlasEndpoints-psc-endpoint-us-west2.json lên
Chọn Tạo
Xác thực điểm cuối của Private Service Connect
Trong giao diện người dùng MongoDB, hãy chuyển đến dự án của bạn, sau đó là Bảo mật → Truy cập mạng → Điểm cuối riêng tư. Khi bạn chọn thẻ, cụm chuyên dụng, điểm cuối sẽ chuyển đổi sang trạng thái sẵn có sau 10 phút.
Trạng thái có sẵn:
Trong Google Cloud Console, hãy chuyển đến phần Dịch vụ mạng → Private Services Connect, chọn thẻ Điểm cuối đã kết nối hiển thị các thiết bị đầu cuối của người dùng đang chuyển đổi đang chờ xử lý → Đã chấp nhận, trong ví dụ ở bên dưới. Tổng cộng 100 điểm cuối được triển khai trong thiết bị đầu cuối của người dùng và cần phải chuyển sang trạng thái được chấp nhận trước khi chuyển sang bước tiếp theo.
9. Kết nối với tập bản đồ MongoDB từ các điểm cuối riêng tư
Sau khi Chấp nhận kết nối dịch vụ riêng tư, cần thêm thời gian (10-15 phút) để cập nhật cụm MongoDB. Trong giao diện người dùng MongoDB, đường viền màu xám biểu thị việc cập nhật cụm, do đó không thể kết nối với điểm cuối riêng tư.
Xác định quá trình triển khai và chọn Kết nối (lưu ý rằng hộp màu xám không còn xuất hiện nữa)
Chọn loại kết nối → Điểm cuối riêng tư, chọn Chọn phương thức kết nối
Chọn Connect with the MongoDB Shell (Kết nối với MongoDB Shell)
Chọn, tôi chưa cài đặt MongoDB Shell, Ubuntu 20.4 và đảm bảo sao chép nội dung từ bước 1 và bước 3 vào sổ tay.
10. Cài đặt ứng dụng mongosh
Trước khi cài đặt, bạn cần tạo chuỗi lệnh dựa trên các giá trị đã sao chép trước đó có được trong bước 1 và 3. Sau đó, bạn sẽ ssh vào vm1 bằng Cloud Shell, sau đó cài đặt và xác thực ứng dụng mongosh cho cơ sở dữ liệu chính (us-west1). Hình ảnh Ubuntu 20.4 đã được cài đặt khi tạo vm1 trong user-vpc.
Chọn một phương thức kết nối: Bước 1, Sao chép URL tải xuống
Chuỗi lệnh mẫu, thay thế bằng các giá trị tuỳ chỉnh của bạn:
https://downloads.mongodb.com/compass/mongodb-mongosh_1.7.1_amd64.deb
Chọn phương thức kết nối, bước 3.
Chuỗi lệnh mẫu, thay thế bằng các giá trị tuỳ chỉnh của bạn:
mongosh "mongodb+srv://psc-mongodb-uswest1-uswest2-pl-0.2wqno.mongodb.net/psc-mongodb-uswest1-uswest2" --apiVersion 1 --username codelab
Đăng nhập vào vm1
Bên trong Cloud Shell, hãy thực hiện như sau:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=YOUR-PROJECT-NAME
echo $projectname
Đăng nhập vào vm1 bằng IAP trong Cloud Shell, thử lại nếu hết thời gian chờ.
gcloud compute ssh vm1 --project=$projectname --zone=us-west1-a --tunnel-through-iap
Thực hiện cài đặt qua hệ điều hành
Thực hiện việc cài đặt từ thông tin đăng nhập vào hệ điều hành Cloud Shell, thông tin chi tiết bổ sung có sẵn, cập nhật cú pháp bên dưới bằng chuỗi tuỳ chỉnh của bạn
wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
Hoạt động phải phản hồi bằng một
OK
.
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
sudo apt-get update -y
wget https://downloads.mongodb.com/compass/mongodb-mongosh_1.7.1_amd64.deb
sudo dpkg -i mongodb-mongosh_1.7.1_amd64.deb
Kết nối với quá trình triển khai MongoDB
Trong quá trình đăng nhập vào hệ điều hành Cloud Shell, hãy thực hiện những việc sau. Tên người dùng và mật khẩu được định cấu hình là lớp học lập trình.
mongosh
mongosh "mongodb+srv://psc-mongodb-uswest1-uswest2-pl-0.2wqno.mongodb.net/psc-mongodb-uswest1-uswest2" --apiVersion 1 --username codelab
Ví dụ bên dưới:
Thực thi lệnh dựa trên cơ sở dữ liệu
Trong quá trình đăng nhập vào hệ điều hành Cloud Shell, hãy thực hiện những việc sau.
show dbs
use Company
db.Employee.insertOne({"Name":"cosmo","dept":"devops"})
db.Employee.findOne({"Name":"cosmo"})
11. Chuyển đổi dự phòng ở khu vực MongoDB đang hoạt động, us-west1
Trước khi chúng ta thực hiện chuyển đổi dự phòng, hãy xác thực rằng us-west1 là chính và us-west2 có hai nút phụ.
Chuyển đến Cơ sở dữ liệu → psc-mongodb-uswest1-uswest2 → Tổng quan
Trong phần sau, hãy đăng nhập vào vm1 nằm ở us-west1, chuyển đổi dự phòng khu vực cụm MongoDB chính us-west1 và xác minh cơ sở dữ liệu vẫn có thể truy cập được từ cụm MongoDB trong us-west2.
Bạn có thể kiểm thử cả tính năng chuyển đổi dự phòng chính lẫn khu vực từ giao diện người dùng Atlas.
- Đăng nhập vào giao diện người dùng Atlas.
- Nhấp vào [...] bên cạnh tên cụm của bạn, psc-mongodb-uswest1-uswest2 → Thử nghiệm Ngừng hoạt động.
- Chọn Ngừng dịch vụ theo khu vực → Chọn khu vực.
- Chọn khu vực chính, us-west1→ Mô phỏng sự cố ngừng dịch vụ theo khu vực.
Sau khi chọn, cụm sẽ hiển thị mô phỏng sự cố ngừng dịch vụ sau 3-4 phút
Đóng cửa sổ
Xác minh rằng us-west1 đã ngừng hoạt động và us-west2 hiện được sử dụng làm vị trí chính
Chuyển đến Cơ sở dữ liệu → psc-mongodb-uswest1-uswest2 → Tổng quan
Xác thực khả năng kết nối với cụm đồng hồ bằng phương thức chính mới, us-west2
Đăng nhập vào vm1 nằm ở us-west1 và truy cập mongodb trong us-west2 xác thực dịch vụ riêng tư kết nối truy cập toàn cầu.
Nếu phiên Cloud Shell bị chấm dứt, hãy thực hiện những việc sau:
Bên trong Cloud Shell, hãy thực hiện như sau:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=YOUR-PROJECT-NAME
echo $projectname
Đăng nhập vào vm1 bằng IAP trong Cloud Shell, thử lại nếu hết thời gian chờ.
gcloud compute ssh vm1 --project=$projectname --zone=us-west1-a --tunnel-through-iap
Kết nối với quá trình triển khai MongoDB
Trong quá trình đăng nhập vào hệ điều hành Cloud Shell, hãy thực hiện những việc sau.
mongosh
mongosh "mongodb+srv://psc-mongodb-uswest1-uswest2-pl-0.2wqno.mongodb.net/psc-mongodb-uswest1-uswest2" --apiVersion 1 --username codelab
Ví dụ bên dưới:
Thực thi lệnh dựa trên cơ sở dữ liệu
Trong quá trình đăng nhập vào hệ điều hành Cloud Shell, hãy thực hiện những việc sau.
show dbs
use Company
db.Employee.insertOne({"Name":"cosmo","dept":"devops"})
db.Employee.findOne()
exit
Thành công: Bạn đã xác thực rằng quyền truy cập trên toàn cầu của PSC cho phép người tiêu dùng kết nối liền mạch với thiết bị đầu cuối giữa các khu vực để hỗ trợ khả năng hoạt động cao hoặc do sự cố ngừng dịch vụ theo khu vực. Trong lớp học lập trình này, sự cố chuyển đổi dự phòng ở khu vực MongoDB xảy ra ở nút chính nằm ở phía us-west1, do đó, khu vực phụ us-west2 đã giành quyền kiểm soát nút chính. Mặc dù cụm này dẫn đến sự cố ngừng dịch vụ theo khu vực, nhưng người tiêu dùng vm1 ở us-west1 đã truy cập thành công cụm chính mới ở us-west2.
12. Dọn dẹp
Từ Cloud Console, hãy xoá thiết bị đầu cuối của người dùng
Chuyển đến phần Dịch vụ mạng → Kết nối dịch vụ riêng tư → KẾT NỐI ENDPOINTS
Dùng bộ lọc psc-endpoint để loại bỏ khả năng xoá những điểm cuối của người dùng thông thường không thuộc phòng thí nghiệm. Chọn tất cả điểm cuối → DELETE
Xoá địa chỉ IP nội bộ tĩnh được liên kết với thiết bị đầu cuối của người dùng
Chuyển đến mạng VPC → người dùng thông thường → ĐỊA CHỈ IP NỘI BỘ CỦA THỐNG KÊ
Dùng bộ lọc psc-endpoint để loại bỏ những điểm cuối của người tiêu dùng không thuộc phòng thí nghiệm có thể bị xoá và tăng số hàng trên mỗi trang lên 100. Chọn tất cả điểm cuối → PHÁT HÀNH
Trên Cloud Shell, hãy xoá các thành phần của lớp học lập trình.
gcloud compute instances delete vm1 --zone=us-west1-a --quiet
gcloud compute networks subnets delete psc-endpoint-us-west1 vm-subnet --region=us-west1 --quiet
gcloud compute networks subnets delete psc-endpoint-us-west2 --region=us-west2 --quiet
gcloud compute firewall-rules delete ssh-iap-consumer --quiet
gcloud compute routers delete consumer-cr --region=us-west1 --quiet
gcloud compute networks delete consumer-vpc --quiet
Từ giao diện người dùng Atlas, xác định cụm psc-mongodb-uswest1-uswest2 → kết thúc mô phỏng
Chọn Kết thúc quá trình mô phỏng sự cố ngừng dịch vụ —> Thoát cảnh
Cụm này hiện đang hoàn nguyên us-west1 thành cụm chính, quá trình này sẽ mất 3-4 phút. Sau khi hoàn tất, hãy chấm dứt cụm đó, lưu ý đường viền màu xám cho biết có sự thay đổi về trạng thái.
Chèn tên cụm → Chấm dứt
Xoá điểm cuối riêng tư liên kết với us-west1 và us-west2
Từ giao diện người dùng Atlas, hãy chuyển đến phần Bảo mật → Quyền truy cập mạng → Thiết bị đầu cuối riêng tư → Chọn Chấm dứt
13. Xin chúc mừng
Xin chúc mừng! Bạn đã định cấu hình và xác thực thành công điểm cuối Private Service Connect với quyền truy cập chung vào MongoDB trên nhiều khu vực. Bạn đã tạo thành công một VPC cho người tiêu dùng, MongoDB đa vùng và các điểm cuối của người tiêu dùng. Một máy ảo đặt ở us-west1 đã kết nối thành công với MongoDB ở cả us-west1 và us-west2 khi chuyển đổi dự phòng theo khu vực.
Cosmopup cho rằng lớp học lập trình thật tuyệt vời!!
Tiếp theo là gì?
Hãy xem một số lớp học lập trình này...
- Sử dụng Private Service Connect để xuất bản và sử dụng các dịch vụ bằng GKE
- Sử dụng Private Service Connect để xuất bản và sử dụng các dịch vụ
- Kết nối với các dịch vụ tại chỗ qua mạng kết hợp bằng cách sử dụng Private Service Connect và trình cân bằng tải Proxy TCP nội bộ
- Sử dụng Private Service Connect với cấu hình DNS tự động
Tài liệu đọc thêm & Video
- Tổng quan về Private Service Connect
- Private Service Connect là gì?
- Các loại trình cân bằng tải được hỗ trợ