amazon-web-services - 在任何 VPC 子网中启动 EC2 实例,在非 VPC 启动中模拟 "No Preference"选项

标签 amazon-web-services amazon-ec2 boto amazon-vpc

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

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

有没有办法在 VPC 中模拟这个?有没有一种方法可以说在 VPC 的任何子网中启动机器?

如果不是,则可以通过随机选择一个子网来轻松解决问题,如果失败则尝试另一个子网。只是想知道是否有更清洁的受支持方法?

我正在使用 python 和 boto。

谢谢

最佳答案

Which (as far as I understand) would mean that if an AZ were unavailable then machines would be started in other zones.

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

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

解决方法

您可以通过 Auto Scaling 间接实现所需的行为通过其CreateAutoScalingGroup API 操作,参见参数VPCZoneIdentifier:

A comma-separated list of subnet identifiers of Amazon Virtual Private Clouds (Amazon VPCs).

关于amazon-web-services - 在任何 VPC 子网中启动 EC2 实例,在非 VPC 启动中模拟 "No Preference"选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15123685/

相关文章:

amazon-web-services - AWS 上是否允许带有正文的 Get 请求?来自 CloudFront 的 403 错误

amazon-web-services - 如何使用 AWS CLI 从 EBS 快照创建 AMI

python - 在 python 3 中使用 boto

amazon-web-services - 使用月度许可在云 (AWS) 上许可产品

amazon-web-services - 使用自定义推理脚本调用 sagemaker 端点

amazon-web-services - Amazon aws lex 聊天机器人支持视频吗?

python-2.7 - 使用 Boto 在 Amazon Mturk 中创建 HIT 时获取 HIT Id

python - 以编程方式设置区域时,连接到 boto 中的弹性 beantalk 的好方法是什么?

mysql - 无法从 AWS EC2 实例中找到创建的数据库

amazon-web-services - 如何在 Amazon AWS 上附加后配置 IOPS 类型 EBS?