Usar o IPv6 com a API de dados do Amazon RDS - Amazon Aurora

Usar o IPv6 com a API de dados do Amazon RDS

A API de dados do Amazon RDS aceita a conectividade IPv6 por meio de endpoints de pilha dupla. Isso permite que você se conecte à API de dados usando endereços IPv6, mantendo a compatibilidade com versões anteriores com IPv4.

Suporte a endpoints IPv6

A API de dados fornece endpoints de pilha dupla que aceitam conexões IPv4 e IPv6. Esses endpoints usam o domínio .aws em vez do .amazonaws.com tradicional.

Tipos de endpoint disponíveis

Endpoints de pilha dupla públicos

Formato: rds-data.region.api.aws

Exemplo: rds-data.us-east-1.api.aws

Endpoints de pilha dupla FIPS

Formato: rds-data-fips.region.api.aws

Exemplo: rds-data-fips.us-east-1.api.aws

Endpoints IPv6 do PrivateLink

Disponível por meio de endpoints da VPC com suporte a IPv6

Permite conectividade IPv6 privada em sua VPC

Endpoints legados somente para IPv4

Os endpoints .amazonaws.com existentes continuam aceitando conexões somente IPv4:

  • rds-data.region.amazonaws.com

  • rds-data-fips.region.amazonaws.com

nota

Os endpoints legados permanecem inalterados para garantir a compatibilidade com versões anteriores das aplicações existentes.

Usar endpoints IPv6

Para usar o IPv6 com a API de dados, atualize sua aplicação para usar os novos endpoints de pilha dupla. Sua aplicação usará automaticamente o IPv6, se disponível, ou retornará ao IPv4.

Para receber orientação geral sobre como configurar o IPv6 em sua VPC, consulte Migrar para IPv6 no Manual do usuário da Amazon VPC.

É possível configurar endpoints IPv6 de duas maneiras:

  • Usando a variável de ambiente: defina AWS_USE_DUALSTACK_ENDPOINT=true em seu ambiente IPv6. Os SDKs AWS CLI e AWS construirão automaticamente os endpoints da api.aws apropriados sem exigir que você especifique manualmente os URLs dos endpoints.

  • Usando URLs de endpoint explícitos: especifique o URL do endpoint de pilha dupla diretamente em seus comandos da AWS CLI ou na configuração do SDK, conforme mostrado nos exemplos abaixo.

Configure a AWS CLI para usar endpoints IPv6 especificando o URL do endpoint:

Para Linux, macOS ou Unix:

aws rds-data execute-statement \ --endpoint-url https://rds-data.us-east-1.api.aws \ --resource-arn "arn:aws:rds:us-east-1:123456789012:cluster:my-cluster" \ --secret-arn "arn:aws:secretsmanager:us-east-1:123456789012:secret:my-secret" \ --database "mydb" \ --sql "SELECT * FROM users LIMIT 10"

Para Windows:

aws rds-data execute-statement ^ --endpoint-url https://rds-data.us-east-1.api.aws ^ --resource-arn "arn:aws:rds:us-east-1:123456789012:cluster:my-cluster" ^ --secret-arn "arn:aws:secretsmanager:us-east-1:123456789012:secret:my-secret" ^ --database "mydb" ^ --sql "SELECT * FROM users LIMIT 10"

Configure os AWS SDKs para usar endpoints de pilha dupla:

Python
import boto3 # Create RDS Data API client with IPv6 dual-stack endpoint client = boto3.client( 'rds-data', endpoint_url='https://rds-data.us-east-1.api.aws' ) # Execute a SQL statement response = client.execute_statement( resourceArn='arn:aws:rds:us-east-1:123456789012:cluster:my-cluster', secretArn='arn:aws:secretsmanager:us-east-1:123456789012:secret:my-secret', database='mydb', sql='SELECT * FROM users LIMIT 10' ) print(response['records'])
Java
import software.amazon.awssdk.services.rdsdata.RdsDataClient; import software.amazon.awssdk.services.rdsdata.model.ExecuteStatementRequest; import software.amazon.awssdk.services.rdsdata.model.ExecuteStatementResponse; import java.net.URI; // Create RDS Data API client with IPv6 dual-stack endpoint RdsDataClient client = RdsDataClient.builder() .endpointOverride(URI.create("https://rds-data.us-east-1.api.aws")) .build(); // Execute a SQL statement ExecuteStatementRequest request = ExecuteStatementRequest.builder() .resourceArn("arn:aws:rds:us-east-1:123456789012:cluster:my-cluster") .secretArn("arn:aws:secretsmanager:us-east-1:123456789012:secret:my-secret") .database("mydb") .sql("SELECT * FROM users LIMIT 10") .build(); ExecuteStatementResponse response = client.executeStatement(request); System.out.println(response.records());
JavaScript
const { RDSDataClient, ExecuteStatementCommand } = require("@aws-sdk/client-rds-data"); // Create RDS Data API client with IPv6 dual-stack endpoint const client = new RDSDataClient({ endpoint: "https://rds-data.us-east-1.api.aws" }); // Execute a SQL statement const command = new ExecuteStatementCommand({ resourceArn: "arn:aws:rds:us-east-1:123456789012:cluster:my-cluster", secretArn: "arn:aws:secretsmanager:us-east-1:123456789012:secret:my-secret", database: "mydb", sql: "SELECT * FROM users LIMIT 10" }); const response = await client.send(command); console.log(response.records);

Você pode criar endpoints da VPC para a API de dados que comportem a conectividade IPv6 em sua VPC. Para receber instruções detalhadas sobre a criação de endpoints da VPC para a API de dados, consulte Criar um endpoint da Amazon VPC para a API de dados do Amazon RDS (AWS PrivateLink).

Ao criar um endpoint da VPC para suporte a IPv6, garanta que:

  • Sua VPC e sub-redes estão configuradas para comportar IPv6.

  • Grupos de segurança permitam tráfego IPv6 nas portas necessárias (normalmente 443 para HTTPS).

  • As ACLs de rede sejam configuradas para permitir tráfego IPv6.

Considerações sobre a migração

Ao migrar para endpoints IPv6, pense no seguinte:

  • Migração gradual: você pode migrar aplicações gradualmente, uma por vez, atualizando os URLs dos endpoints.

  • Compatibilidade de rede: garanta que sua infraestrutura de rede aceite IPv6 antes de migrar.

  • Políticas de segurança: atualize as regras do grupo de segurança e as ACLs de rede para permitir o tráfego IPv6, se necessário.

  • Monitoramento: atualize as configurações de monitoramento e registro em log para lidar com endereços IPv6.

nota

Endereços de conexão de banco de dados: ao usar endpoints IPv6 para API de dados, as conexões de banco de dados subjacentes e os logs de banco de dados ainda mostrarão endereços IPv4. Esse é o comportamento esperado e não afeta a funcionalidade das aplicações habilitadas para IPv6.

Solução de problemas de conectividade IPv6

Se você tiver problemas com a conectividade IPv6, confira o seguinte:

Configuração de rede

Confira se sua rede comporta IPv6 e se o roteamento IPv6 está configurado corretamente.

Resolução do DNS

Verifique se seu resolvedor de DNS consegue resolver registros AAAA para os endpoints de pilha dupla.

Grupos de segurança

Atualize os grupos de segurança para permitirem tráfego IPv6 nas portas necessárias (normalmente 443 para HTTPS).

Bibliotecas do cliente

Verifique se as bibliotecas do cliente HTTP aceitam conectividade IPv6 e de pilha dupla.