【问题标题】:Can I vertically scale an Amazon instance? [closed]我可以垂直扩展 Amazon 实例吗? [关闭]
【发布时间】:2019-03-16 22:58:38
【问题描述】:

有可能吗?据亚马逊称,Amazon EC2 Auto Scaling 使用水平扩展:

您还可以使用 Amazon EC2 Auto Scaling 对 EC2 实例进行动态扩展,以便在需求高峰期间自动增加 Amazon EC2 实例的数量以保持性能,并在停顿期间减少容量以降低成本。

通过更改每个实例规范而不是添加或删除它们,我发现没有提到垂直缩放。

【问题讨论】:

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


    【解决方案1】:

    要垂直向上或向下扩展单个 AWS EC2 实例,必须停止实例,然后更改实例大小,然后重新启动。这是因为亚马逊必须经常将 VM 移动到具有可用资源以改变大小的不同硬件的事实。此外,操作系统和软件通常不能很好地处理突然出现的额外 RAM 或 CPU 内核。

    Amazon 不提供自动垂直扩展实例的服务,只提供水平扩展服务,因为水平扩展是唯一不会导致停机的扩展类型。

    【讨论】:

    【解决方案2】:

    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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2012-10-24
        • 1970-01-01
        • 2016-01-16
        • 2019-02-25
        • 2014-10-06
        • 2012-05-22
        • 1970-01-01
        • 1970-01-01
        • 2013-05-31
        相关资源
        最近更新 更多