EC2。负载均衡器。必须至少指定两个子网

时间:2018-09-13 20:36:34

标签: amazon-web-services amazon-ec2 load-balancing elastic-load-balancer

我正在尝试创建和配置Load Balancer。 可用区部分对我来说只有一个子网和一个区域。

我遇到了错误:

  

必须至少指定两个子网。

一个简单的问题-我该怎么办?谢谢。

2 个答案:

答案 0 :(得分:6)

您首先需要在VPC中创建两个或多个子网。通常最好的做法是为您所在地区的每个可用区(AZ)创建至少一个子网。确保根据您的体系结构选择公共/私有。

AWS文档中没有特定的示例,但是请确保首先了解VPC概念和子网的创建。有关创建子网的最接近的示例演练,请参见Scenarios and Examples

配置ELB时选择子网应该很简单。

答案 1 :(得分:0)

您的VPC中需要两个子网:一种好的做法是在两个不同的可用性区域中拥有一个,例如 a b 。 TERRAFORM_CONFIG_NAME.tf的相关部分如下所示:

setting {
    namespace = "aws:ec2:vpc"
    name      = "Subnets"
    value     = "${lookup(var.vpc_subnets, format("%s_%s", var.location, var.availability_zone))}, ${lookup(var.vpc_subnets, format("%s_%s", var.location, var.secondary_availability_zone))}"
}

,variables.tf像这样:

variable "vpc_subnets" {
  type = "map"
  default = {
    "frankfurt_a" = "subnet-12345671"
    "frankfurt_b" = "subnet-12345672"
    "frankfurt_c" = "subnet-12345673"
    "ireland_a" = "subnet-12345674"
    "ireland_b" = "subnet-12345675"
    "ireland_c" = "subnet-12345676"
  }
}

variable "availability_zone" {
  default = "a"
}

variable "secondary_availability_zone" {
  default = "b"
}


variable "regions" {
  type = "map"
  default = {
    "frankfurt" = "eu-central-1"
    "ireland" = "eu-west-1"
    "london" = "eu-west-2"
  }
}

variable "location" {
  default = "ireland"
}