Menyambungkan ke kluster dengan akses privat di Azure Cosmos DB for PostgreSQL
BERLAKU UNTUK: Azure Cosmos DB for PostgreSQL (didukung oleh ekstensi database Citus ke PostgreSQL)
Tutorial ini membuat komputer virtual (VM) dan kluster Azure Cosmos DB for PostgreSQL, dan membangun akses privat di antara mereka.
Prasyarat
- Akun Azure dengan langganan aktif. Jika Anda tidak memilikinya, buat akun secara gratis.
- Jika Anda ingin menjalankan kode secara lokal, Azure CLI terinstal. Anda juga dapat menjalankan kode di Azure Cloud Shell.
Buat jaringan virtual
Pertama, siapkan grup sumber daya dan jaringan virtual untuk menahan kluster dan VM Anda.
az group create \
--name link-demo \
--location eastus
az network vnet create \
--resource-group link-demo \
--name link-demo-net \
--address-prefix 10.0.0.0/16
az network nsg create \
--resource-group link-demo \
--name link-demo-nsg
az network vnet subnet create \
--resource-group link-demo \
--vnet-name link-demo-net \
--name link-demo-subnet \
--address-prefixes 10.0.1.0/24 \
--network-security-group link-demo-nsg
Membuat komputer virtual
Untuk demonstrasi, buat VM yang menjalankan Debian Linux dan psql
klien PostgreSQL.
# provision the VM
az vm create \
--resource-group link-demo \
--name link-demo-vm \
--vnet-name link-demo-net \
--subnet link-demo-subnet \
--nsg link-demo-nsg \
--public-ip-address link-demo-net-ip \
--image Debian11 \
--admin-username azureuser \
--generate-ssh-keys
# install psql database client
az vm run-command invoke \
--resource-group link-demo \
--name link-demo-vm \
--command-id RunShellScript \
--scripts \
"sudo touch /home/azureuser/.hushlogin" \
"sudo DEBIAN_FRONTEND=noninteractive apt-get update" \
"sudo DEBIAN_FRONTEND=noninteractive apt-get install -q -y postgresql-client"
Membuat kluster dengan tautan privat
Buat kluster Azure Cosmos DB for PostgreSQL Anda di portal Azure.
Di portal, pilih Buat sumber daya di sudut kiri atas.
Pada halaman Buat sumber daya , pilih Database, lalu pilih Azure Cosmos DB.
Pada halaman Pilih opsi API , pada petak Peta PostgreSQL , pilih Buat.
Pada halaman Buat kluster Azure Cosmos DB for PostgreSQL , isi informasi berikut ini:
Grup sumber daya: Pilih Baru, lalu masukkan link-demo.
Nama kluster: Masukkan link-demo-sg.
Catatan
Nama kluster harus unik secara global di seluruh Azure karena membuat entri DNS. Jika
link-demo-sg
tidak tersedia, masukkan nama lain dan sesuaikan langkah-langkah berikut yang sesuai.Lokasi: Pilih US Timur.
Kata sandi: Masukkan lalu konfirmasi kata sandi.
Pilih Berikutnya: Jaringan.
Pada tab Jaringan , untuk Metode konektivitas, pilih Akses privat.
Pada layar Buat titik akhir privat , masukkan atau pilih nilai berikut ini:
- Grup sumber daya:
link-demo
- Lokasi:
(US) East US
- Nama:
link-demo-sg-c-pe1
- Sub-sumber daya target:
coordinator
- Jaringan virtual:
link-demo-net
- Subnet:
link-demo-subnet
- Integrate with private DNS zone: Yes
- Grup sumber daya:
PilihOK.
Setelah Anda membuat titik akhir privat, pilih Tinjau + buat lalu pilih Buat untuk membuat kluster Anda.
Mengakses kluster secara privat dari VM
Tautan privat memungkinkan VM untuk terhubung ke kluster, dan mencegah host eksternal melakukannya. Dalam langkah ini, Anda memeriksa bahwa klien database psql pada VM Anda dapat berkomunikasi dengan simpul koordinator kluster. Dalam kode, ganti {your_password}
dengan kata sandi kluster Anda.
# replace {your_password} in the string with your actual password
PG_URI='host=c-link-demo-sg.12345678901234.postgres.cosmos.azure.com port=5432 dbname=citus user=citus password={your_password} sslmode=require'
# Attempt to connect to cluster with psql in the VM
az vm run-command invoke \
--resource-group link-demo \
--name link-demo-vm \
--command-id RunShellScript \
--scripts "psql '$PG_URI' -c 'SHOW citus.version;'" \
--query 'value[0].message' \
| xargs printf
Anda akan melihat nomor versi untuk Citus dalam output. Jika Anda melihatnya, maka psql akan mampu mengeksekusi perintah, dan tautan privat berfungsi.
Membersihkan sumber daya
Anda telah melihat cara membuat tautan privat antara VM dan kluster. Sekarang Anda dapat mendeprovisi sumber daya.
Hapus grup sumber daya, dan sumber daya di dalamnya akan dideprovisi:
az group delete --resource-group link-demo
# press y to confirm
Langkah berikutnya
- Pelajari selengkapnya tentang akses privat
- Pelajari tentang titik akhir privat
- Pelajari tentang jaringan virtual
- Pelajari tentang zona DNS privat