1

我有一个部署在 EC2 中并与 Dynamodb 通信的 Java 应用程序。我为 Dynamodb 启用了 VPC 端点(网关端点)。但是我没有注意到这种变化对性能有任何改善。从理论上讲,与公共访问相比,我应该通过 VPC 端点看到更少的延迟。同样基于 tcpdump,我可以看到我们的应用程序仍在使用 dynamodb 的公共 IP 进行通信。 TCP 转储

52.119.232.38是 dynamodb 公共 IP。如何验证我们在 EC2 中的应用程序是否使用 VPC 端点与 Dynamodb 通信?

  • EC2 和 VPC 端点都为同一个 VPC 启用。
4

2 回答 2

2

您可以使用 AWS cloudtrail 来验证这一点。如果您仅从托管在 AWS 网络上且具有关联的 VPC 网关终端节点的应用程序连接到 DynamoDB,那么您应该只会在 Cloudtrail 日志的源 IP 字段中看到私有 IP。如果您看到其他公共 IP,则表示正在通过 Internet 访问 DyanmoDB。

  • 转到 AWS Cloudtrail 并筛选EventSource dynamodb.amazonaws.com
  • 如果您没有看到任何 cloudtrail 事件,请确保选择您期望应用程序访问 DynamoDB 的时间段或手动 ssh 到 EC2 实例并运行一些 cli 命令aws dynamodb list-tables,然后等待 10-15 分钟以使此新事件出现.
  • 单击设置图标以显示Source IP address事件
  • Source IP address事件应该来自您的 VPC 的 CIDR 范围(在这种情况下是 EC2 实例的私有 IP )
  • 您可以单击事件名称并查看原始事件,该事件的键值vpcEndpointId与 VPC 端点的 id 相同

如果源 IP 不是 EC2 实例的私有 IP,请按照此处To add or remove route tables used by a gateway endpoint的链接部分确保使用网关端点条目更新适用的路由表

于 2021-05-01T12:16:53.860 回答
0

您可以简单地为 dynamodb 的端点执行 nslookup,它应该从 vpc 内的实例返回私有 IP 地址。

于 2021-05-01T18:19:35.267 回答