添加Read replica

本节我们将为Postgres RDS添加read replica来提升它的读性能

RDS read replica为 RDS 实例提供增强性能,它们可以轻松地弹性扩展,超过单个数据库实例的容量限制,以应对读取繁重的数据库工作负载。 可以给RDS创建库1 到 5 个只读副本,从而提高读取吞吐量。 当需要时,只读副本也可以提升为独立的数据库实例:

Replication Architecture

进入rds-pg-labs数据库,在Actions中点击Create read replica:

image-20231103220259256

为这个实例命名为rds-pg-labs-read:

image-20231103220342474

其他选项保持默认,它会保持跟主库一样的配置。在Availability部分选择Single DB Instance

image-20231103220454062

最后点击创建。创建read replica的过程大概持续十分钟,它先从主库的snaptshot中恢复数据,再使用异步复制从主库中同步过来相差的数据。


创建完成后,得到read replica的连接地址:

image-20231104091302638

连接到read replica, 并执行SQL检查和主库的复制延迟:

SELECT extract(epoch from now() - pg_last_xact_replay_timestamp()) AS replica_lag

image-20231104091906911


本节的创建read replica操作也可用CLI完成:

AWSREGION=`aws configure get region`

aws rds create-db-instance-read-replica \
	--db-instance-identifier rds-pg-labs-read \
	--source-db-instance-identifier rds-pg-labs \
	--db-instance-class db.t3.medium \
	--region $AWSREGION