如何将Amazon EBS复制到S3?

时间:2011-06-09 21:37:05

标签: amazon-s3 amazon-ec2 cloud

我们有一个用户上传文件的网站,其中一些非常大。我们有多个EC2实例,并希望对它们进行负载均衡。目前,我们将文件存储在EBS卷上以便快速访问。复制文件的最佳方法是什么,以便它们可以在多个实例上使用?

我的想法是,将文件上传到S3,然后自动将它们下载到其他EC2实例的自动复制过程将是理想的。

EBS快照无法正常运行,因为它们会复制整个卷,我们需要能够按需复制各个客户的目录。

4 个答案:

答案 0 :(得分:2)

您可以编写一个shell脚本,只要上传(或删除)新文件,就会生成s3cmd以将本地文件系统与S3存储桶同步。它看起来像是:

s3cmd sync  ./  s3://your-bucket/

答案 1 :(得分:1)

两种方式:

  • 忘记EBS,将文件传输到S3并使用S3作为文件管理器而不是EBS,添加cloudfront并在所有地方使用公共链接。
  • 在任何机器上安装S3存储桶。

1。 Amazon CloudFront是一项用于内容交付的网络服务。它使用全球边缘位置网络提供静态和流媒体内容。

http://aws.amazon.com/cloudfront/

2. 您可以在Linux计算机上安装S3存储桶。见下文:

  

s3fs -   http://code.google.com/p/s3fs/wiki/InstallationNotes    - 这确实对我有用。它使用FUSE文件系统+ rsync来同步文件   在S3。它掌握了所有的副本   本地系统中的文件名&使   它看起来像一个文件/文件夹。

这样你就可以在不同的机器上共享S3存储桶。

答案 2 :(得分:0)

取决于您在EC2实例上运行的操作系统:

除非你因为某些其他原因(例如备份)将它们存储在那里,否则没有必要在混音中添加S3。

如果您正在运行* nix,那么经典的选择可能是运行rsync并仅在实例之间进行同步。

在Windows上,你仍然可以使用rsync,否则微软的SyncToy是一个简单的免费选项。否则,这个领域可能有数百个商业应用......

如果您确实希望同步到S3,那么我会推荐其中一个S3客户端应用程序,如CloudBerry或JungleDisk,它们都具有同步功能......

如果您正在运行Windows,那么也值得考虑提供复制的DFS(分布式文件系统),它是Windows Server的一部分......

答案 3 :(得分:0)

最好的方法是使用Amazon Cloud Front服务。所有复制都作为AWS的一部分进行管理。内容由多个不同的可用区域提供,但不要求您在这些区域中拥有EBS卷。

Amazon CloudFront使用全球边缘位置网络提供您的静态和流媒体内容。对象的请求会自动路由到最近的边缘位置,因此内容将以最佳性能传递。

http://aws.amazon.com/cloudfront/