Amazon web services 什么';这是设计DynamoDB表来存储cloudwatch警报的最佳方法

Amazon web services 什么';这是设计DynamoDB表来存储cloudwatch警报的最佳方法,amazon-web-services,amazon-dynamodb,Amazon Web Services,Amazon Dynamodb,实际上,我正在使用Cloudwatch为我的不同服务(Elasticsearch、RDS、ELB等)生成警报,我的目标是将这些警报存储在DynamoDB表中 这些是我将要储存的封地: - Service (Elasticsearch, RDS, ELB, ...) - Priority of the alert(P1,P2,P3,P4) - Datetime - Resource Name - Status - Reason 这样设计桌子可以吗: id = Service#Prio

实际上,我正在使用Cloudwatch为我的不同服务(Elasticsearch、RDS、ELB等)生成警报,我的目标是将这些警报存储在DynamoDB表中

这些是我将要储存的封地:

 - Service (Elasticsearch, RDS, ELB, ...)
 - Priority of the alert(P1,P2,P3,P4)
 - Datetime
 - Resource Name
 - Status
 - Reason
这样设计桌子可以吗:

id = Service#Priority
sort_key = Datetime
或者简单地说:

id = Service
sort_key = Datetime
我不确定用什么方法来更好地设计桌子

注意:每天将存储大约50个警报


谢谢。

这是每个服务/资源组合50个警报还是总共50个警报?为什么不计划从AWS Cloudwatch导出,并将您的分析构建在S3/Athena组合上呢


您还应该考虑使用AWS EMR来进行日志分析用例。您在DynamoDB上构建解决方案的任何原因,因为上面的任何分区技术都可能会创建性能降低的热点

您的获取/查询场景是什么?使用哪个键可以避免扫描?你们有热分区吗?为什么要使用DynamoDB?查询的一个示例是获取日期范围的Service Elasticsearch的优先级1警报。您所说的“可以避免扫描的键”是什么意思?可以使用Get(精确分区和排序键)、Query(精确分区和条件排序键)或scan(所有分区和任何排序键)从DynamoDB读取项目。您应该避免扫描表。@Matthia是的,但是设计表以优化查询而不使用ScanIt的最佳方法是什么,总共大约50个警报。我正在使用Cloudwatch Alarm,我找不到如何将它们导出到S3??实际上,它们被重定向到SNS,触发发送电子邮件的Lambda。我认为将它们直接(使用相同的Lambda)写入表是很容易的,这就是为什么我认为使用DynamoDB