AWS restore_db_cluster_from_snapshot mas nenhuma instância

1

Estou escrevendo uma função AWS lambda para tirar meu instantâneo mais recente de nosso banco de dados de produção e restaurá-lo como um novo banco de dados. Isso funcionou bem como uma instância do RDS, mas recentemente mudamos nosso banco de dados principal para o Aurora e seu cluster não é uma instância.

Eu olhei na API e consegui adaptar a lógica antiga. Eu troquei a palavra instance para cluster para a maior parte e parecia funcionar, ele criou um novo cluster, etc. O novo cluster, no entanto, está mostrando 0 instâncias, enquanto o DB originou-se de shows 1. Eu acho isso está me impedindo de me conectar remotamente a ele como se eu pudesse fazer o cluster DB original.

Ainda não sei ao certo o que é um cluster, mas preciso iniciar uma instância separadamente para ativar a conexão remota?

Aqui faz parte do script python btw -

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')
    
por Ryan Grush 01.12.2017 / 23:52

1 resposta

3

Sim, você precisa iniciar uma instância no cluster.

Um cluster Aurora tem um volume de armazenamento Aurora com seus dados e 0 ou mais instâncias que podem acessá-lo. Você não pode realmente acessar os dados de um cluster, a menos que tenha pelo menos uma instância no cluster.

O motivo dessa abstração é que, diferentemente de um servidor de banco de dados convencional, em que os dados estão "no servidor" e onde você tem um servidor mestre e, às vezes, uma ou mais réplicas, cada uma com uma cópia dos dados, mestre e réplicas gravam e lêem do mesmo armazenamento, e qualquer réplica pode ser promovida para se tornar o mestre se o mestre falhar.

O console esconde um pouco disso, se você provisionar Aurora a partir daí.

    
por 02.12.2017 / 04:47