我正在进行类似这样的设置。 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 |<-+ | | | | +------------+
谢谢!
答案 0 :(得分:1)
尝试将S3用作NFS或SAN卷将不会按预期运行。它不是块设备,因此块操作实际上不能在“卷”上工作。像s3fs这样的S3层可以在处理它们之前将文件复制到临时目录。
此处的最佳路线是自动将代码部署到实例。我使用从s3下载并提取zip文件的过程。它每5分钟检查一次s3以获取新代码。
还有其他选项可以处理部署。选择最适合您的情况。只是不要尝试直接从S3运行代码。