亚马逊S3有一个跨区域复制,它将处理新的/更新的对象到其他区域的副本。
问题是,解决方案没有为复制过程提供状态可见性,例如,目前无法轻松监视目标上缺少的对象或任何可能会干扰进程并导致复制无法完成其工作的权限问题,以及缺少复制延迟的反馈。
我们发现了一些类似于cost https://aws.amazon.com/answers/infrastructure-management/crr-monitor/的工具,但是我们对它没有很好的经验,因为我们管理了数以千万计的对象,这些对象每个月花费几千美元用于CloudWatch事件,以及对解决方案所需服务的额外管理(DinamoDB、DinamoDB等)。需要另一层“监视监视器”。
目前,我们使用Athena对S3对象进行每日比较,源和目的地之间的库存使用AWS雅典娜查询,这也像一次黑客攻击,对于问题检测来说并不是最理想的,因为库存是以每日频率生成的。
我希望看到一些关于替代方案的反馈、建议、想法或经验。理想的解决方案将被管理或“无服务器”解决方案,这将提高可见性的过程,并将提供快速的错误检测。
发布于 2019-07-15 18:50:38
我的解决方案是基于@rombob的。我使用S3并创建了源桶的每日S3库存文件(该文件是复制的)。然后,我使用Glue (在CloudFormation中)创建了雅典娜数据库和表。然后,我实现了一个触发lambda的S3事件。每次上传一个新的manifest.checksum文件(=新库存完成)。lambda对雅典娜表执行一个查询,并检查是否存在复制状态失败的对象。如果有,则lambda发布到SNS主题以发送电子邮件。
发布于 2018-11-14 20:10:08
仍然没有答案,仍然没有在AWS上进行CRR监控,这是一个极简的解决方案,欢迎任何反馈和建议。此监视器将只显示目标中缺少哪些S3对象,它不会在复制对象的版本上提供可见性。
先决条件
监视器
运行雅典娜查询后,两个库存报告产生的日常基础上,可以执行从兰卜达,阶跃函数,构建服务器或任何类型的cron作业。
Athena查询示例,该查询应该在生成库存报告时显示目标桶上丢失的对象的数量:
FROM src_inventory src
LEFT JOIN dst_inventory dst
ON src.key = dst.key
WHERE dst.key is NULL
AND src.dt = '2018-11-11-08-00';结果可作为CloudWatch指标报告,并通过CloudWatch报警进行监测。
发布于 2019-02-11 17:55:51
此时,使用S3库存来监视复制是大桶和AWS建议的解决方案本身的最佳解决方案。由于AWS不直接报告状态,所以当涉及到许多对象时,任何其他解决方案都可能是昂贵和耗时的。轨道。
一个显而易见的想法是与AWS的支持沟通,让他们添加这样的功能。但这是显而易见的。
https://devops.stackexchange.com/questions/5115
复制相似问题