Conectar-se ao Amazon Aurora Global Database - Amazon Aurora

Conectar-se ao Amazon Aurora Global Database

Cada Aurora Global Database vem com um endpoint do gravador que é atualizado automaticamente pelo Aurora para direcionar solicitações para a instância atual do gravador do cluster de banco de dados primário. Com o endpoint do gravador, não é necessário modificar a string de conexão depois de alterar a localização da região primária usando os recursos gerenciados de transição e de failover do Aurora Global Database. Para saber mais sobre como usar o endpoint do gravador com a transição e o failover do Aurora Global Database, consulte Usar a transição ou o failover no Amazon Aurora Global Database. Consulte informações sobre como se conectar a um Aurora Global Database com o RDS Proxy em Usa o RDS Proxy com bancos de dados globais do Aurora.

Escolher o endpoint que atenda às necessidades da aplicação

A conexão com um Aurora Global Database depende da necessidade de ler ou gravar no banco de dados e da região da AWS para a qual você deseja encaminhar as solicitações. Apresentamos a seguir alguns casos de uso típicos:

  • Encaminhar solicitações para a instância do gravador: se você precisar executar instruções de linguagem de manipulação de dados (DML) e linguagem de definição de dados (DDL) ou precisar de uma forte consistência entre leituras e gravações, conecte-se ao endpoint do gravador do Aurora Global Database. Esse endpoint encaminha as solicitações para a instância do gravador no cluster primário do banco de dados global. Esse endpoint é atualizado automaticamente para encaminhar solicitações para a instância do gravador, eliminando a necessidade de atualizar a aplicação sempre que você alterar a localização do gravador no cluster global. Também é possível usar o endpoint global para enviar solicitações de leitura/gravação entre regiões ao gravador.

    nota

    Se você configurar o banco de dados global antes que o endpoint do gravador do Aurora Global Database esteja disponível, a aplicação poderá se conectar ao endpoint do cluster primário. Nesse caso, recomendamos trocar as configurações de conexão para usar o endpoint do gravador global. Isso evita a necessidade de alterar as configurações de conexão após cada transição ou failover do Aurora Global Database.

    A primeira parte do nome do endpoint do gravador é o nome do Aurora Global Database. Portanto, se você renomear o Aurora Global Database, o nome do endpoint do gravador será alterado e todos os códigos que o usarem deverão ser atualizados com o novo nome.

  • Escalar as leituras próximas da região da aplicação: para escalar solicitações somente leitura na mesma região da AWS que sua aplicação, ou em regiões próximas, conecte-se ao endpoint do leitor dos clusters primários ou secundários do Aurora.

  • Escalar leituras com gravações ocasionais entre regiões: com relação a instruções DML ocasionais, como para manutenção e limpeza de dados, conecte-se ao endpoint do leitor de um cluster secundário que tenha o encaminhamento de gravação habilitado. Com o encaminhamento de gravação, o Aurora encaminha automaticamente as instruções de gravação para o gravador na região primária do Aurora Global Database. O encaminhamento de gravação oferece os seguintes benefícios:

    • Não é necessário fazer o trabalho árduo de estabelecer conectividade entre os clusters secundário e primário para enviar gravações entre regiões.

    • Não é necessário dividir solicitações de leitura e de gravação na aplicação.

    • Não é necessário desenvolver uma lógica complexa para gerenciar a consistência das solicitações de leitura após gravação.

    No entanto, com o encaminhamento de gravação, é necessário atualizar o código ou a configuração da aplicação para se conectar ao endpoint do leitor da região primária recém-promovida depois de realizar um failover ou uma transição entre regiões. Recomendamos monitorar a latência das operações realizadas por meio do encaminhamento de gravação com o objetivo de conferir as despesas do processamento das solicitações de gravação. Por fim, o encaminhamento de gravação não aceita determinadas operações do MySQL nem do PostgreSQL, como fazer alterações na linguagem de definição de dados (DDL) ou instruções SELECT FOR UPDATE.

    Para saber mais sobre como usar o encaminhamento de gravação entre regiões da AWS, consulte Como usar o encaminhamento de gravação em um banco de dados global Amazon Aurora.

Para saber os detalhes sobre os diferentes tipos de endpoint do Aurora, consulte Como conectar-se a um cluster de bancos de dados Amazon Aurora.

Visualizar os endpoints de um Amazon Aurora Global Database

Ao visualizar um Aurora Global Database no console, é possível ver todos os endpoints associados a todos os clusters. A figura a seguir mostra um exemplo dos tipos de endpoint exibidos quando você visualiza os detalhes do cluster de banco de dados primário:

  • Gravador global: o único endpoint de leitura/gravação que sempre aponta para a instância de banco de dados do gravador atual do cluster de banco de dados global.

  • Gravador: o endpoint de conexão para solicitações de leitura/gravação para o cluster de banco de dados primário no cluster de banco de dados global.

  • Leitor: o endpoint de conexão para solicitações somente leitura para um cluster de banco de dados primário ou secundário no cluster de banco de dados global. Para minimizar a latência, escolha o endpoint leitor que está na sua Região da AWS ou na Região da AWS mais próxima de você.

