Bagikan melalui


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

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"

Buat kluster Azure Cosmos DB for PostgreSQL Anda di portal Azure.

  1. Di portal, pilih Buat sumber daya di sudut kiri atas.

  2. Pada halaman Buat sumber daya , pilih Database, lalu pilih Azure Cosmos DB.

  3. Pada halaman Pilih opsi API , pada petak Peta PostgreSQL , pilih Buat.

  4. 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.

  5. Pilih Berikutnya: Jaringan.

  6. Pada tab Jaringan , untuk Metode konektivitas, pilih Akses privat.

  7. 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
  8. PilihOK.

  9. 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