将应用程序连接到Amazon Aurora RDS实例

3
我正在阅读AWS RDS文档,并发现连接Aurora集群应用程序时有多种端点选项。您可以通过集群端点、主端点或副本端点进行连接。
我的问题是,如果我使用集群端点,我能否利用读取扩展功能,还是只能在主实例上进行读取?
如果这样行不通,我想另一个选择就是在读取时随机选择一个读取副本,或者在副本前面放置负载均衡器,并仅使用其地址进行读取。
请指导正确的方法,如果集群端点无法扩展读取工作负载。我正在使用ORM框架来控制与Aurora DB集群的数据访问交互。
4个回答

1
你可以使用读取端点来负载均衡Aurora副本之间的读取连接。请注意,这仅负载均衡连接而不是查询。平衡查询将由您的应用程序负责。
作为奖励,如果您使用读取端点并且在不同可用区域中有多个副本,则AWS会在可用区域故障的情况下故障转移您的读取连接。

不错的想法,不过我可能会直接将我的应用程序连接到负载均衡器,并编写一份自动化脚本,在启动新的副本实例时动态更新负载均衡器指向的副本端点。 - fbhdev

1
我最近也有同样的问题,发现亚马逊设计了Aurora只通过使用多个读取端点来扩展读取。群集端点指向主实例,似乎是写入到aurora实例的唯一方法。您必须在应用程序中拆分请求类型,或者可能可以使用代理完成此类操作。
文档:http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Connect.html

群集端点将您连接到DB群集的主要实例。


0
现在,您可以通过单个读取器端点连接到 Amazon Aurora 集群上的所有只读副本。直到现在,您可以使用集群端点连接到集群中的主实例,或者使用实例端点将查询直接发送到 Aurora 集群上的特定实例。

Amazon Aurora 的读取器端点


0

我想再强调一下使用读取端点的建议。由于Aurora用户指南在第一轮答案后从RDS用户指南中分离出来,因此部分文档链接已经过时。关于读取端点的最新信息如下:

https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Overview.Endpoints.html#Aurora.Endpoints.Reader

不跟踪读取器实例的原因,包括读取器实例升级为写入器等,是因为您可能会遇到由于DNS传播延迟等引起的复杂情况。为了进一步减少这种延迟,使用RDS代理是最好的方法:

https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/rds-proxy.html

从“规划”部分:
“RDS代理绕过域名系统(DNS)缓存,可将Aurora多AZ数据库的故障转移时间缩短高达66%。 RDS代理还自动路由流量到新的数据库实例,同时保留应用程序连接。这使得应用程序的故障转移更加透明。”

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接