我今天从 AWS 收到以下错误。“我们目前在您请求的可用区 (us-east-1a) 中没有足够的 m3.large 容量。我们的系统将努力预置额外的容量。您目前可以通过不指定可用区来获得 m3.large 容量您的要求或选择 us-east-1e、us-east-1b。”
这到底是什么意思?听起来 AWS 没有物理资源来分配我需要的虚拟资源。但这似乎令人难以置信。
解决方案是什么?有没有一种简单的方法可以更改实例的可用区?还是我需要创建一个 AMI 并在新的可用区中恢复它?
我今天从 AWS 收到以下错误。“我们目前在您请求的可用区 (us-east-1a) 中没有足够的 m3.large 容量。我们的系统将努力预置额外的容量。您目前可以通过不指定可用区来获得 m3.large 容量您的要求或选择 us-east-1e、us-east-1b。”
这到底是什么意思?听起来 AWS 没有物理资源来分配我需要的虚拟资源。但这似乎令人难以置信。
解决方案是什么?有没有一种简单的方法可以更改实例的可用区?还是我需要创建一个 AMI 并在新的可用区中恢复它?
这不是一个新问题。您无法更改可用区。正如您已经说过的,最好的选择是创建一个 AMI 并在新 AZ 中重新启动实例。你会一切就绪。如果您想跨地区,请参阅 - http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/CopyingAMIs.html
我通过修复我的 aws_region 和 availability_zone 值修复了这个错误。添加 aws_subnet_ids 后,错误消息会准确显示我的 ec2 正在创建的区域。
variable "availability_zone" {
default = "ap-southeast-2c"
}
variable "aws_region" {
description = "EC2 Region for the VPC"
default = "ap-southeast-2c"
}
data "aws_vpc" "default" {
default = true
}
data "aws_subnet_ids" "all" {
vpc_id = "${data.aws_vpc.default.id}"
}
resource "aws_instance" "ec2" {
....
subnet_id = "${element(data.aws_subnet_ids.all.ids, 0)}"
availability_zone = "${var.availability_zone}"
}
您可以尝试获取预留实例,这可以保证您始终获取实例。