AWS:当我向已经启动的实例发送启动命令时会发生什么?

时间:2017-04-24 07:17:03

标签: amazon-web-services amazon-ec2

我有10台机器的AWS实例限制。 我有5个跑步。 我可以开始已经启动机器了:

$ aws ec2 start-instances --instance-ids i-123456789
---------------------------
|     StartInstances      |
+-------------------------+
||   StartingInstances   ||
|+-----------------------+|
||      InstanceId       ||
|+-----------------------+|
||  i-123456789          ||
|+-----------------------+|
|||    CurrentState     |||
||+--------+------------+||
|||  Code  |   Name     |||
||+--------+------------+||
|||  16    |  running   |||
||+--------+------------+||
|||    PreviousState    |||
||+--------+------------+||
|||  Code  |   Name     |||
||+--------+------------+||
|||  16    |  running   |||
||+--------+------------+||

当我开始5次启动机器时突然我收到消息:发生错误(InstanceLimitExceeded) when calling the StartInstances operation: Your quota allows for 0 more running instance(s). You requested at least 1
奇怪的是因为我没有创造新的实例 - 所有实例都在运行 停止所有实例后,开始像以前一样工作。

当我开始启动机器时会发生什么?

1 个答案:

答案 0 :(得分:1)

为已经运行的实例发送StartInstances命令不会生成错误。它只返回一个响应:

{
    "StartingInstances": [
        {
            "InstanceId": "i-abcd1234", 
            "CurrentState": {
                "Code": 16, 
                "Name": "running"
            }, 
            "PreviousState": {
                "Code": 16, 
                "Name": "running"
            }
        }
    ]
}

因此,启动Running实例时不会发生任何事情。

您可能想知道为什么它会给您错误消息。我不知道,但我怀疑检查配额以确定是否可以启动实例的逻辑不首先检查所请求的实例是否正在运行。它可能会查看当前运行的实例数,添加您希望启动的实例数,然后在总数超过允许的配额时生成错误。