ОБНОВЛЕНИЕ: проблема № 2 на самом деле не является проблемой терраформ .. проблема была с AWS .. я исправил, что .. код работает нормально .. теперь осталось только проблема # 1 с проблемой AZ
у меня есть кластер сияний RDS с 1 экземпляром в нем us-east-1
и я хочу создать реплику чтения перекрестной области RDS кластер сияний с 1 экземпляром в us-west-2
есть 2 проблемы, возникающие при попытке создать реплику чтения между регионами из кластера сияний RDS с помощью terrform
, вот мой main.tfфайл
provider "aws" {
region = "${var.aws_region}"
}
resource "aws_db_subnet_group" "rds-aurora" {
name = "${var.name}-${var.aws_region}"
subnet_ids = ["${split(",",lookup(var.subnet_ids, "${var.aws_region}"))}"]
tags {
Name = "${var.name}-${var.env}-${var.aws_region}"
}
}
resource "aws_rds_cluster_parameter_group" "rds-aurora-cluster-pg" {
name = "${var.name}-cluster-pg-${var.aws_region}"
family = "aurora5.6"
description = "${var.name} cluster parameter group"
parameter {
name = "secure_auth"
value = "1"
}
parameter {
name = "binlog_format"
value = "MIXED"
apply_method = "pending-reboot"
}
tags {
Name = "${var.name}-${var.env}-${var.aws_region}"
}
lifecycle {
create_before_destroy = true
}
}
resource "aws_db_parameter_group" "rds-aurora-pg" {
name = "${var.name}-pg-${var.aws_region}"
family = "aurora5.6"
description = "${var.name} parameter group"
parameter {
name = "secure_auth"
value = "1"
}
tags {
Name = "${var.name}-${var.env}-${var.aws_region}"
}
lifecycle {
create_before_destroy = true
}
}
resource "aws_rds_cluster" "rds-aurora" {
cluster_identifier = "${var.name}"
availability_zones = ["${lookup(var.availability_zones, var.aws_region)}"]
skip_final_snapshot = "true"
backup_retention_period = "${var.rds_backup}"
preferred_backup_window = "09:00-09:30"
preferred_maintenance_window = "mon:06:00-mon:06:30"
apply_immediately = "true"
engine_mode = "provisioned"
deletion_protection = "false"
vpc_security_group_ids = ["${split(",",lookup(var.security_groups, var.aws_region))}"]
storage_encrypted = "true"
db_subnet_group_name = "${aws_db_subnet_group.rds-aurora.name}"
db_cluster_parameter_group_name = "${aws_rds_cluster_parameter_group.rds-aurora-cluster-pg.name}"
kms_key_id = "${var.kms_key_id}"
replication_source_identifier = "${var.replication_source_identifier}${var.name}"
source_region = "${var.source_region}"
tags {
Name = "${var.name}-${var.env}-${var.aws_region}"
}
}
resource "aws_rds_cluster_instance" "rds-aurora" {
count = "${var.rds_count}"
identifier = "${var.name}-${count.index}"
engine = "aurora"
db_subnet_group_name = "${aws_db_subnet_group.rds-aurora.name}"
db_parameter_group_name = "${aws_db_parameter_group.rds-aurora-pg.name}"
instance_class = "${var.instance_class}"
cluster_identifier = "${aws_rds_cluster.rds-aurora.cluster_identifier}"
tags {
Name = "${var.name}-${var.env}-${var.aws_region}"
}
}
и вот проблемы, с которыми я сталкиваюсь
1. во-первых, я получаю эту ошибку
aws_rds_cluster.rds-aurora: error creating RDS cluster: InvalidVPCNetworkStateFault: Availability zone '[us-west-2a,us-west-2b,us-west-2c]' is unavailable in this region, please choose another zone set.
, и эти зоны доступности существуют, и я считаю, что я правильно ввел значения, вот как terraform получил значения для зон доступности
...
availability_zones.2635104823: "" => "us-west-2a,us-west-2b,us-west-2c"
...
, который является правильным форматом, и AZ существуют, как я сказал ... я создал RDS с нуля, и тот же формат работает, но теперь попытка создать межрегиональную реплику чтения только тогда, когда я получаю ошибку, что AZ не существует
Теперь я смог перейти к следующему выпуску, добавив всего 1 AZ, чтобы пройти этот этап ... но проблема все еще существует, и я также хотел бы исправить это
n теперь далееВопрос № 2 ниже ... основной вопрос
2. теперь основной ошибкой является ошибка, которую я считаю существующей при создании межрегиональной реплики чтения для RDS aurora с terraform
при применении кластера terrform происходит зависание при создании кластера rds, и он никогда не завершается ... чем за 2 часа до истечения времени ожидания ... и я заметил одну вещь: когда я проверяю панель управления AWS, я вижу, что кластер RDS создан, но под ним нет экземпляра RDS, но terrform продолжает выполнять создание кластера RDS вечно
aws_rds_cluster.rds-aurora: Still creating... (10s elapsed)
aws_rds_cluster.rds-aurora: Still creating... (20s elapsed)
aws_rds_cluster.rds-aurora: Still creating... (30s elapsed)
aws_rds_cluster.rds-aurora: Still creating... (40s elapsed)
aws_rds_cluster.rds-aurora: Still creating... (50s elapsed)
aws_rds_cluster.rds-aurora: Still creating... (1m0s elapsed)
aws_rds_cluster.rds-aurora: Still creating... (1m10s elapsed)
...
...
...
aws_rds_cluster.rds-aurora: Still creating... (1h59m40s elapsed)
aws_rds_cluster.rds-aurora: Still creating... (1h59m50s elapsed)
aws_rds_cluster.rds-aurora: Still creating... (2h0m0s elapsed)
aws_rds_cluster.rds-aurora: Still creating... (2h0m10s elapsed)
aws_rds_cluster.rds-aurora: Still creating... (2h0m20s elapsed)
aws_rds_cluster.rds-aurora: Still creating... (2h0m30s elapsed)
, поэтому я думаю, что есть ошибка, при которой terrafrom не знает, когда создается кластер RDS, поэтому он может создать экземпляр RDS под ним, как указано в файле main.tf выше
кто-нибудь готов помочь с этими 2 вопросами?