Conceitos básicos do Aurora DSQL - Amazon Aurora DSQL

Conceitos básicos do Aurora DSQL

O Amazon Aurora DSQL é um banco de dados relacional distribuído e sem servidor, otimizado para workloads transacionais. Nas seções a seguir, você aprenderá a criar clusters do Aurora DSQL de região única e multirregionais, conectar-se a eles e criar e carregar um esquema de exemplo. Você acessará clusters com o AWS Management Console e interagirá com o banco de dados usando o utilitário psql. Ao final, você terá um cluster do Aurora DSQL funcional configurado e pronto para uso em workloads de teste ou produção.

Pré-requisitos

Antes de começar a usar o Aurora DSQL, verifique se você atende aos seguintes pré-requisitos.

  • Sua identidade do IAM deve ter permissão para fazer login no AWS Management Console.

  • Sua identidade do IAM deve atender a um dos seguintes critérios:

    • Ter acesso para executar qualquer ação em qualquer recurso em sua Conta da AWS.

    • A permissão iam:CreateServiceLinkedRole do IAM e a possibilidade de obter acesso à ação de política do IAM dsql:*.

  • Se você usar a AWS CLI em um ambiente semelhante ao Unix, o Python versão 3.8+ e o psql versão 14+ devem estar instalados. Para verificar as versões de sua aplicação, execute os comandos a seguir.

    python3 --version psql --version

    Se você usar a AWS CLI em um ambiente diferente, configure manualmente o Python versão 3.8+ e o psql versão 14+.

  • Se você pretende acessar o Aurora DSQL usando o AWS CloudShell, o Python versão 3.8+ e o psql versão 14+ são fornecidos sem configuração adicional. Para ter mais informações sobre o AWS CloudShell, consulte What is AWS CloudShell?.

  • Se você pretende acessar o Aurora DSQL usando uma GUI, use o DBeaver ou o JetBrains DataGrip. Para obter mais informações, consulte Acessar o Aurora DSQL com o DBeaver e Acessar o Aurora DSQL com o JetBrains DataGrip.

Acessar o Aurora DSQL

Você pode acessar o Aurora DSQL por meio das técnicas a seguir. Para saber como usar a CLI, as APIs e os SDKs, consulte Acessar o Aurora DSQL.

Acessar o Aurora DSQL por meio do AWS Management Console

Você pode acessar o AWS Management Console para Aurora DSQL em https://console.aws.amazon.com/dsql.

Acessar o Aurora DSQL usando clientes SQL

O Aurora DSQL usa o protocolo padrão do PostgreSQL. Use o cliente interativo de sua preferência fornecendo um token de autenticação do IAM assinado como senha ao se conectar ao cluster. Um token de autenticação é uma string exclusiva de caracteres que o Aurora DSQL gera dinamicamente usando o AWS Signature Version 4.

O Aurora DSQL usa o token somente para autenticação. O token não afeta a conexão depois que ela é estabelecida. Se você tentar se reconectar usando um token expirado, a solicitação de conexão será negada. Para obter mais informações, consulte Gerar um token de autenticação no Amazon Aurora DSQL.

Acessar o Aurora DSQL com psql (terminal interativo do PostgreSQL)

O utilitário psql é uma interface de linha de comandos para o PostgreSQL. Ele permite que você digite consultas interativamente, as envie ao PostgreSQL e veja os resultados da consulta. Para melhorar os tempos de resposta das consultas, use o cliente PostgreSQL versão 17.

Baixe o instalador do seu sistema operacional na página PostgreSQL Downloads. Para ter mais informações sobre o psql, consulte https://www.postgresql.org/docs/current/app-psql.htm.

Se você já tem a AWS CLI instalada, use o exemplo a seguir para se conectar ao cluster. Você pode usar o AWS CloudShell, que vem com o psql pré-instalado, ou pode instalar o psql diretamente.

# Aurora DSQL requires a valid IAM token as the password when connecting. # Aurora DSQL provides tools for this and here we're using Python. export PGPASSWORD=$(aws dsql generate-db-connect-admin-auth-token \ --region us-east-1 \ --expires-in 3600 \ --hostname your_cluster_endpoint) # Aurora DSQL requires SSL and will reject your connection without it. export PGSSLMODE=require # Connect with psql, which automatically uses the values set in PGPASSWORD and PGSSLMODE. # Quiet mode suppresses unnecessary warnings and chatty responses but still outputs errors. psql --quiet \ --username admin \ --dbname postgres \ --host your_cluster_endpoint

