Contoh: Konektivitas pribadi untuk cluster MongoDB Atlas
Halaman ini menjelaskan cara mengaktifkan konektivitas dari Konektor Integrasi ke cluster MongoDB Atlas yang berjalan di jaringan pribadi dalam Google Cloud.
Mengonfigurasi konektivitas pribadi untuk cluster Atlas
Untuk mengonfigurasi konektivitas pribadi untuk cluster Atlas, lakukan hal berikut:
- Login ke konsol pengelolaan Atlas.
- Buka project Atlas yang konektivitas jaringannya perlu Anda buat.
- Buka halaman Akses jaringan untuk project, lalu pilih Endpoint pribadi.
- Pilih Dedicated Cluster, lalu klik Add private endpoint.
Tindakan ini akan membuka dialog untuk memilih penyedia cloud.
- Pilih Google Cloud, lalu klik Berikutnya.
- Pilih Region Atlas, lalu klik Berikutnya.
Ini adalah region Google Cloud tempat cluster Atlas Anda dibuat, dan harus sama dengan region project Google Cloud tempat Anda membuat koneksi. Untuk mengetahui daftar semua region Konektor Integrasi yang didukung, lihat Lokasi.
- Masukkan ID project Google Cloud. Ini adalah project ID direktori layanan dari runtime Konektor Integrasi. Untuk informasi selengkapnya, lihat Mendapatkan project ID direktori layanan.
- Di kolom VPC name, masukkan
default
. - Di kolom Nama subnet, masukkan
default
. - Di kolom Private service connect endpoint prefix, masukkan awalan.
Teks ini diawali dengan semua nama endpoint dan dapat digunakan untuk mengidentifikasi endpoint pribadi yang telah Anda buat.
- Instal
gcloud
CLI (antarmuka command line). Untuk mengetahui informasi selengkapnya, lihat Menginstal gcloud CLI. - Salin dan simpan skrip shell berikut sebagai
setup_psc.sh
di sistem lokal Anda.Tetapkan nilai yang sesuai untuk variabel berikut dalam skrip:
- PROJECT_ID
- REGION
- PREFIX
- SERVICE_ATTACHMENT_ID_PREFIX
#!/bin/bash alias gcurl='curl -H "Authorization: Bearer $(gcloud auth print-access-token)"' # Set PROJECT_ID to the ID of the Google Cloud project where you create your connections. export PROJECT_ID=PROJECT_ID # Set REGION to the Google Cloud region where Atlas cluster is installed. export REGION=REGION export HOSTNAME=https://connectors.googleapis.com/v1 # Set ENDPOINT_PREFIX to the prefix value that you entered for the # "Private service connect endpoint prefix" field (in step 10). export PREFIX=ENDPOINT_PREFIX # Set SERVICE_ATTACHMENT_ID_PREFIX to the prefix of the service attachments # created by Atlas. The service attachments are present in the script # displayed on the Atlas UI and have the following naming format: # projects/{google-cloud-project-id-of-atlas-cluster}/regions/{region}/serviceAttachment/{prefix}-{index} # For example, if the service attachment is # "projects/p-ditnerelrvndieqhe3kh9pop/regions/us-west1/serviceAttachments/sa-us-west1-37204mg5wr0j6-$i", # you must set the value of SERVICE_ATTACHMENT_ID_PREFIX to # "projects/p-ditnerelrvndieqhe3kh9pop/regions/us-west1/serviceAttachments/sa-us-west1-37204mg5wr0j6" export SERVICE_ATTACHMENT_ID_PREFIX=SERVICE_ATTACHMENT_ID_PREFIX # Set ENDPOINT_GLOBAL_ACCESS to true if you want to enable global access for the endpoint, else false. export ENDPOINT_GLOBAL_ACCESS=ENDPOINT_GLOBAL_ACCESS if [ "$ENDPOINT_GLOBAL_ACCESS" != "true" ] && [ "$ENDPOINT_GLOBAL_ACCESS" != "false" ]; then echo "Error: Variable ENDPOINT_GLOBAL_ACCESS must be either 'true' or 'false'." exit 1 fi function poll_operation() { OPERATION_ID="$1" INDEX="$2" RESULT='' while [[ "$RESULT" != *"true"* ]]; do RESULT=$(gcurl -s -X GET "${HOSTNAME}/${OPERATION_ID}" | grep '"done"') sleep 5 done echo "${PREFIX}-${INDEX} created" } echo "Creating Endpoint Attachments..." for i in {0..49} do export ENDPOINT=${HOSTNAME}/projects/${PROJECT_ID}/locations/${REGION}/endpointAttachments?endpointAttachmentId=${PREFIX}-$i OPERATION_ID=$(gcurl -s -X POST -H "Content-Type: application/json" -d '{"name": "'"projects/${PROJECT_ID}/locations/${REGION}/endpointAttachments/${PREFIX}-$i"'","serviceAttachment": "'"${SERVICE_ATTACHMENT_ID_PREFIX}-$i"'", "endpointGlobalAccess":'${ENDPOINT_GLOBAL_ACCESS}'}' "${ENDPOINT}" | sed 's/ //' | grep -E '"name"' | sed -E 's/"name": "//' | sed 's/",//') poll_operation "$OPERATION_ID" "$i" & done wait echo "All endpoint attachments created." echo "[" > atlasEndpoints-${PREFIX}.json echo "Fetching IP Addresses..." for i in {0..49} do ENDPOINT=${HOSTNAME}/projects/${PROJECT_ID}/locations/${REGION}/endpointAttachments/${PREFIX}-$i response=$(gcurl -s -X GET "${ENDPOINT}" | sed 's/ //g' | grep -E 'name|endpointIp' | sed 's/"endpointIp"/"IPAddress"/g' | sed -E 's/"name": "projects\/.+\/locations\/.+\/endpointAttachments\//"name": "/g' | sed '1 s/"/{"/1') if [ "$ENDPOINT_GLOBAL_ACCESS" = "true" ]; then echo "${response}" | sed '2 s/"/"}/4' >> atlasEndpoints-${PREFIX}.json else echo "${response}" | sed '2 s/"/"},/4' >> atlasEndpoints-${PREFIX}.json fi done sed -i '$s/,/]/' atlasEndpoints-${PREFIX}.json echo "Created atlasEndpoints-${PREFIX}.json"
- Jalankan skrip shell. Untuk menjalankan skrip shell, buka direktori tempat Anda menyimpan skrip, lalu jalankan perintah berikut:
sh setup_psc.sh
Skrip ini menghasilkan file JSON yang memiliki daftar alamat IP dan nama endpoint PSC yang sesuai. File JSON disimpan di direktori tempat skrip shell dijalankan.
- Klik Berikutnya di konsol pengelolaan Atlas.
- Klik Upload JSON file, lalu upload file JSON yang dibuat pada langkah 13.
- Klik Create.
Proses penyiapan endpoint mungkin memerlukan waktu hingga 25 menit untuk selesai, dan jika penyiapan berhasil, endpoint akan berada dalam status
Available
. - Verifikasi konektivitas pribadi Anda. Untuk informasi selengkapnya, lihat Memverifikasi konektivitas pribadi.
Mendapatkan project ID direktori layanan
Untuk mendapatkan project ID direktori layanan, Anda dapat menggunakan List Connections API seperti yang ditunjukkan dalam contoh berikut.
Sintaks
curl -X GET \ -H "authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://connectors.googleapis.com/v1/projects/CONNECTORS_PROJECT_ID/locations/-/connections"
Ganti kode berikut:
- CONNECTORS_PROJECT_ID: ID project Google Cloud tempat Anda membuat koneksi.
Contoh
Contoh ini mendapatkan project ID direktori layanan untuk project Google Cloud connectors-test
.
curl -X GET \ -H "authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://connectors.googleapis.com/v1/projects/connectors-test/locations/-/connections"
Menjalankan perintah ini di terminal akan menampilkan output yang mirip dengan berikut:
..... { "connections": [ { "name": "projects/connectors-test/locations/asia-northeast1/connections/big-query-iam-invalid-sa", "createTime": "2022-10-07T09:02:31.905048520Z", "updateTime": "2022-10-07T09:22:39.993778690Z", "connectorVersion": "projects/connectors-test/locations/global/providers/gcp/connectors/bigquery/versions/1", "status": { "state": "ACTIVE" }, "configVariables": [ { "key": "project_id", "stringValue": "connectors-test" }, { "key": "dataset_id", "stringValue": "testDataset" } ], "authConfig": {}, "serviceAccount": "564332356444-compute@developer.gserviceaccount.com", "serviceDirectory": "projects/abcdefghijk-tp/locations/asia-northeast1/namespaces/connectors/services/runtime", "nodeConfig": { "minNodeCount": 2, "maxNodeCount": 50 } }, ....
Pada contoh output, untuk project Google Cloud connectors-test
, project ID direktori layanan adalah abcdefghijk-tp
.
Memverifikasi konektivitas pribadi
Untuk memverifikasi konektivitas pribadi ke cluster Atlas, lakukan hal berikut:
- Di konsol pengelolaan Atlas, buka halaman Deployment Database.
- Scroll ke cluster yang diperlukan, lalu klik Connect. Tindakan ini akan membuka dialog Connect to <CLUSTER_NAME>.
- Klik Private Endpoint untuk jenis koneksi.
- Pilih awalan endpoint pribadi yang telah Anda masukkan di UI Atlas dari drop-down Choose a private endpoint.
- Klik Choose a connection method.
- Klik Driver di bagian Connect to your application. Langkah ini adalah untuk mendapatkan string koneksi
srv
. - Salin string koneksi
srv
dari bagian Tambahkan string koneksi ke kode aplikasi.Format string
srv
:mongodb+srv://{cluster-name}-pl-{index}.{unique-pin}.mongodb.net
. - Buat koneksi MongoDB menggunakan string
srv
ini sebagai nama host. Untuk informasi selengkapnya, lihat Mengonfigurasi konektor MongoDB.Koneksi akan berhasil dibuat.