RDS实例和对应的EC2

RDS instance and corresponding EC2

我在 AWS 账户中只有很少的 EC2 和 RDS 实例 运行。

我想知道哪个 EC2 正在使用哪个 RDS 实例? 有什么办法可以从控制台找到它吗?

我无法访问这些 EC2 中的 application/services 运行,所以我无法检查它。

选项 1:

  1. 确保 AWS VPC flow logs 已启用,如果未启用则启用它们。

  2. 转到AWS CloudWatch logs insights和select AWS VPC流日志组,运行查询

  3. 执行以下 AWS CloudWatch 日志洞察查询;

fields srcAddr | filter interfaceId='<elastic network interface id here>' and dstPort=<database connection port here> and action='ACCEPT' | stats count(*) as connection_count by srcAddr | sort connection_count desc

其中,

interfaceId - 是 RDS 实例的网络接口 ID,通常以 eni-

为前缀

dstPort - 是数据库端口号,应用程序使用它进行数据库连接

srcAddr - 是网络接口的 ipv4 地址,are/were 成功连接到 dstPort

上的数据库

您还可以修改此查询以获取多个 RDS 数据库的记录

  1. 转到 advanced query feature of AWS Config 并执行步骤 3) 中的以下 IPv4 地址查询

SELECT configuration.attachment.instanceId WHERE resourceType = 'AWS::EC2::NetworkInterface' AND configuration.privateIpAddress='<ipv4 address here>'

其中,

configuration.attachment.instanceId - 是 ec2 实例 ID

configuration.privateIpAddress - 是连接到 ec2 实例的网络接口的主要私有 IPv4 地址

您还可以修改此查询以获取多个 ec2 和网络接口的记录

选项 2:

您可以启用 AWS RDS Performance Insights 并在仪表板上查看已连接的客户端

选项 3:

您可能有正在使用的特定数据库供应商提供的方法,但为此您需要连接到单个数据库并获取详细信息。所以,这是一个耗时的选项。

选项 4:更适合您的用例

使用AWS VPC traffic mirroring