Acessar o Aurora DSQL com o DBeaver

DBeaver é uma ferramenta de banco de dados de código aberto baseada em GUI. Você pode usá-lo para se conectar e gerenciar seu banco de dados. Para baixar o DBeaver, consulte a página de download no site da comunidade do DBeaver. As etapas a seguir explicam como se conectar ao seu cluster usando o DBeaver.

Como configurar uma nova conexão do Aurora DSQL no DBeaver
  1. Escolha Nova conexão de banco de dados.

  2. Na janela Nova conexão de banco de dados, escolha PostgreSQL.

  3. Na guia Configurações de conexão/Principal, escolha Conectar por: host e insira as informações a seguir.

    1. Host: use o endpoint do cluster.

      Banco de dados: insira postgres.

      Autenticação: escolha Database Native.

      Nome de usuário: insira admin.

      Senha: gere um token de autenticação. Copie o token gerado e use-o como senha.

  4. Ignore quaisquer avisos e cole o token de autenticação no campo Senha do DBeaver.

    nota

    Você deve definir o modo SSL nas conexões de cliente. O Aurora DSQL permite o SSLMODE=require. O Aurora DSQL impõe a comunicação SSL do lado do servidor e rejeita conexões que não sejam SSL.

  5. Para começar a executar instruções SQL, você deve conectar-se ao cluster.

Importante

Os recursos administrativos fornecidos pelo DBeaver para os bancos de dados PostgreSQL (como o Gerenciador de Sessões e o Gerenciador de Bloqueios) não se aplicam a um banco de dados devido à sua arquitetura exclusiva. Embora acessíveis, essas telas não fornecem informações confiáveis sobre a integridade ou o status do banco de dados.

Credenciais de autenticação expiradas para o DBeaver

As sessões estabelecidas permanecem autenticadas por no máximo uma hora ou até que o DBeaver desconecte-se ou atinja o tempo limite. Para estabelecer novas conexões, forneça um token de autenticação válido no campo Senha de Configurações de conexão. Ao tentar abrir uma nova sessão (por exemplo, para listar novas tabelas ou um novo console do SQL), uma nova tentativa de autenticação é forçada. Se o token de autenticação configurado nas configurações em Configurações de conexão não for mais válido, essa nova sessão falhará e o DBeaver invalidará todas as sessões abertas anteriormente. Tenha isso em mente ao escolher a duração do token de autenticação do IAM com a opção expires-in.

Acessar o Aurora DSQL com o JetBrains DataGrip

O JetBrains DataGrip é um IDE multiplataforma para trabalhar com SQL e bancos de dados, incluindo o PostgreSQL. O DataGrip oferece uma interface gráfica robusta e um editor SQL inteligente. Para baixar o DataGrip, acesse a página de download no site da JetBrains.

Como configurar uma nova conexão do Aurora DSQL no JetBrains DataGrip
  1. Escolha Nova fonte de dados e selecione PostgreSQL.

  2. Na guia Fontes de Dados/Geral, insira as seguintes informações:

    1. Host: use o endpoint do cluster.

      Porta: o Aurora DSQL usa o padrão do PostgreSQL: 5432.

      Banco de dados: o Aurora DSQL usa o padrão do PostgreSQL: postgres.

      Autenticação: escolha User & Password .

      Nome de usuário: insira admin.

      Senha: gere um token e cole-o neste campo.

      URL: não modifique este campo. Ele será preenchido automaticamente com base nos outros campos.

  3. Senha: forneça-a gerando um token de autenticação. Copie a saída resultante do gerador de token e cole-a no campo de senha.

    nota

    Você deve definir o modo SSL nas conexões de cliente. O Aurora DSQL permite o PGSSLMODE=require. O Aurora DSQL impõe a comunicação SSL do lado do servidor e rejeita conexões não SSL.

  4. Para começar a executar instruções SQL, você deve conectar-se ao cluster.

Importante

Algumas visualizações fornecidas pelo DataGrip para os bancos de dados PostgreSQL (como Sessões) não se aplicam a um banco de dados devido à sua arquitetura exclusiva. Embora acessíveis, essas telas não fornecem informações confiáveis sobre as sessões reais conectadas ao banco de dados.

Credenciais de autenticação expiradas

