AWS EC2 基础设施

AWS EC2 基础设施

今天我参加了一次工作面试,我面临的一个问题是:

我的应用程序在 EC2 实例(AWS Linux 64 位)上的 docker 容器中运行。我们用于应用程序的 docker 容器(每个容器一个应用程序)连接到 RDS 实例,并且我们将容器设置为自动缩放。你觉得这样的设置怎么样?

我建议他,更好的方法可能是根据客户规模使用 EC2 实例,因为他可以使用 AWS 的可扩展功能根据需要自动扩展。他提到他尝试过这种方式,但在自动扩展时,客户的网络速度会变慢。

我的问题是:从架构的角度来看,运行连接到 RDS 的 Docker 的可扩展 EC2 实例是否更高效?还是目前的设置更好?

我使用 EC2 可扩展性的原因是因为他运行了自动可扩展容器,并且如果他的 EC2 最终可能会耗尽资源,并且可能会因自动扩展太多容器而导致 CPU 利用率过高。

如果该信息对这个问题有用的话,他正在使用 Tomcat 作为他的 Web/应用程序服务器。

答案1

自动扩展时客户的网络速度变慢

这个说法有点令人困惑……但我假设他的意思是,与扩展容器相比,使用 EC2 实例时扩展事件会更慢。

启动 EC2 实例比启动 docker 容器更快,因此,在操作系统本身内扩展容器比扩展 EC2 实例更快。如果您必须扩展 EC2 实例,这意味着您必须启动一个新实例,这需要时间,具体取决于系统的启动过程。

但是,如果您要扩展 docker 容器,那么如果您需要扩展,则意味着在同一实例上启动一个新的 docker 容器,这比启动一个新的 EC2 实例要快得多。这使得应用程序能够快速响应缩放事件。

我理解您担心如果扩展容器,实例上的资源就会耗尽,但是……也没有什么可以阻止您扩展 EC2 实例。如果您有兴趣,您应该查看一下亚马逊云服务器以及它如何处理自动缩放

相关内容