我有以下要求:
- 对于 RDS 中每条已删除的记录,我们需要将其存档到 AWS 上更便宜的地方。
- 降低存储成本
- 不使用冰川
- 面向上下文(例如,每个表一个文件(
- 不需要重新导入
我不是 AWS 的有经验的用户,所以我仍然对它必须提供的选项数量感到有些迷茫,我想知道您是否有更多想法来帮助我清除它。
最初的想法:
删除记录的微服务- 可能会将其发送到代理(例如 RabbitMQ(,另一个微服务(我们称之为
archiver
(将侦听它,写入文件,压缩并发送到 S3。但是,这种方法存在一些技术挑战:为了有意义地创建大文件,我需要等待队列增长一点,将其包装成流并在 S3 中压缩。事务控制也非常弱,因为文件写入和消息确认是基于信号的,即我将在创建文件后立即从代理中删除消息。 - 将一个新列作为"已删除(布尔值("添加到"存档"表中,并运行单独的作业,仅获取这些记录并将其保存到 S3 中。丢弃后,他们不希望新的微服务能够访问其他人的数据库。
- 遵循与第一项相同的方法,但不是保存到 S3 中,而是保存到更便宜的数据库中。简单数据库?
选项 1,但不是 Rabbitmq,而是将其写入 Kinesis Firehose 并将其定向到 S3 位置 - 它没有比这便宜或容易的了。