我可以垂直扩展 Amazon 实例吗?
Can I vertically scale an Amazon instance?
可能吗?根据 Amazon 的说法,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.
通过更改每个实例规范而不是添加或删除它们,我发现没有提及垂直缩放。
要垂直向上或向下扩展单个 AWS EC2 实例,必须停止实例,然后更改实例大小,然后重新启动。这是因为 Amazon 必须经常将 VM 移动到具有可用资源以进行大小更改的不同硬件。此外,操作系统和软件通常不能很好地处理额外 RAM 或 CPU 内核的突然出现。
Amazon 不提供垂直自动扩展实例的服务,只提供水平扩展,因为水平扩展是唯一不会导致停机的扩展类型。
Amazon ECS 使您能够在容器级别控制 Linux 容器实例上交换内存 space 的使用。使用每个容器的交换配置,任务定义中的每个容器都可以启用或禁用交换,对于启用交换的容器,可以限制使用的最大交换量 space。例如,延迟关键的容器可以禁用交换,而具有高瞬态内存需求的容器可以打开交换以减少容器在负载时出现内存不足错误的可能性。
在此处阅读更多内容,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
是的,Amazon EC2 实例可以垂直扩展。为此,启动一个配置比您当前 运行 大的新实例。暂停此实例并从服务器分离根 ebs 卷并丢弃。然后停止您的活动旧实例并分离其根卷并记下唯一的设备 ID 并将该根卷附加到具有大配置的新实例,然后启动它。
可能吗?根据 Amazon 的说法,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.
通过更改每个实例规范而不是添加或删除它们,我发现没有提及垂直缩放。
要垂直向上或向下扩展单个 AWS EC2 实例,必须停止实例,然后更改实例大小,然后重新启动。这是因为 Amazon 必须经常将 VM 移动到具有可用资源以进行大小更改的不同硬件。此外,操作系统和软件通常不能很好地处理额外 RAM 或 CPU 内核的突然出现。
Amazon 不提供垂直自动扩展实例的服务,只提供水平扩展,因为水平扩展是唯一不会导致停机的扩展类型。
Amazon ECS 使您能够在容器级别控制 Linux 容器实例上交换内存 space 的使用。使用每个容器的交换配置,任务定义中的每个容器都可以启用或禁用交换,对于启用交换的容器,可以限制使用的最大交换量 space。例如,延迟关键的容器可以禁用交换,而具有高瞬态内存需求的容器可以打开交换以减少容器在负载时出现内存不足错误的可能性。
在此处阅读更多内容,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
是的,Amazon EC2 实例可以垂直扩展。为此,启动一个配置比您当前 运行 大的新实例。暂停此实例并从服务器分离根 ebs 卷并丢弃。然后停止您的活动旧实例并分离其根卷并记下唯一的设备 ID 并将该根卷附加到具有大配置的新实例,然后启动它。