Я настроил следующую terraform для предоставления кластера rds, но я не могу подключиться к нему со своего ноутбука. Кластер работает, потому что мои другие ресурсы в VPC могут нормально подключаться. Экземпляры также имеют общедоступные адреса.
При попытке подключения я получаю:
psql: не удалось подключиться к серверу: тайм-аут операции
module "vpc" {
source = "terraform-aws-modules/vpc/aws"
name = "${var.environment}-${var.app_name}-vpc"
cidr = "10.0.0.0/16"
azs = ["us-west-2a", "us-west-2b", "us-west-2c"]
private_subnets = ["10.0.1.0/24", "10.0.2.0/24", "10.0.3.0/24"]
public_subnets = ["10.0.101.0/24", "10.0.102.0/24", "10.0.103.0/24"]
elasticache_subnets = ["10.0.31.0/24", "10.0.32.0/24"]
enable_dns_hostnames = true
enable_dns_support = true
enable_nat_gateway = true
single_nat_gateway = false
one_nat_gateway_per_az = false
tags = {
Environment = "${var.environment}"
Flow = "${var.app_name}"
}
}
resource "aws_db_subnet_group" "default" {
name = "${var.environment}-${var.app_name}-db-subnet"
subnet_ids = ["${module.vpc.public_subnets}"]
tags {
Name = "DB Subnet Group"
}
}
resource "aws_security_group" "db" {
name = "vpc_db"
description = "Allow incoming database connections."
vpc_id = "${module.vpc.vpc_id}"
ingress { # RDS cluster
from_port = 5432
to_port = 5432
protocol = "tcp"
security_groups = ["${aws_security_group.ecs_tasks.id}"]
}
ingress { # Open traffic
from_port = 5432
to_port = 5432
protocol = "tcp"
security_groups = ["${module.vpc.default_security_group_id}"]
}
egress {
protocol = "-1"
from_port = 0
to_port = 0
cidr_blocks = ["0.0.0.0/0"]
}
}
resource "aws_rds_cluster_instance" "cluster_instances" {
count = "2"
identifier = "${var.environment}-${var.app_name}-aurora-instance-${count.index}"
cluster_identifier = "${aws_rds_cluster.default.id}"
instance_class = "db.r4.large"
engine = "aurora-postgresql"
publicly_accessible = true
}
resource "aws_rds_cluster" "default" {
cluster_identifier = "${var.environment}-${var.app_name}-aurora-cluster"
availability_zones = ["us-west-2a", "us-west-2b", "us-west-2c"]
database_name = "dbname"
master_username = "username"
master_password = "a password"
engine = "aurora-postgresql"
vpc_security_group_ids = ["${aws_security_group.db.id}"]
db_subnet_group_name = "${aws_db_subnet_group.default.name}"
skip_final_snapshot = true
preferred_maintenance_window = "Sun:03:00-Sun:06:00"
}