elasticsearch 使用Terraform创建ElasticSearch域时出错-只需要一个子网,elasticsearch,terraform,elasticsearch,Terraform" /> elasticsearch 使用Terraform创建ElasticSearch域时出错-只需要一个子网,elasticsearch,terraform,elasticsearch,Terraform" />

elasticsearch 使用Terraform创建ElasticSearch域时出错-只需要一个子网

elasticsearch 使用Terraform创建ElasticSearch域时出错-只需要一个子网,elasticsearch,terraform,elasticsearch,Terraform,我今天可能遇到了一些相互矛盾的文件 当使用vpc选项创建弹性搜索域时,HashiCorp Terraform官方文档()表示子网是一个列表,甚至在其示例中指定了2个子网。但是,当我指定2个子网时,我得到一个错误(我尝试了两种不同的方法指定子网列表)—— 他们都给了我同样的错误- Error: Error creating ElasticSearch domain: ValidationException: You must specify exactly one subnet. stat

我今天可能遇到了一些相互矛盾的文件

当使用vpc选项创建弹性搜索域时,HashiCorp Terraform官方文档()表示子网是一个列表,甚至在其示例中指定了2个子网。但是,当我指定2个子网时,我得到一个错误(我尝试了两种不同的方法指定子网列表)——

他们都给了我同样的错误-

Error: Error creating ElasticSearch domain: ValidationException: You must specify exactly one subnet.
    status code: 400, request id: 98b49b34-2da8-11ea-8114-e9488cc7cb63

  on modules/es/main.tf line 51, in resource "aws_elasticsearch_domain" "es":
  51: resource "aws_elasticsearch_domain" "es" {
如果我指定一个子网,它可以正常工作

subnet_ids = ["${var.private_subnet_ids[0]}"]
但是,我确实希望能够为ES群集指定两个专用子网。 有办法吗?我在github上注意到了一些问题,但解决方案是Terraform文档中的内容,这对我来说并不适用。我正在使用
v0.12.17
,以防有问题

变量
private\u subnet\u id
是一个列表

variable "private_subnet_ids" {
  type        = "list"
  description = "The list of private subnets to place the instances in"
}

原始AWS文档()解释了地形行为背后的结构。如果每个ES域位于单个可用性区域中,则它只能连接到一个子网。如果在ES中启用了Multi_AZ模式,则可以提供第二个子网,该子网必须位于ES群集所跨越的另一个AZ中

您还可以配置
可用性\u zone\u count
以允许ES在3个AZ之间伸展以获得更好的可用性(特别是如果您没有专用主机),但您的ES群集必须每个AZ有多个实例。因此,如果您配置一个2AZ集群,那么您需要2/4/6/8。。。实例和3 AZ群集需要3/6/9/12。。。谢谢。这是有道理的。
variable "private_subnet_ids" {
  type        = "list"
  description = "The list of private subnets to place the instances in"
}