As sessões estabelecidas permanecem autenticadas por no máximo 1 hora ou até que ocorra uma desconexão explícita ou um tempo limite do lado do cliente. Se for necessário estabelecer novas conexões, um novo token de autenticação deverá ser gerado e fornecido no campo Senha de Propriedades da fonte de dados. Ao tentar abrir uma nova sessão (por exemplo, para listar novas tabelas ou um novo console do SQL), uma nova tentativa de autenticação é forçada. Se o token de autenticação configurado nas configurações de Conexão não for mais válido, essa nova sessão falhará e todas as sessões abertas anteriormente se tornarão inválidas.

Usar o protocolo do PostgreSQL com o Aurora DSQL

O PostgreSQL usa um protocolo baseado em mensagens para comunicação entre clientes e servidores. O protocolo é compatível com TCP/IP e também com sockets de domínio Unix. A tabela a seguir mostra como o protocolo do PostgreSQL pode ser usado com o Aurora DSQL.

PostgreSQL Aurora DSQL Observações
Perfil (também conhecido como usuário ou grupo) Perfil de banco de dados O Aurora DSQL cria um perfil chamado admin para você. Ao criar perfis de banco de dados personalizados, você deve usar o perfil admin para associá-los aos perfis do IAM para autenticação ao se conectar ao cluster. Para ter mais informações, consulte Configure custom database roles.
Host (também conhecido como nome de host ou hostspec) Endpoint do cluster Os clusters de região única do Aurora DSQL oferecem um único endpoint gerenciado e redirecionam automaticamente o tráfego se houver indisponibilidade na região.
Porta N/D: use o padrão 5432. Esse é o padrão do PostgreSQL.
Banco de dados (dbname) Use postgres. O Aurora DSQL cria esse banco de dados para você quando você cria o cluster.
Modo SSL O SSL está sempre habilitado do lado do servidor. No Aurora DSQL, o Aurora DSQL é compatível com o modo SSL require. Conexões sem SSL são rejeitadas pelo Aurora DSQL.
Senha Token de autenticação O Aurora DSQL exige tokens de autenticação temporários em vez de senhas de longa duração. Para saber mais, consulte Gerar um token de autenticação no Amazon Aurora DSQL.

Etapa 1: criar um cluster do Aurora DSQL de região única

A unidade básica do Aurora DSQL é o cluster, onde você armazena seus dados. Nesta tarefa, você cria um cluster em uma única Região da AWS.

Como criar um cluster de região única no Aurora DSQL
  1. Faça login no AWS Management Console e abra o console do Aurora DSQL em https://console.aws.amazon.com/dsql.

  2. Escolha Criar cluster e Região única.

  3. (Opcional) Em Configurações de cluster, selecione qualquer uma das seguintes opções:

    • Selecione Configurações de criptografia personalizadas (avançado) para escolher ou criar uma AWS KMS key.

    • Selecione Habilitar proteção contra exclusão para impedir que o cluster de banco de dados seja excluído. Por padrão, a proteção contra exclusão fica selecionada.

  4. (Opcional) Em Tags, escolha ou insira uma tag para o cluster.

  5. Selecione Criar cluster.

Etapa 2: conectar-se a um cluster do Aurora DSQL

Um endpoint de cluster é gerado automaticamente quando você cria um cluster do Aurora DSQL com base no ID do cluster e na região. O formato de nomenclatura é clusterid.dsql.region.on.aws. Um cliente usa o endpoint para criar uma conexão de rede com seu cluster.

Como a autenticação é gerenciada por meio do IAM, você não precisa armazenar credenciais no banco de dados. Um token de autenticação é uma string exclusiva de caracteres que é gerada dinamicamente. O token é usado apenas para autenticação e não afetará a conexão depois que ela for estabelecida. Antes de tentar se conectar, sua identidade do IAM deve ter a permissão dsql:DbConnectAdmin, conforme descrito em Pré-requisitos.

nota

Para otimizar a velocidade de conexão do banco de dados, use o cliente PostgreSQL versão 17 e defina PGSSLNEGOTIATION como direct: PGSSLNEGOTIATION=direct.

