自动缩放无法正确创建实例

Autoscaling does not properly create instances

我在尝试使用自动缩放策略和组启动实例时遇到此错误。

Cancelled: Launching a new EC2 instance: i-50dd31cc. Status Reason: Only EC2-Classic instances may be linked.

我正在使用以下命令创建自动缩放启动配置和自动缩放组。

aws autoscaling create-launch-configuration --launch-configuration-name my-lc --image-id ami-12345678 --instance-type c4.large --classic-link-vpc-id vpc-1345622 --user-data file:///Users/path/Desktop/myscript.sh --classic-link-vpc-security-groups sg-sad34353 --spot-price "0.5"

aws autoscaling create-auto-scaling-group --auto-scaling-group-name my-asg --launch-configuration-name my-lc --availability-zones "us-east-1a" "us-east-1e" --max-size 10 --min-size 1 --desired-capacity 10 --vpc-zone-identifier 'subnet-asd3r322,subnet-asdasd12'

然后我根据 SQS 中的消息数量创建 Cloudwatch 警报。一切似乎都很好,实例 运行 正确。但问题是它们始终处于 "pending" 状态。然后恰好半小时后,他们因上述错误而关闭。

如何 link 只有经典 EC2 实例?

我还有一个与 "desired" 实例相关的问题。我的最小数量是 1,最大数量是 10,所需数量是 10。所以当我启动组并且 SQS 中没有消息时,所需容量会自动下降到 1。但是当有 1000 条消息时,甚至超过一半一个小时,所需的容量没有增加。仍然只有一个实例是 运行ning。为什么?

您在这里有 2 个问题,所以我会尽力回答。

启动配置:您似乎正在尝试创建启动配置以将实例启动到 EC2 Classic linked 到 VPC。您在启动配置中定义的是启动一个 c4.large(仅限 VPC 类型的实例),并为 VPC 启用了 classic-link。您需要 select 与 EC2 Classic 兼容的实例类型。

A​​utoScaling 组:您正在尝试从启用了 classic-link 的启动配置启动一个实例(暗示您希望将其启动到 EC2 Classic,但您提供的是 VPC(子网 ID)启动它。您不应该提供 VPC 子网 ID 来启动它。

单独的命令并没有错,因此您没有收到任何错误,但它们不兼容,无法在启动时一起使用。

CloudWatch:我建议解决第一个问题,并提出一个关于您的 CloudWatch 警报不起作用的单独问题,但我怀疑您没有将警报 link 发送到自动缩放组。有关详细信息,请参阅此 url:http://docs.aws.amazon.com/autoscaling/latest/userguide/as-scale-based-on-demand.html