1. Giới thiệu
Private Service Connect (PSC) đơn giản hoá cách sử dụng các dịch vụ một cách an toàn và riêng tư. Mô hình này giúp cấu 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 dùng dịch vụ kết nối riêng tư với nhà cung cấp dịch vụ trên các tổ chức và không cần phải kết nối ngang hàng đám mây riêng ảo. Hình 1 minh hoạ các thuộc tính liên kết VPC và PSC.
Hình 1.
Là người dùng dịch vụ, bạn có thể linh hoạt lựa chọn cách phân bổ IP riêng tư cho các dịch vụ, đồng thời không phải lo lắng về việc quản lý các dải mạng con cho VPC của nhà sản xuất. Giờ đây, bạn chỉ cần chỉ định một địa chỉ IP ảo đã chọn từ VPC 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 Private Service Connect toàn diện minh hoạ cách sử dụng quyền truy cập toàn cầu của PSC bằng MongoDB atlas.
Quyền truy cập toàn cầu cho phép ứng dụng kết nối với Private Service Connect (PSC) trên các ranh giới khu vực. Điều này hữu ích khi tạo khả năng sẵn sà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 ứng dụng truy cập vào một dịch vụ không ở cùng khu vực với ứng dụng.
2. Bật quyền truy cập toàn cầu
Quyền truy cập toàn cầu là một tính năng không bắt buộc được định cấu hình trên quy tắc chuyển tiếp phía người dùng. Lệnh sau đây cho biết cách định cấu hình:
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 quyền truy cập toàn cầu trên điểm cuối Private Service Connect - Quyền truy cập toàn cầu cho phép ứng dụng nằm ở một khu vực khác với quy tắc chuyển tiếp của Private Service Connect, nhưng quy tắc chuyển tiếp vẫn phải nằm trong cùng khu vực với tệp đính kèm dịch vụ mà ứng dụng được kết nối.
- Bạn không cần phải định cấu hình tệp đính kèm dịch vụ của nhà sản xuất để bật quyền truy cập toàn cục. Đây hoàn toàn là lựa chọn củ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 bất cứ lúc nào đối với các điểm cuối hiện có. Không có sự gián đoạn lưu lượng truy cập cho các kết nối đang hoạt động khi bật quyền truy cập toàn cầu trên một điểm cuối hiện có. Quyền truy cập toàn cục được bật trên một 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 toàn cầu
Bạn cũng có thể tắt quyền truy cập toàn cầu trên các quy tắc chuyển tiếp hiện có bằng 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 chạy lệnh nà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 MongoDB Atlas đa khu vực (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 ở us-west1 và hai nút ở us-west2 tương ứng.
- VPC của người dùng và máy ảo được liên kết để truy cập vào các cụm MongoDB ở us-west1 và us-west2.
- Một VPC và hai mạng con tương ứng ở khu vực us-west1 và us-west2, mỗi mạng con có ít nhất 64 địa chỉ IP trống (Tạo mạng con có /26 trở xuống).
Ứng dụng MongoDB sẽ được cài đặt trên vm1 trong vpc của người dùng. Khi nút chính gặp sự cố ở us-west1, ứng dụng sẽ có thể đọc/ghi thông qua nút chính mới ở us-west2.
Hình 2.
Kiến thức bạn sẽ học được
- Cách tạo VPC và các mạng con được triển khai ở hai khu vực
- Cách triển khai cụm MongoDB atlas đ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 dự phòng MongoDB nhiều khu vực
Bạn cần có
- Dự án trên Google Cloud
- Cung cấp một mạng con /26 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 sử dụng GETATLAS để nhận tín dụng miễn phí cho việc 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ợ triển khai cấu hình gcloud trong Cloud Shell.
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 người dùng
Tạo VPC của người dùng
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 dùng
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 của người 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 của 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 máy ảo 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 của thực thể vm1
Trong phần sau, bạn sẽ tạo thực thể 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, hãy tạo một quy tắc tường lửa:
- Áp dụng cho tất cả các phiên bản máy ảo mà bạn muốn truy cập bằng IAP.
- Cho phép lưu lượng truy cập vào từ dải IP 35.235.240.0/20. Phạm vi 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 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 MongoDB Atlas nhiều khu vực
- Chúng ta cần thiết lập một 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 để thiết lập gói thuê bao.
- Với trang đăng ký Atlas.
- Sau khi đăng ký Atlas, hãy nhấp vào nút Tạo cơ sở dữ liệu như minh hoạ bên dưới.
- Tạo cụm mới → Dành riêng
- Nhà cung cấp dịch vụ đám mây và khu vực → Google Cloud
- Đa đám mây, đa khu vực và tách biệt khối lượng công việc → Đã chọn (dấu kiểm màu xanh dương)
- Các nút có thể chọn → us-west1 (1 nút), us-west2 (2 nút)
- Cấp cụm → M10, Giữ nguyên tất cả chế độ cài đặt khác theo 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 7 đến 10 phút
Chế độ xem cụm sau khi triển khai
7. Tạo điểm cuối riêng tư cho us-west1
- Đăng nhập vào tài khoản Atlas rồi chuyển đến dự án của bạn.
Tạo người dùng mới để cho phép quyền đọc/ghi vào bất kỳ cơ sở dữ liệu nào
Bảo mật → Quyền truy cập cơ sở dữ liệu chọn 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 là lớp học lập trình. Hãy nhớ chọn Vai trò tích hợp sẵn để đọc và ghi vào bất kỳ cơ sở dữ liệu nào.
- Trong phần Bảo mật → Quyền truy cập mạng, Danh sách quyền 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 Quyền truy cập mạng → Điểm 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 VPC: consumer-vpc
- Tên mạng con: psc-endpoint-us-west1
- Tiền tố điểm cuối kết nối 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 sẽ được tạo và lưu cục bộ có tên setup_psc.sh. Sau khi lưu, hãy chỉnh sửa tập lệnh shell để cho phép psc truy cập toàn cầu. Bạn có thể thực hiện thao tác này trong Cloud Shell của dự án Google Cloud.
- Ví dụ về tập lệnh shell, kết quả 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, nhớ 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ợ quyền truy cập toàn cục
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
Chuyển đến và thực thi tập lệnh setup_psc.sh, sau khi hoàn tất, một tệp có tên atlasEndpoints-psc-endpoint-us-west1.json sẽ được tạo. Tệp json chứa danh sách địa chỉ IP và Tên điểm cuối Private Service Connect cần thiết cho bước triển khai tiếp theo.
Trong Cloud Shell, hãy thực hiện như 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-west1.json xuống máy.
Tải tệp JSON lên
Tải tệp json đã lưu trước đó lên atlasEndpoints-psc-endpoint-us-west1.json
Chọn Tạo
Xác thực các điểm cuối Private Service Connect
Trong giao diện người dùng MongoDB, hãy chuyển đến dự án của bạn, sau đó chuyển đến Bảo mật → Quyền truy cập mạng → Điểm cuối riêng tư. Sau khi chọn thẻ, cụm chuyên dụng, quá trình chuyển đổi điểm cuối sang trạng thái có sẵn sẽ mất 10 phút.
Trạng thái có sẵn
Trong Google Cloud Console, hãy chuyển đến Dịch vụ mạng → Private Service Connect, chọn thẻ Điểm cuối đã kết nối hiển thị các điểm cuối của người dùng chuyển đổi trạng thái Đang chờ xử lý → Đã chấp nhận, ví dụ bên dưới:
8. Tạo điểm cuối riêng tư cho us-west2
- Đăng nhập vào tài khoản Atlas rồi chuyển đến dự án của bạn.
Chuẩn bị Điểm cuối riêng tư trong MongoDB Atlas
- Chọn Quyền truy cập mạng → Điểm 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 VPC: consumer-vpc
- Tên mạng con: psc-endpoint-us-west2
- Tiền tố điểm cuối kết nối 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 sẽ được tạo và lưu cục bộ có tên setup_psc.sh. Sau khi lưu, hãy chỉnh sửa tập lệnh shell để cho phép psc truy cập toàn cầu. Bạn có thể thực hiện thao tác này trong Cloud Shell của dự án Google Cloud.
- Ví dụ về tập lệnh shell, kết quả 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, nhớ 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ợ quyền truy cập toàn cục
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
Chuyển đến và thực thi tập lệnh setup_psc.sh, sau khi hoàn tất, một tệp có tên atlasEndpoints-psc-endpoint-us-west2.json sẽ được tạo. Tệp json chứa danh sách địa chỉ IP và Tên điểm cuối Private Service Connect cần thiết cho bước triển khai tiếp theo.
Trong Cloud Shell, hãy thực hiện như 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 cục bộ.
Tải tệp JSON lên
Tải tệp json đã lưu trước đó lên atlasEndpoints-psc-endpoint-us-west2.json
Chọn Tạo
Xác thực các điểm cuối Private Service Connect
Trong giao diện người dùng MongoDB, hãy chuyển đến dự án của bạn, sau đó chuyển đến Bảo mật → Quyền truy cập mạng → Điểm cuối riêng tư. Chọn thẻ, cụm chuyên dụng, điểm cuối chuyển sang trạng thái có sẵn sau 10 phút.
Trạng thái có sẵn:
Trong Google Cloud Console, hãy chuyển đến Dịch vụ mạng → Private Service Connect, chọn thẻ Điểm cuối đã kết nối hiển thị các điểm cuối của người dùng chuyển đổi trạng thái Đang chờ xử lý → Đã chấp nhận, ví dụ bên dưới. Tổng cộng có 100 điểm cuối được triển khai trong điểm cuối của người dùng và cần chuyển sang trạng thái đã chấp nhận trước khi chuyển sang bước tiếp theo.
9. Kết nối với MongoDB atlas từ các điểm cuối riêng tư
Sau khi Kết nối dịch vụ riêng tư được chấp nhận, bạn 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 thể hiện bản cập nhật cụm, do đó, bạn không thể kết nối với điểm cuối riêng tư.
Xác định lượt triển khai rồi 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 Kết nối bằng MongoDB Shell
Chọn I do not have the MongoDB Shell installed (Tôi chưa cài đặt MongoDB Shell), Ubuntu 20.4 và nhớ sao chép nội dung từ bước 1 và bước 3 vào một tệp ghi chú.
10. Cài đặt ứng dụng mongosh
Trước khi cài đặt, bạn cần tạo một chuỗi lệnh dựa trên các giá trị đã sao chép trướ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 vào cơ sở dữ liệu chính (us-west1). Hình ảnh Ubuntu 20.4 đã được cài đặt khi tạo vm1 trong consumer-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
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 từ hệ điều hành
Thực hiện cài đặt từ thông tin đăng nhập hệ điều hành Cloud Shell, có thêm thông tin chi tiết, 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 -
Thao tác này sẽ 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 bản triển khai MongoDB
Trong phần đăng nhập vào hệ điều hành Cloud Shell, hãy thực hiện các bước sau. Tên người dùng và mật khẩu được định cấu hình là codelab.
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 các lệnh đối với cơ sở dữ liệu
Trong phần đăng nhập vào hệ điều hành Cloud Shell, hãy thực hiện các bước sau.
show dbs
use Company
db.Employee.insertOne({"Name":"cosmo","dept":"devops"})
db.Employee.findOne({"Name":"cosmo"})
11. Khu vực MongoDB đang hoạt động để dự phòng, us-west1
Trước khi 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 Database (Cơ sở dữ liệu) → psc-mongodb-uswest1-uswest2 → Overview (Tổng quan)
Trong phần sau, hãy đăng nhập vào vm1 nằm ở us-west1, chuyển sang dự phòng khu vực cụm MongoDB chính us-west1 và xác minh rằng bạn vẫn có thể truy cập vào cơ sở dữ liệu từ cụm MongoDB ở us-west2.
Bạn có thể kiểm thử cả chế độ dự phòng chính và dự phòng theo 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, psc-mongodb-uswest1-uswest2 → Sự cố kiểm thử.
- Chọn Sự cố 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 hoạt động theo khu vực.
Sau khi bạn chọn, cụm sẽ hiển thị mô phỏng sự cố ngừng hoạt động sau 3 đến 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 chuyển sang làm vùng chính
Chuyển đến Database (Cơ sở dữ liệu) → psc-mongodb-uswest1-uswest2 → Overview (Tổng quan)
Xác thực khả năng kết nối với cụm theo vùng chính mới, us-west2
Đăng nhập vào vm1 ở us-west1 và truy cập vào mongodb ở us-west2 để xác thực quyền truy cập toàn cầu của dịch vụ kết nối riêng tư.
Nếu phiên Cloud Shell của bạn bị chấm dứt, hãy thực hiện những bước sau:
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 bản triển khai MongoDB
Trong phần đăng nhập vào hệ điều hành Cloud Shell, hãy thực hiện các bướ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 các lệnh đối với cơ sở dữ liệu
Trong phần đăng nhập vào hệ điều hành Cloud Shell, hãy thực hiện các bướ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 toàn cầu của PSC cho phép kết nối liền mạch của điểm cuối của người tiêu dùng trên các khu vực để hỗ trợ khả năng đáp ứng cao hoặc do sự cố ngừng hoạt động theo khu vực. Trong lớp học lập trình, quá trình dự phòng theo khu vực của MongoDB đã xảy ra trong nút chính nằm ở us-west1, do đó, khu vực phụ us-west2 đã tiếp quản nút chính. Mặc dù cụm này đã gây ra sự cố ngừng hoạt động ở khu vực, nhưng vm1 của người dùng ở us-west1 đã kết nối thành công với cụm chính mới ở us-west2.
12. Dọn dẹp
Xoá các điểm cuối của người dùng trong Cloud Console
Chuyển đến Dịch vụ mạng → Kết nối dịch vụ riêng tư → ĐIỂM CUỐI ĐƯỢC KẾT NỐI
Sử dụng bộ lọc psc-endpoint để loại bỏ khả năng xoá các điểm cuối của người dùng không phải trong phòng thí nghiệm. Chọn tất cả điểm cuối → XOÁ
Xoá các địa chỉ IP nội bộ tĩnh được liên kết với các điểm cuối của người dùng
Chuyển đến Mạng VPC → consumer-vpc→ ĐỊA CHỈ IP NỘI BỘ TĨNH
Sử dụng bộ lọc psc-endpoint để loại bỏ khả năng xoá các điểm cuối của người dùng không phải trong phòng thí nghiệm 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
Trong 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
Trên giao diện người dùng Atlas, hãy xác định cụm psc-mongodb-uswest1-uswest2 → kết thúc quá trình mô phỏng
Chọn Kết thúc mô phỏng sự cố ngừng hoạt động —> Thoát
Cụm này hiện đang chuyển về us-west1 làm cụm chính, quá trình này sẽ mất 3 đến 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 trạng thái thay đổi.
Chèn tên cụm → Chấm dứt
Xoá điểm cuối riêng tư được liên kết với us-west1 và us-west2
Trên giao diện người dùng Atlas, hãy chuyển đến Bảo mật → Quyền truy cập mạng → Điểm cuối riêng tư → Chọn Huỷ
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 một điểm cuối Kết nối dịch vụ riêng tư có quyền truy cập toàn cầu vào MongoDB trên các khu vực. Bạn đã tạo thành công VPC của người dùng, MongoDB nhiều vùng và các điểm cuối của người dùng. Một máy ảo ở us-west1 đã kết nối thành công với MongoDB ở cả us-west1 và us-west2 khi xảy ra lỗi dự phòng theo khu vực.
Cosmopup cho rằng các lớp học lập trình rấ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 để phát hành và sử dụng các dịch vụ bằng GKE
- Sử dụng Private Service Connect để phát hành và sử dụng dịch vụ
- Kết nối với các dịch vụ tại chỗ thông qua Mạng kết hợp bằng Private Service Connect và bộ 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 và video
- Tổng quan về Private Service Connect
- Kết nối dịch vụ riêng tư (PSC) là gì?
- Các loại bộ cân bằng tải được hỗ trợ