Como se conectar ao cluster com um token de autenticação
  1. Selecione o cluster de banco de dados do Aurora MySQL ao qual você deseja se conectar.

  2. Selecione Conectar.

  3. Em Endpoint (host), copie o endpoint.

  4. A opção Conectar-se como administrado deve estar selecionada na seção Token de autenticação (senha).

  5. Gere o token de autenticação. O token é válido por 15 minutos.

  6. Na linha de comando, use o comando a seguir para iniciar o psql e se conectar ao cluster. Substitua your_cluster_endpoint pelo endpoint do cluster que você copiou anteriormente.

    PGSSLMODE=require \ psql --dbname postgres \ --username admin \ --host your_cluster_endpoint

    Quando for solicitada uma senha, insira o token de autenticação que você copiou anteriormente. Se você tentar se reconectar usando um token expirado, a solicitação de conexão será negada. Para obter mais informações, consulte Gerar um token de autenticação no Amazon Aurora DSQL.

  7. Pressione Enter. Você verá um prompt do PostgreSQL.

    postgres=>

    Se você receber um erro de acesso negado, confirme se sua identidade do IAM tenha a permissão dsql:DbConnectAdmin. Se você tiver a permissão e continuar recebendo erros de negação de acesso, consulte Solucionar problemas do IAM e Como solucionar erros de acesso negado ou operação não autorizada em uma política do IAM?.

Etapa 3: executar exemplos de comando SQL no Aurora DSQL

Teste o cluster do Aurora DSQL executando instruções SQL. Os exemplos de instrução a seguir exigem os arquivos de dados chamados department-insert-multirow.sql e invoice.csv, que você pode baixar do repositório aws-samples/aurora-dsql-samples no GitHub.

Como executar exemplos de comando SQL no Aurora DSQL
  1. Crie um esquema chamado example.

    CREATE SCHEMA example;
  2. Crie uma tabela de faturas que use um UUID gerado automaticamente como chave primária.

    CREATE TABLE example.invoice( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), created timestamp, purchaser int, amount float);
  3. Crie um índice secundário que use a tabela vazia.

    CREATE INDEX ASYNC invoice_created_idx on example.invoice(created);
  4. Crie uma tabela de departamentos.

    CREATE TABLE example.department(id INT PRIMARY KEY UNIQUE, name text, email text);
  5. Use o comando psql \include para carregar o arquivo chamado department-insert-multirow.sql que você baixou do repositório aws-samples/aurora-dsql-samples no GitHub. Substitua my-path pelo caminho para sua cópia local.

    \include my-path/department-insert-multirow.sql
  6. Use o comando psql \copy para carregar o arquivo chamado invoice.csv que você baixou do repositório aws-samples/aurora-dsql-samples no GitHub. Substitua my-path pelo caminho para sua cópia local.

    \copy example.invoice(created, purchaser, amount) from my-path/invoice.csv csv
  7. Consulte os departamentos e classifique-os pelo total de vendas.

    SELECT name, sum(amount) AS sum_amount FROM example.department LEFT JOIN example.invoice ON department.id=invoice.purchaser GROUP BY name HAVING sum(amount) > 0 ORDER BY sum_amount DESC;

    O exemplo de saída a seguir mostra que o Departamento Três tem o maior volume de vendas.

    name | sum_amount --------------------------+-------------------- Example Department Three | 54061.67752854594 Example Department Seven | 53869.65965365204 Example Department Eight | 52199.73742066634 Example Department One | 52034.078869900826 Example Department Six | 50886.15556256385 Example Department Two | 50589.98422247931 Example Department Five | 49549.852635496005 Example Department Four | 49266.15578027619 (8 rows)

Etapa 4: criar um cluster multirregional

Ao criar um cluster multirregional, você deve especificar as seguintes regiões:

Região remota

Essa é a região na qual você cria um segundo cluster. Você cria um segundo cluster nessa região e o conecta ao cluster inicial. O Aurora DSQL replica todas as gravações no cluster inicial para o cluster remoto. Você pode ler e gravar em qualquer cluster.

Região testemunha

Essa região recebe todos os dados gravados no cluster multirregional. Entretanto, as regiões testemunha não hospedam endpoints de clientes e não oferecem acesso aos dados do usuário. Uma janela limitada de logs de transações criptografados é mantida nas regiões testemunha. Isso facilita a recuperação e permite um quórum transacional caso uma região fique indisponível.

O exemplo a seguir mostra como criar um cluster inicial, criar um segundo cluster em uma região diferente e, em seguida, conectar os dois clusters para criar um cluster multirregional. Demonstra também a replicação de gravação entre regiões e leituras consistentes de ambos os endpoints regionais.

