将数据从一个s3连续复制到另一个s3存储桶的最佳方法是什么?我知道S3支持事件通知并将其发送到lambda,SNS和SQS,但是我不确定该怎么做?我应该触发lambda函数从S3接收记录并将它们复制到另一个s3吗?我应该使用SNS还是SQS来做到这一点?
答案 0 :(得分:2)
假设两个存储桶都位于同一区域(否则您可以使用跨区域复制),则过程将是:
Lambda函数将传递存储桶和对象的详细信息。然后应将对象复制到另一个存储桶。
无需参与Amazon SNS或Amazon SQS。
答案 1 :(得分:0)
我建议使用S3复制。您可以在不同的AWS区域之间或同一AWS区域内复制对象。
跨区域复制(CRR)用于跨不同AWS区域中的Amazon S3存储桶复制对象。
相同区域复制(SRR)用于跨同一AWS区域中的Amazon S3存储桶复制对象。
如此处所述:https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html
您只需要转到S3存储桶中的管理->复制,并配置源存储桶和目标存储桶。此外,您可以使用加密:
复制可以帮助您执行以下操作:
在保留元数据的同时复制对象-您可以使用复制为保留所有元数据的对象制作副本,例如原始对象的创建时间和版本ID。如果您需要确保副本与源对象相同,则此功能很重要
将对象复制到不同的存储类中-您可以使用复制将对象直接放入Glacier,DEEP ARCHIVE或目标存储桶中的另一个存储类中。您还可以将数据复制到相同的存储类,并在目标存储桶上使用生命周期策略,以将对象随年龄而移至较冷的存储类。
以不同的所有权维护对象副本-无论谁拥有源对象,您都可以告诉Amazon S3将副本所有权更改为拥有目标存储桶的AWS账户。这称为所有者覆盖选项。您可以使用此选项来限制对对象副本的访问。
在15分钟内复制对象-您可以使用S3复制时间控制(S3 RTC)在可预测的时间范围内在同一AWS区域或不同区域之间复制数据。 S3 RTC在15分钟内复制了Amazon S3中存储的99.99%的新对象(由服务级别协议支持)。有关更多信息,请参见使用S3复制时间控制(S3 RTC)复制对象。
跨区域复制可以帮助您执行以下操作:
满足合规性要求-默认情况下,尽管Amazon S3跨多个地理位置遥远的可用区存储您的数据,但合规性要求可能会要求您以更大的距离存储数据。跨区域复制使您可以在遥远的AWS区域之间复制数据,以满足这些要求。
最小化延迟—如果客户位于两个地理位置,则可以通过在地理位置上更接近用户的AWS区域中维护对象副本来最大程度地减少访问对象的延迟。
提高运营效率-如果您在两个不同的AWS区域中拥有计算集群来分析同一组对象,则可以选择在这些区域中维护对象副本。
相同区域复制可以帮助您执行以下操作:
将日志聚合到单个存储桶中-如果将日志存储在多个存储桶中或跨多个帐户存储,则可以轻松地将日志复制到单个区域内存储桶中。这样可以简化单个位置的日志处理。
配置生产和测试帐户之间的实时复制-如果您或您的客户拥有使用相同数据的生产和测试帐户,则可以通过实施SRR规则在这些多个帐户之间复制对象,同时保持对象元数据。
遵守数据主权法律-您可能需要将数据的多个副本存储在特定区域内的单独AWS账户中。当法规遵从性规定不允许数据离开您的国家/地区时,同区域复制可以帮助您自动复制关键数据。