AWS将S3存储桶与EC2实例同步

时间:2016-06-23 19:35:54

标签: amazon-web-services amazon-s3 amazon-ec2

我想在多个Windows EC2实例上将S3存储桶与单个目录同步。从存储桶上传或删除文件时,我希望它可以立即从所有实例中推送或删除。将频繁添加/删除新实例(每周多次)。文件也会经常上传/删除。文件大小最大可达2GB。 AWS服务或功能可以解决这个问题?

3 个答案:

答案 0 :(得分:1)

根据您所描述的内容,我将针对此问题提出以下解决方案。

您需要为SNS更改通知创建S3主题。然后你需要一个脚本,它将从你的机器订阅这个主题。此脚本将根据S3的更改更新计算机上的文件。它应该支持基本的CRUD操作。

运行此脚本,然后在使用上述S3开始时将aws-cli的内容同步到您的计算机。

答案 1 :(得分:0)

是的,我使用了aws cli s3" sync"命令通过S3更改保持本地服务器的内容更新。它允许本地目标目录的文件与存储桶或前缀同步。 http://docs.aws.amazon.com/cli/latest/reference/s3/sync.html

答案 2 :(得分:-1)

编辑:以下答案是将EC2与S3 Bucket同步,来源:EC2&目的地:Bucket。

如果只有一个实例,则只有aws cli sync(带 - 删除选项)才能同时使用:将文件放入S3存储桶并删除。

但这里的情况是多个实例,因此如果我们使用aws s3 sync选项--delete,则会出现问题。

要简单解释一下,请考虑实例 I1 ,文件 a.jpg & b.jpg 将同步到Bucket。 现在,CRON作业已将文件与S3存储桶同步。

现在我们有实例 I2 ,其中包含文件 c.jpg & D.JPG 。 因此,当此实例的CRON作业运行时,它会放置文件 c.jpg & d.jpg 并删除文件 a.jpg & b.jpg ,因为这些文件在实例 I2 中不存在。

因此,为了纠正这个问题,我们有两种方法:

  1. 同步所有实例中的所有文件(费用并完全取消S3的目的)。
  2. 在没有 - 删除选项的情况下同步文件,并单独实施删除(使用aws s3 rm)。