Criar um grupo de servidores com acesso privado no Banco de Dados do Azure para PostgreSQL – Hiperescala (Citus)

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

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

Criar uma rede virtual

Primeiro, vamos configurar um grupo de recursos e uma rede virtual. Ele vai conter o grupo de servidores e a 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 executando o Debian Linux e o cliente PostgreSQL psql.

# 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 Bancos de Dados na página Novo e selecione Banco de Dados do Azure para PostgreSQL na página Bancos de Dados.

  3. Para a opção de implantação, selecione o botão Criar em grupo de servidores de Hiperescala (Citus) .

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

    • Grupo de recursos: link-demo
    • Nome do grupo de servidores: link-demo-sg
    • Local: East US
    • Senha: (sua escolha)

    Observação

    O nome do grupo de servidores deve ser globalmente exclusivo no Azure porque ele cria uma entrada DNS. Se link-demo-sg não estiver disponível, escolha outro nome e ajuste as etapas abaixo adequadamente.

  5. Selecione Configurar grupo de servidores, escolha o plano Básico e selecione Salvar.

  6. Selecione Avançar: Rede na parte inferior da página.

  7. Selecione Acesso privado.

  8. É exibida uma tela chamada Criar ponto de extremidade privado. Insira estes valores e selecione OK:

    • Grupo de recursos: link-demo
    • Local: (US) East US
    • Nome: link-demo-sg-c-pe1
    • Sub-recurso de destino: coordinator
    • Rede virtual: link-demo-net
    • Sub-rede: link-demo-subnet
    • Integrar com a zona DNS privada: sim
  9. Depois de criar o ponto de extremidade privado, selecione Examinar + criar para criar seu grupo de servidores de Hiperescala (Citus).

Acessar o grupo de servidores de maneira privada na máquina virtual

O link privado permite que nossa máquina virtual se conecte ao nosso grupo de servidores e impede que hosts externos façam isso. Nesta etapa, verificaremos se o cliente de banco de dados psql em nossa máquina virtual pode se 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

Você deverá ver um número de versão do Citus na saída. Se for esse o caso, o psql conseguiu executar o comando e o link privado funcionou.

Limpar os recursos

Vimos como criar um link privado entre uma máquina virtual e um grupo de servidores de Hiperescala (Citus). Agora, podemos desprovisionar os recursos.

Exclua o grupo de recursos e os recursos dentro dele 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)]

Próximas etapas