2

我有一个非常标准的堆栈、RDS、2 个使用 ELB 的 EC2 实例。因为我希望 ELB 被限制在一个特定的 IP 范围内,所以我在 VPC 中启动了堆栈,出于 2 个子网的 DR 原因。

我使用了几台临时 ec2 机器,当它们不在 VPC 中时,我允许在任何可用区启动。这(据我所知)意味着如果 AZ 不可用,那么机器将在其他区域启动。

有没有办法在 VPC 中模拟这一点?有没有办法说在 VPC 的任何子网中启动机器?

如果不是通过随机选择一个子网来解决它相当容易,并且如果它尝试另一个失败。只是想知道是否有更清洁的受支持方法?

我正在使用python和boto。

谢谢

4

1 回答 1

2

这(据我所知)意味着如果 AZ 不可用,那么机器将在其他区域启动。

这是正确的,当通过可用的Amazon EC2 API 操作直接运行实例时,在Amazon VPC中提供此选项确实很好。

不幸的是,RunInstancesRequestSpotInstances API 操作都只允许分别指定可选参数SubnetIdLaunchSpecification.SubnetId启动 [Spot] 实例的子网的 ID),因此不会有任何信息到您的 VPC如果未指定子网,则希望启动实例。

解决方法

您可以通过Auto ScalingCreateAutoScalingGroup API 操作间接实现所需的行为,请参阅参数VPCZoneIdentifier

Amazon Virtual Private Cloud (Amazon VPC) 的子网标识符的逗号分隔列表。

于 2013-04-02T20:17:05.137 回答