No console do RDS, a guia Segurança e conexão de um Aurora Global Database mostra o endpoint do gravador global.
Como visualizar os endpoints de um banco de dados global
  1. Faça login no AWS Management Console e abra o console do Amazon RDS em https://console.aws.amazon.com/rds/.

  2. No painel de navegação, escolha Bancos de dados.

  3. Na lista, escolha o banco de dados global ou o cluster de banco de dados primário ou secundário cujos endpoints você deseja exibir.

  4. Escolha a guia Segurança e conexão para ver os detalhes do endpoint. Os endpoints exibidos dependem do tipo de cluster que você selecionou, da seguinte forma:

    • Banco de dados global: o endpoint do gravador global.

    • Cluster de banco de dados primário: o endpoint do gravador global, o endpoint do cluster e o endpoint do leitor do cluster primário.

    • Cluster de banco de dados secundário: o endpoint do cluster e o endpoint do leitor para o cluster secundário. Em um cluster secundário, o endpoint do cluster exibe o status inativo porque não processa solicitações de gravação. Ainda é possível se conectar ao endpoint do cluster, mas somente para consultas de leitura.

Para visualizar o endpoint do gravador do cluster global, use o comando describe-global-clusters da AWS CLI, como no exemplo a seguir.

aws rds describe-global-clusters --region aws_region { "GlobalClusters": [ { "GlobalClusterIdentifier": "global_cluster_id", "GlobalClusterResourceId": "cluster-unique_string", "GlobalClusterArn": "arn:aws:rds::123456789012:global-cluster:global_cluster_id", "Status": "available", "Engine": "aurora-mysql", "EngineVersion": "5.7.mysql_aurora.2.11.2", "GlobalClusterMembers": [ ... ], "Endpoint": "global_cluster_id.global-unique_string.global.rds.amazonaws.com" } ] }

Para visualizar os endpoints de cluster e do leitor dos clusters de banco de dados membros do cluster global, use o comando describe-db-clusters da AWS CLI, como no exemplo a seguir. Os valores exibidos para Endpoint e ReaderEndpoint são os endpoints do cluster e do leitor, respectivamente.

aws rds describe-db-clusters --region primary_region --db-cluster-identifier db_cluster_id { "DBClusters": [ { "AllocatedStorage": 1, "AvailabilityZones": [ "az_1", "az_2", "az_3" ], "BackupRetentionPeriod": 1, "DBClusterIdentifier": "db_cluster_id", "DBClusterParameterGroup": "default.aurora-mysql5.7", "DBSubnetGroup": "default", "Status": "available", "EarliestRestorableTime": "2023-08-01T18:21:11.301Z", "Endpoint": "db_cluster_id.cluster-unique_string.primary_region.rds.amazonaws.com", "ReaderEndpoint": "db_cluster_id.cluster-ro-unique_string.primary_region.rds.amazonaws.com", "MultiAZ": false, "Engine": "aurora-mysql", "EngineVersion": "5.7.mysql_aurora.2.11.2", "ReadReplicaIdentifiers": [ "arn:aws:rds:secondary_region:123456789012:cluster:db_cluster_id" ], "DBClusterMembers": [ { "DBInstanceIdentifier": "db_instance_id", "IsClusterWriter": true, "DBClusterParameterGroupStatus": "in-sync", "PromotionTier": 1 } ], ... "TagList": [], "GlobalWriteForwardingRequested": false } ] }

Para visualizar o endpoint do gravador do cluster global, use a operação DescribeGlobalClusters da API do RDS. Para visualizar os endpoints de cluster e do leitor dos clusters de banco de dados membros do cluster global, use a operação DescribeDBClusters da API do RDS.

Considerações sobre o uso de endpoints do gravador globais

É possível fazer uso eficaz dos endpoints do gravador do Aurora Global Database seguindo as diretrizes e as práticas recomendadas abaixo:

  • Para minimizar a interrupção após um failover ou uma transição entre regiões, é possível configurar a conectividade de VPC entre a computação da aplicação e as regiões primária e secundária da AWS. Por exemplo, suponha que você tenha aplicações ou sistemas clientes em execução na mesma VPC que o cluster primário. Se o cluster secundário for promovido, o endpoint do gravador global mudará automaticamente para apontar para esse cluster. Embora o endpoint do gravador global permita que você evite alterar as configurações de conexão da aplicação, as aplicações só poderão acessar os endereços IP na VPC da região da AWS recém-promovida a primária depois de configurar a rede entre as duas VPCs. Consulte Amazon VPC-to-Amazon VPC connectivity options a fim de avaliar diferentes opções para configurar essa conectividade.

  • A atualização do endpoint do gravador global após uma transição ou um failover de banco de dados global pode levar muito tempo, dependendo da duração do armazenamento em cache do Serviço de Nomes de Domínio (DNS). Para saber mais, consulte DNS caching. O Aurora Global Database emite um evento do RDS quando percebe uma alteração de DNS no endpoint do gravador global. É possível usar o evento para criar estratégias e garantir que o cache do DNS não se estenda além do tempo após a geração do evento. Para ter mais informações, consulte Eventos de cluster de banco de dados.

  • O Aurora Global Database replica os dados de forma assíncrona. Os métodos de failover entre regiões podem ocasionar a gravação dos dados da transação que não foram replicados para a secundária escolhida antes do início do failover. Embora o Aurora tente, da melhor forma possível, bloquear as gravações na região da AWS primária original, o failover pode ser suscetível a problemas de cérebro dividido. As considerações para minimizar a perda de dados e o risco de cérebro dividido também se aplicam aos endpoints do gravador do Aurora Global Database. Para ter mais informações, consulte Failovers planejados gerenciados para o Aurora Global Database.