我们正在使用AWS来满足我们的基准要求,出于计费和成本核算的目的,我们需要知道为特定客户传输到EC2实例的确切数据量。 AWS中是否有任何此类实用程序可用,或者我应该如何处理此问题。
我们的体系结构很简单我们有一个api服务器,它是ec2实例之一的Node.js®
服务器,它与另一个ec2上的MongoDB®
数据库服务器进行通信,除此之外我们还有一个Web应用程序服务器,它再次在Node.js®
中运行角度Web应用程序。
目前我们不使用ELB
,我们通过登录信息识别客户端,即JWT Token
中的组织ID。
答案 0 :(得分:1)
鉴于您当前的体系结构,您需要创建某种形式的Node中间件,从请求(和/或响应)中提取客户端ID和content-length
,并将它们写入持久存储。在AWS生态系统中,您可以写信至DynamoDB,Kinesis,甚至SQS。在AWS生态系统之外,您可以使用某种形式的日志代理向关系数据库或控制台日志写入,以将信息移动到持久存储。
但是,在此处捕获数据存在一些问题:
更好的方法IMO将客户端ID添加到URL,将ELB添加到前端负载分配。然后启用request logging并使用AWS Athena或其他工具对日志进行事后分析。
答案 1 :(得分:0)
如果您在VPC中运行这些EC2实例,则可以使用VPC Flow Logs深入了解每个实例传输的数据量。