在DynamoDB文档和互联网上的许多地方,我已经看到单个数字的ms响应时间是典型的,但即使使用最简单的设置,我也似乎无法实现.我已经在us-west-2中配置了t2.micro ec2实例和DynamoDB表,并且当从ec2实例上的aws cli运行下面的命令时,我得到平均大约250 ms的响应.从本地计算机(丹佛)运行的相同命令平均大约700毫秒.
aws dynamodb get-item --table-name my-table --key file://key.json
在AWS控制台中查看CloudWatch指标时,它表示平均获取延迟为12毫秒.如果有人能告诉我我做错了什么或指向我的信息方向,我可以自己解决这个问题,我真的很感激.提前致谢.
您所看到的响应时间主要取决于aws cli的冷启动时间.运行get-item命令时,必须将cli加载到内存中,获取临时凭证(如果在t2.micro实例上运行时使用ec2 iam角色),并建立与DynamoDB服务的安全连接.完成所有操作后,它会执行get-item请求,最后将结果打印到stdout.您的命令还引入了从文件系统读取key.json文件的需要,这增加了额外的开销.
我在t2.micro实例上运行的经验是aws cli在启动时有大约200ms的开销,这似乎与你所看到的一致.
对于长时间运行的程序,这不会是一个问题,因为它们只在开始时支付类似的间接费用.我在使用DynamoDB的t2.micro实例上运行了许多Web服务,DynamoDB响应时间始终低于20ms.