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