是否build议在单个节点上运行docker swarm?

我目前有一些应用程序运行一些服务器,主要是digitalocean上的一个vps,inmotionhosting上的一个cpanel托pipe以及一个在现场实例上运行beanstal / tomcat的ec2实例。

我打算将所有应用程序迁移到AWS ec2现场实例的docker上运行。 为了保持我的IP固定,我将使用AWS Elastic IP地址(EIP)。

我的目标是拥有一个无状态的r3虚拟机,内存为30Gb,运行所有的Docker容器,并且有一个haproxy容器将代理端口80代理到基于dns的正确容器(nginx / tomcat / spring启动应用程序)。

我的问题是,我应该简单地运行我的docker集装箱在我的docker主机,或者我应该使用群模式,并为每个应用程序创build服务,即使知道我将只有这个节点在未来3年(是的,我需要像5Gb和它有30Gb的内存和networking吞吐量对我来说不成问题)。

以下是不正确的答案:*我不会很快有更多的节点,所以不要说我可以轻松地使用群扩展。 *如果实例终止,我知道我所有的应用程序都可能closures,但是我可以承受30分钟的停机时间,所以不要让我说我疯了。

运行群的优势是什么?不使用它有什么好处?

如果我坚持使用群,我如何备份我的群体状态,如果我只有一个经理。

现在我正在考虑使用s3同步(是否值得使用EFS?为什么呢?为什么?)如何将延迟?)绑定到主机上的文件夹到我的Web应用程序容器的容器,并有一个额外的EBS卷来存储数据我的数据库容器,这也将映射到容器。 再次,我知道EBS卷只能附加到一个实例,但我不会有超过一个很快,我不会使用EFS为我的数据库容器,因为延迟。