如何指定 RDS 或 DynamoDB 的子网?

How can I specify the subnet of an RDS or DynamoDB?

我想为 DynamoDB 或 RDS 数据库指定子网,以减少从我的 EC2 服务器访问数据库时的延迟。这可能吗?目前同地域的EC2服务器读取DynamoDB服务器的延迟大约为0.1s,这似乎太慢了。

您如何衡量延迟?听到您从 EC2 主机使用 Dynamo 时出现 100 毫秒的延迟,我感到非常惊讶。根据我的经验,DynamoDB 在几十毫秒内提供了非常一致的延迟:在第 99 个百分位数中为 10-20 毫秒,在第 90 个百分位数中为 10 毫秒是非常典型的。大多数或请求在 4-5 毫秒内完成,中值延迟 (p50) 甚至更低。

当然,请求需要多长时间还取决于您传输的数据量。例如,编写大型项目可能比简单地更新较小的项目花费更长的时间。

如果您确实想为 DynamoDB 配置 VPC 端点,那是完全可能的,您可以使用 aws ec2 create-vpc-endpoint 命令完成此操作,如以下指南所示:

https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/vpc-endpoints-dynamodb.html

注意 在您的问题中,您也询问了 RDS。虽然 RDS 不提供 VPC 端点作为服务,但 RDS 实例已经在您的 VPC 中,因此谈论 RDS 数据库的 VPC 端点并没有多大意义。您可以简单地创建实例,甚至不为其提供 public 互联网访问权限。对 RDS 数据库的请求将简单地流经 VPC 路由器,直接到达 RDS 实例端点,所有这些都在 VPC 内。