将 IPv6 与 Amazon RDS Data API 结合使用 - Amazon Aurora

将 IPv6 与 Amazon RDS Data API 结合使用

Amazon RDS Data API 支持通过双栈端点实现 IPv6 连接。这样,您就可以使用 IPv6 地址连接到 Data API,同时保持与 IPv4 的向后兼容性。

IPv6 端点支持

Data API 提供同时支持 IPv4 和 IPv6 连接的双栈端点。这些端点使用 .aws 域而不是传统 .amazonaws.com 域。

可用的端点类型

公共双栈端点

格式:rds-data.region.api.aws

示例:rds-data.us-east-1.api.aws

FIPS 双栈端点

格式:rds-data-fips.region.api.aws

示例:rds-data-fips.us-east-1.api.aws

PrivateLink IPv6 端点

可通过支持 IPv6 的 VPC 端点使用

允许在 VPC 内进行私有 IPv6 连接

仅 IPv4 传统端点

现有 .amazonaws.com 端点继续支持仅 IPv4 连接:

  • rds-data.region.amazonaws.com

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

注意

传统端点保持不变,以确保与现有应用程序的向后兼容。

使用 IPv6 端点

要将 IPv6 与 Data API 配合使用,请更新您的应用程序以使用新的双栈端点。您的应用程序将自动使用 IPv6(若可用),或者回退到 IPv4。

有关在您的 VPC 中设置 IPv6 的一般指南,请参阅《Amazon VPC 用户指南》中的迁移到 IPv6

您可以通过两种方式配置 IPv6 端点:

  • 使用环境变量:在 IPv6 环境中设置 AWS_USE_DUALSTACK_ENDPOINT=true。AWS CLI 和 AWS SDK 将自动构造相应的 api.aws 端点,而无需您手动指定端点 URL。

  • 使用显式端点 URL:直接在 AWS CLI 命令或 SDK 配置中指定双栈端点 URL,如下例所示。

通过指定端点 URL 将 AWS CLI 配置为使用 IPv6 端点:

对于 Linux、macOS 或 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"

对于: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"

将 AWS SDK 配置为使用双栈端点:

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

您可以为数据 API 创建 VPC 端点,这些端点在您的 VPC 内支持 IPv6 连接。有关为 Data API 创建 VPC 端点的详细说明,请参阅为 Amazon RDS 数据 API 创建 Amazon VPC 端点(AWS PrivateLink)

在创建支持 IPv6 的 VPC 端点时,请确保:

  • 您的 VPC 和子网配置为支持 IPv6

  • 安全组允许 IPv6 流量通过所需的端口(HTTPS 通常为 443)

  • 网络 ACL 配置为允许 IPv6 流量

迁移注意事项

在迁移到 IPv6 端点时,请考虑以下事项:

  • 逐步迁移:您可以通过一次更新一个应用程序的端点 URL 来逐步迁移应用程序。

  • 网络兼容性:在迁移之前,请确保您的网络基础设施支持 IPv6。

  • 安全策略:如果需要,更新安全组规则和网络 ACL 以允许 IPv6 流量。

  • 监控:更新监控和日志配置以处理 IPv6 地址。

注意

数据库连接地址:将 IPv6 端点用于数据 API 时,底层数据库连接和数据库日志仍将显示 IPv4 地址。这是预期行为,不会影响启用 IPv6 的应用程序的功能。

排查 IPv6 连接性问题

如果 IPv6 连接出现问题,请检查以下各项:

网络配置

确认您的网络支持 IPv6,并且 IPv6 路由配置正确。

DNS 解析

确保您的 DNS 解析器可以解析双栈端点的 AAAA 记录。

安全组

更新安全组规则以允许所需端口上的 IPv6 流量(HTTPS 通常为 443)。

客户端库

确认您的 HTTP 客户端库支持 IPv6 和双栈连接。