我正在编写一个AWS函数,以获取生产数据库的最新快照,并将其还原为一个新的DB。这作为一个RDS实例运行得很好,但是我们最近将我们的主DB转换为Aurora,它是一个集群而不是一个实例。
我查看了API并能够重新使用旧的逻辑。我把instance这个词大部分换成了cluster,它看起来很好用,它创建了一个新的集群,等等。然而,新集群显示了0个实例,而它起源于显示1的DB。我认为这阻止了我像原来的DB集群那样远程连接到它。
我仍然不确定集群是什么,但是否必须单独启动实例才能启用远程连接?
这里是python脚本的一部分
def byTimestamp(snap):
if 'SnapshotCreateTime' in snap:
return datetime.datetime.isoformat(snap['SnapshotCreateTime'])
else:
return datetime.datetime.isoformat(datetime.datetime.now())
def restore_db():
client = boto3.client('rds', region_name=region)
source_snaps = client.describe_db_cluster_snapshots(DBClusterIdentifier = 'main-production')['DBClusterSnapshots']
source_snap = sorted(source_snaps, key=byTimestamp, reverse=True)[0]['DBClusterSnapshotIdentifier']
response = client.restore_db_cluster_from_snapshot(
DBClusterIdentifier='main-development',
SnapshotIdentifier=source_snap,
Port=port,
Engine='aurora-postgresql')发布于 2017-12-02 03:47:42
是的,您必须在集群中启动一个实例。
Aurora集群与您的数据具有Aurora存储卷,以及可以访问它的0或多个实例。除非集群中至少有一个实例,否则无法实际访问群集的数据。
这种抽象的原因是,与传统的数据库服务器不同,在传统数据库服务器中,数据“在服务器上”,并且您有一个主服务器,有时还有一个或多个副本,每个副本都带有数据的副本,Aurora主服务器和副本可以从同一个存储区写入和读取,如果主服务器失败,任何副本都可以提升为主副本。
如果您提供Aurora,控制台会向您隐藏其中的一些内容。
https://serverfault.com/questions/886217
复制相似问题