搭配 Amazon RDS 資料 API 使用 IPv6 - Amazon Aurora

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

搭配 Amazon RDS 資料 API 使用 IPv6

Amazon RDS 資料 API 透過雙堆疊端點支援 IPv6 連線。這可讓您使用 IPv6 地址連線至資料 API,同時保持與 IPv4 的回溯相容性。

IPv6 端點支援

資料 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 端點

若要搭配資料 API 使用 IPv6,請更新應用程式以使用新的雙堆疊端點。如果可用,應用程式會自動使用 IPv6,或回復為 IPv4。

如需在 VPC 中設定 IPv6 的一般指引,請參閱《Amazon VPC 使用者指南》中的遷移至 IPv6

您可以透過兩種方式設定 IPv6 端點:

  • 使用環境變數:在 IPv6 環境中設定 AWS_USE_DUALSTACK_ENDPOINT=true。 AWS CLI AWS SDKs 會自動建構適當的api.aws端點,而不需要您手動指定端點 URLs。

  • 使用明確的端點 URLs:直接在 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 SDKs使用雙堆疊端點:

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

您可以為支援 VPC 內 IPv6 連線的資料 API 建立 VPC 端點。如需為資料 API 建立 VPC 端點的詳細指示,請參閱建立 Amazon RDS 資料 API 的 Amazon VPC 端點 (AWS PrivateLink)

為 IPv6 支援建立 VPC 端點時,請確保:

  • VPC 和子網路已設定為支援 IPv6

  • 安全群組允許在必要連接埠的 IPv6 流量 (HTTPS 通常是 443)

  • 網路 ACL 已設定為允許 IPv6 流量

遷移考量事項

遷移至 IPv6 端點時,請考慮下列事項:

  • 逐步遷移:您可以透過一次更新一個應用程式的端點 URL 來逐步遷移應用程式。

  • 網路相容性:確保網路基礎設施在遷移之前支援 IPv6。

  • 安全政策:視需要更新安全群組規則和網路 ACL,以允許 IPv6 流量。

  • 監控:更新監控和記錄組態以處理 IPv6 地址。

注意

資料庫連線地址:使用資料 API 的 IPv6 端點時,基礎資料庫連線和資料庫日誌仍會顯示 IPv4 地址。這是預期的行為,不會影響已啟用 IPv6 的應用程式功能。

針對 IPv6 連線進行疑難排解

如果您遇到 IPv6 連線問題,請檢查下列項目:

網路組態

確認網路支援 IPv6 且 IPv6 路由的設定都正確。

DNS 解析

確保 DNS 解析程式可以解析雙堆疊端點的 AAAA 記錄。

Security groups (安全群組)

更新安全群組規則,以允許在必要連接埠的 IPv6 流量 (HTTPS 通常是 443)。

用戶端程式庫

確認 HTTP 用戶端程式庫支援 IPv6 和雙堆疊連線。