首页 > 解决方案 > 如何验证 EC2 中的应用程序正在使用 VPC 端点与 Dynamodb 通信?

问题描述

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

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

标签: javaamazon-web-servicesamazon-ec2amazon-dynamodbvpc-endpoint

解决方案


您可以使用 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的链接部分确保使用网关端点条目更新适用的路由表


推荐阅读