Como criar um cluster multirregional
  1. Faça login no AWS Management Console e abra o console do Aurora DSQL em https://console.aws.amazon.com/dsql.

  2. No painel de navegação, escolha Clusters.

  3. Escolha Criar cluster e Multirregião.

  4. (Opcional) Em Configurações de cluster, selecione qualquer uma das seguintes opções para o cluster inicial:

    • Selecione Configurações de criptografia personalizadas (avançado) para escolher ou criar uma AWS KMS key.

    • Selecione Habilitar proteção contra exclusão para impedir que o cluster de banco de dados seja excluído. Por padrão, a proteção contra exclusão fica selecionada.

  5. Em Configurações multirregionais, escolha as seguintes opções para o cluster inicial:

    • Em Região testemunha, escolha uma região. No momento, somente regiões baseadas nos EUA são aceitas para regiões testemunha em clusters multirregionais.

    • (Opcional) Em ARN do cluster da região remota, insira um ARN para um cluster existente em outra região. Se não houver nenhum cluster para servir como segundo cluster no cluster multirregional, conclua a configuração depois de criar o cluster inicial.

  6. (Opcional) Escolha tags para o cluster inicial.

  7. EEscolha Criar cluster para criar o cluster inicial. Se você não inseriu um ARN na etapa anterior, o console mostrará a notificação Configuração do cluster pendente.

  8. Na notificação Configuração do cluster pendente, escolha Concluir configuração do cluster multirregional. Essa ação inicia a criação de um segundo cluster em outra região.

  9. Escolha uma das seguintes opções para o segundo cluster:

    • Adicionar ARN do cluster da região remota: escolha essa opção se houver um cluster e você quiser que ele seja o segundo no cluster multirregional.

    • Criar cluster em outra região: escolha essa opção para criar um segundo cluster. Em Região remota, escolha a região para esse segundo cluster.

  10. Escolha Criar cluster na your-second-region, em que your-second-region é o local do segundo cluster. O console abre na segunda região.

  11. (Opcional) Escolha as configurações de cluster para o segundo cluster. Por exemplo, você pode escolher uma AWS KMS key.

  12. Escolha Criar cluster para criar o segundo cluster.

  13. Escolha Emparelhar na initial-cluster-region, em que initial-cluster-region é a região que hospeda o primeiro cluster que você criou.

  14. Quando solicitado, selecione Sim para confirmar. Essa etapa conclui a criação do cluster multirregional.

Como se conectar e usar o cluster
  1. Abra o console do Aurora DSQL e escolha a região para o segundo cluster.

  2. Escolha Clusters.

  3. Selecione a linha para o segundo cluster no cluster multirregional.

  4. Em Ações, escolha Abrir no CloudShell.

  5. Escolha Conectar-se como administrador.

  6. Escolha Inicie o CloudShell.

  7. Escolha Executar.

  8. Crie um esquema de exemplo seguindo as etapas em Etapa 3: executar exemplos de comando SQL no Aurora DSQL.

    Exemplos de transação

    CREATE SCHEMA example; CREATE TABLE example.invoice(id UUID PRIMARY KEY DEFAULT gen_random_uuid(), created timestamp, purchaser int, amount float); CREATE INDEX ASYNC invoice_created_idx on example.invoice(created); CREATE TABLE example.department(id INT PRIMARY KEY UNIQUE, name text, email text);
  9. Use comandos copy e include do psql para carregar dados de amostra. Para obter mais informações, consulte Etapa 3: executar exemplos de comando SQL no Aurora DSQL.

    \copy example.invoice(created, purchaser, amount) from samples/invoice.csv csv \include samples/department-insert-multirow.sql
Como consultar dados no segundo cluster na região que hospeda o cluster inicial
  1. No console do Aurora DSQL, escolha a região do cluster inicial.

  2. Escolha Clusters.

  3. Selecione a linha para o segundo cluster no cluster multirregional.

  4. Em Ações, escolha Abrir no CloudShell.

  5. Escolha Conectar-se como administrador.

  6. Escolha Inicie o CloudShell.

  7. Escolha Executar.

  8. Consulte os dados que você inseriu no segundo cluster.

    SELECT name, sum(amount) AS sum_amount FROM example.department LEFT JOIN example.invoice ON department.id=invoice.purchaser GROUP BY name HAVING sum(amount) > 0 ORDER BY sum_amount DESC;