繁体   English   中英

无法连接到AWS Aurora集群端点,但可以访问Writier实例

[英]Cant connect to AWS Aurora cluster endpoint but can access Writier instance

我在AWS上设置了MySql Aurora集群。 在过去的几周里,我的所有应用程序都指向了一个实例端点,并且一直运行良好。 但是,昨天,我开始在插入/更新时遇到错误,说实例处于ReadOnly模式并且无法更新。

显然,Reader / Writer端点可以更改,我真正应该做的是指向群集端点,它将适当地路由请求。 我已经尝试直接指向该集群端点,但它总是失败。 错误消息是相当通用的,告诉我检查我的用户名/密码,确保我没有被防火墙阻止,以及所有正常的默认解决方案。

我的群集位于VPC中,但分配给群集的子网是公共的(它们通过Internet网关路由)。

就绪/写入器实例具有相同的安全组和VPC配置。 我可以连接到Reader实例(只读)但不能连接到Writer实例。

知道我还能找到什么吗? 大多数论坛都说我需要检查我的路由表或安全组,但从我所知道的所有流量都开放(我意识到这是一个糟糕的配置,我只是想让这个工作)。 还有什么我应该检查的吗?

谢谢

更新我可以Telnet到Reader实例,但不能写入Writer实例。 它们位于同一个VPC中,据我所知,它们都使用公共子网。

更新2与我的RDS在同一个VPC中的我的Lambda函数可以访问集群端点,所以我猜它只是一个问题。 我认为这可以通过在VPC中使用公共子网来解决,但它似乎不适用于该端点。

仅仅拥有公共子网是不够的,您需要为数据库实例显式启用公共可访问性。 公共可访问性是一个实例级别设置,您需要在群集中的所有实例上将其设置为ON。 鉴于您的症状,我怀疑您是否已在某个实例上启用了公共访问权限,而不是其他某些实例。 您可以使用describe-db-clusters API通过CLI检查相同内容并过滤或搜索PubliclyAccessible 这是一个例子:

aws rds describe-db-instances --region us-west-2 --output json --query 'DBInstances[?Engine==`aurora`].{instance:DBInstanceIdentifier, cluster:DBClusterIdentifier, isPublic:PubliclyAccessible }'
[
    {
        "instance": "karthik1",
        "isPublic": true,
        "cluster": "karthik-cluster"
    },
    {
        "instance": "karthik2",
        "isPublic": false,
        "cluster": "karthik-cluster"
    }
]

您可以使用modify-db-instance API修改实例并对其启用公共访问。

希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM