

# Usar o IPv6 com a API de dados do Amazon RDS
<a name="data-api.ipv6"></a>

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 name="data-api.ipv6.endpoints"></a>

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
<a name="data-api.ipv6.endpoint-types"></a>

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
<a name="data-api.ipv6.legacy-endpoints"></a>

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
<a name="data-api.ipv6.using"></a>

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](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-migrate-ipv6.html) 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.

### AWS CLIConfiguração da
<a name="data-api.ipv6.cli"></a>

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"
```

### Configuração do AWS SDK
<a name="data-api.ipv6.sdk"></a>

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);
```

------

## Usar AWS PrivateLink com o IPv6
<a name="data-api.ipv6.privatelink"></a>

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)](data-api.vpc-endpoint.md).

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
<a name="data-api.ipv6.migration"></a>

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
<a name="data-api.ipv6.troubleshooting"></a>

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.