AWS EC2:用于Web服务设置的EBS和S3

时间:2014-02-11 08:37:37

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

我正在进行类似这样的设置。 Server1和Server2是EC2实例,每个实例都附加了EBS卷。这些服务器应该运行一个应用程序(基于python,基于烧瓶),并且server1和server2上的配置是不同的,这将在各自的EBS卷上。但是除了配置之外,代码库很常见,我需要将它放在server1和server2都可访问的公共位置。我可以使用S3桶吗?

这可能是一个非常愚蠢的问题,但由于我无法找到明确的答案,无论如何都要问它。 S3存储桶是否可以作为可以托管代码库的驱动器可见,这可以由运行在服务器1和2上的应用程序选择?我发现了一些像tntdrive这样的工具,但想知道是否有更好/更优雅的方法来完成它?简单地说,我可以将这个S3存储桶用作服务器1和2上的共享驱动器吗?


    +-----------+             +-----------+
    | Server 1  |             | Server 2  |
    +---------+-+             +--+--------+
       +----+ |                  | +----+
       |EBS1| |                  | |EBS2|
       +----+ |                  | +----+
              |  +------------+  |
              |  |            |  |
              +->| S3 bucket  |<-+
                 |            |
                 |            |
                 +------------+

谢谢!

1 个答案:

答案 0 :(得分:1)

尝试将S3用作NFS或SAN卷将不会按预期运行。它不是块设备,因此块操作实际上不能在“卷”上工作。像s3fs这样的S3层可以在处理它们之前将文件复制到临时目录。

此处的最佳路线是自动将代码部署到实例。我使用从s3下载并提取zip文件的过程。它每5分钟检查一次s3以获取新代码。

还有其他选项可以处理部署。选择最适合您的情况。只是不要尝试直接从S3运行代码。