我今天在面试中遇到的一个问题是:
我的应用程序运行在EC2实例(AWSLinux64bit)上的docker容器中。我们用于应用程序的坞容器(每个容器一个应用程序)连接到一个RDS实例,并且我们将容器设置为自动缩放。你觉得那套设计怎么样?
我建议他,一个更好的方法可能是基于客户规模的EC2实例,因为他可以根据需要使用AWS的可伸缩特性来自动缩放。他提到,他尝试过这种方式,但在自动缩放时为客户提供了较慢的网络连接。
我的问题是:从体系结构的角度来看,运行运行连接到RDS的Docker的可伸缩EC2实例是否更有效?还是当前的设置更好?
我使用EC2可伸缩性的理由是,他的自动可伸缩容器正在运行,而且如果他的EC2最终可能耗尽资源,并可能由于自动缩放过多的容器而导致较高的CPU利用率。
他正在使用Tomcat作为他的web/应用服务器,如果这个信息对这个问题有用的话。
发布于 2019-06-10 13:38:53
当自动缩放时,客户的联网速度较慢。
这句话有点让人困惑..。但是,我将假设他的意思是,与缩放容器相比,使用EC2实例时扩展事件要慢一些。
启动EC2实例比启动码头容器要快,因此,扩展OS内部的容器比缩放EC2实例要快。如果您必须扩展EC2实例,这意味着您必须启动一个新实例,这需要时间,这取决于系统的启动过程。
但是,如果您正在缩放对接容器,如果您需要扩展,这意味着在同一个实例上启动一个新的码头容器,这比启动一个新的EC2实例要快得多。这使得应用程序能够快速响应缩放事件。
我理解你担心如果你缩放容器就会耗尽资源,但是.没有什么可以阻止您扩展您的EC2实例。如果您感兴趣,您应该查看AWS ECS及其如何处理自动缩放
https://unix.stackexchange.com/questions/338750
复制相似问题