【问题标题】:Unable to connect to AWS RDS Aurora (MySQL) Cluster无法连接到 AWS RDS Aurora (MySQL) 集群
【发布时间】:2022-11-27 11:59:11
【问题描述】:

尝试从外部源连接到我的 RDS Aurora Serverless (v1) MySQL 集群时,我的连接握手超时。

我在 terraform 中指定集群及其安全组,并为账户/区域利用默认的 AWS VPC。

我的集群的参数:

                cluster_identifier = "some-cluster-name",
                engine = "aurora-mysql",
                engine_mode = "serverless",
                database_name = "db",
                master_username = "********",
                master_password = "********",
                backup_retention_period = 5,
                preferred_backup_window = "07:00-09:00",
                skip_final_snapshot = true,
                storage_encrypted = true,
                scaling_configuration = {
                    max_capacity = 4,
                    min_capacity = 1,
                    seconds_until_auto_pause = 300
                },
                vpc_security_group_ids = ["${aws_security_group.my_sg_defined_elsewhere.id}"]

安全组规则:

                type = "ingress",
                from_port = 3306,
                to_port = 3306,
                protocol = "tcp",
                cidr_blocks = ["0.0.0.0/0"],
                ipv6_cidr_blocks = ["::/0"],
                security_group_id = "${aws_security_group.my_sg_defined_elsewhere.id}"
                type = "egress",
                from_port = 0,
                to_port = 0,
                protocol = "-1",
                cidr_blocks = ["0.0.0.0/0"],
                ipv6_cidr_blocks = ["::/0"],
                security_group_id = "${aws_security_group.my_sg_defined_elsewhere.id}"  

因为我只是使用默认的 VPC,我相信它有公共子网,所以我假设如果我的安全组规则足以用于公共 MySQL 访问,那么这应该就可以了。不幸的是,使用集群生成的端点和正确的凭据,我在尝试连接时只是超时。

【问题讨论】:

  • 您必须在 RDS/Aurora 集群上启用“可公开访问”标志,以便 Amazon 为集群的服务器分配公共 IP。如果您没有启用它,那么您将只能从 VPC 内部访问它。我知道 Aurora Serverless v1 不支持可公开访问的设置。我不确定 v2,我似乎无法在文档中找到该信息。您是否启用了该设置?当您从 VPC 外部解析 DNS 名称时,它会提供公共 IP 地址还是内部 IP 地址?
  • @MarkB“我知道 Aurora Serverless v1 不支持”——呃,是的,我现在才看到。并且可以确认 DNS 名称显示的是一个内部地址。我在这个用例中完全使用 AWS 的唯一原因是利用 v1 能够逐渐降为零以节省成本。出于同样的原因,通过 EC2 进行路由并不能真正帮助我,lambda 似乎也不存在延迟问题。如果 v1 能给我,我不确定是否还有其他聪明的选择来精简访问私有端点。
  • 您将其用于什么类型的应用程序?应用程序本身不在 AWS 中运行?
  • 不,不幸的是,由于某些 GCP 依赖性,我无法将应用程序本身移动到 AWS。像往常一样陷入经典的云锁定斗争。

标签: amazon-web-services terraform amazon-rds terraform-provider-aws aws-aurora-serverless


【解决方案1】:

只是为了关闭它,多亏了一些进一步的搜索和上面 Mark B 的 cmets,可以确认我错过了 Aurora Serverless v1 不支持公共端点的事实,所以与我的安全组一起玩再多也无济于事。 v2 显然可以做到这一点,但由于它不是真正的无服务器(不会逐渐降为零),所以无论如何它都不是我的选择。希望这可以让一些人头疼!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-28
    • 2019-03-09
    • 2021-04-06
    • 1970-01-01
    • 2018-05-13
    • 2017-09-13
    • 1970-01-01
    相关资源
    最近更新 更多