Criar grupo de servidores com acesso privado em Base de Dados do Azure para PostgreSQL - Hiperescala (Citus)

APLICA-SE A: Base de Dados do Azure para PostgreSQL - Hiperescala (Citus)

Este tutorial cria uma máquina virtual e um grupo de servidores Hyperscale (Citus) e estabelece o acesso privado entre eles.

Criar uma rede virtual

Primeiro, vamos criar um grupo de recursos e uma rede virtual. Irá manter o nosso grupo de servidores e máquina virtual.

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

Criar uma máquina virtual

Para demonstração, usaremos uma máquina virtual que funciona de Debian Linux, e o psql cliente PostgreSQL.

# provision the VM

[!INCLUDE[applies-to-postgresql-hyperscale](../includes/applies-to-postgresql-hyperscale.md)]
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 debian \
	--admin-username azureuser \
	--generate-ssh-keys

# install psql database client

[!INCLUDE[applies-to-postgresql-hyperscale](../includes/applies-to-postgresql-hyperscale.md)]
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"
  1. Selecione Criar um recurso no canto superior esquerdo do portal do Azure.

  2. Selecione Bases de Dados, na página Nova, e selecione Base de Dados do Azure para o PostgreSQL, na página Bases de Dados.

  3. Para a opção de implementação, selecione o botão Criar no grupo de servidor Hyperscale (Citus).

  4. Preencha o formulário com os detalhes do novo servidor com as seguintes informações:

    • Grupo de recursos: link-demo
    • Nome do grupo do servidor: link-demo-sg
    • Localização: East US
    • Senha: (a sua escolha)

    Nota

    O nome do grupo do servidor deve ser globalmente único em todo o Azure porque cria uma entrada de DNS. Se link-demo-sg não estiver disponível, por favor escolha outro nome e ajuste os passos abaixo em conformidade.

  5. Selecione o grupo de servidorconfigure, escolha o plano Básico e selecione Save.

  6. Selecione Seguinte: Rede na parte inferior da página.

  7. Selecione acesso privado.

  8. Um ecrã aparece chamado Criar ponto final privado. Insira estes valores e selecione OK:

    • Grupo de recursos: link-demo
    • Localização: (US) East US
    • Nome: link-demo-sg-c-pe1
    • Sub-recurso-alvo: coordinator
    • Rede virtual: link-demo-net
    • Sub-rede: link-demo-subnet
    • Integrar-se com a zona privada do DNS: Sim
  9. Depois de criar o ponto final privado, selecione Review + create para criar o seu grupo de servidor Hyperscale (Citus).

Aceda ao grupo de servidores em privado a partir da máquina virtual

O link privado permite que a nossa máquina virtual se conecte ao nosso grupo de servidores e impede que os anfitriões externos o façam. Neste passo, vamos verificar se o cliente da psql base de dados da nossa máquina virtual pode comunicar com o nó coordenador do grupo de servidores.

# save db URI

[!INCLUDE[applies-to-postgresql-hyperscale](../includes/applies-to-postgresql-hyperscale.md)]
#
# obtained from Settings -> Connection Strings in the Azure portal

[!INCLUDE[applies-to-postgresql-hyperscale](../includes/applies-to-postgresql-hyperscale.md)]
#
# replace {your_password} in the string with your actual password

[!INCLUDE[applies-to-postgresql-hyperscale](../includes/applies-to-postgresql-hyperscale.md)]
PG_URI='host=c.link-demo-sg.postgres.database.azure.com port=5432 dbname=citus user=citus password={your_password} sslmode=require'

# attempt to connect to server group with psql in the virtual machine

[!INCLUDE[applies-to-postgresql-hyperscale](../includes/applies-to-postgresql-hyperscale.md)]
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

Devia ver um número de versão para Citus na saída. Se o fizeres, então o PSQL foi capaz de executar o comando, e o link privado funcionou.

Limpar os recursos

Vimos como criar uma ligação privada entre uma máquina virtual e um grupo de servidores Hyperscale (Citus). Agora podemos desprovisioná-lo.

Eliminar o grupo de recursos e os recursos no interior serão desprovisionados:

az group delete --resource-group link-demo

# press y to confirm

[!INCLUDE[applies-to-postgresql-hyperscale](../includes/applies-to-postgresql-hyperscale.md)]

Passos seguintes