2014-02-11 35 views
0

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

这可能是一个非常愚蠢的问题,但因为我找不到明确的答案,所以无论如何都要问。作为驱动器,S3存储桶是否可见?可以托管哪些代码库,哪些应用程序可以在服务器1和2上运行?我发现了一些实用程序,如tntdrive,但想知道是否有更好的/优雅的方式来完成它?简而言之,我可以让这个S3存储桶在服务器1和2上用作共享驱动器吗?

 

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

谢谢!

回答

1

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

这里最好的路线是自动将代码部署到实例。我使用从s3下载和提取压缩文件的过程。它每5分钟检查一次s3以获取新代码。

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

+0

>>只是不要试图直接从S3运行代码。 << 是的,即使我有类似的感觉,这可能不是一个好主意。感谢您的投入。 – megazoe