我可以垂直扩展Amazon实例吗?

时间:2018-10-11 19:02:52

标签: amazon-web-services amazon-ec2 autoscaling

有可能吗?据亚马逊称,Amazon EC2 Auto Scaling使用水平缩放: You can also use Amazon EC2 Auto Scaling for dynamic scaling of EC2 instances in order to automatically increase the number of Amazon EC2 instances during demand spikes to maintain performance and decrease capacity during lulls to reduce costs.

我发现通过更改每个实例规范而不是添加或删除它们来引用垂直缩放。

3 个答案:

答案 0 :(得分:4)

要垂直向上或向下扩展单个AWS EC2实例,必须停止该实例,然后更改实例大小,然后重新启动。这是由于以下事实:Amazon必须经常使用具有可用资源的VM将VM移动到其他硬件,以进行大小更改。另外,操作系统和软件通常无法很好地应对多余的RAM或CPU内核的突然出现。

Amazon不提供自动垂直缩放实例(仅水平缩放)的服务,因为水平缩放是唯一不会导致停机的缩放类型。

答案 1 :(得分:0)

Amazon ECS使您可以在容器级别控制Linux容器实例上交换存储空间的使用。使用每个容器的交换配置,任务定义中的每个容器可以启用或禁用交换,对于启用了交换的容器,可以限制使用的交换空间的最大数量。例如,延迟关键型容器可以禁用交换功能,而瞬态内存需求较高的容器可以启用交换功能,以减少容器处于负载状态时出现内存不足错误的机会。

在这里了解更多,Managing Container Swap Space

以下是显示JSON语法的示例:

其他可配置旋钮,使我们可以配置平均交换能力为512 MB的最大交换大小(swappiness接受0到100之间的整数)。

{
    "family": "mywebsite",
    "networkMode": "awsvpc",
    "cpu": "256",
    "memory": "512",
    "requiresCompatibilities": ["EC2"], 
    "containerDefinitions": [
        {
            "name": "mywebsite-nginx",
            "image": "nginx:latest",
            "essential": true,
            "cpu": 128,
            "memory": 256,
            "memoryReservation": 128,
            "linuxParameters": {
                "maxSwap": 512,
                "swappiness": 50
            }
        }
    ]
}

或者阅读有关AWS opsworks的信息,https://docs.aws.amazon.com/opsworks/latest/userguide/workinglayers-ecscluster.html

答案 2 :(得分:0)

是的,Amazon EC2实例可以垂直缩放。为此,启动一个配置比当前正在运行的实例更大的新实例。暂停该实例,然后从服务器分离根ebs卷并丢弃。然后,停止活动的旧实例并分离其根卷,并记下唯一的设备ID,然后将该根卷附加到具有大型配置的新实例上,然后启动它。