Come posso spostare un'istanza Amazon RDS da una zona di disponibilità?
Desidero spostare un'istanza Amazon Relational Database Service (Amazon RDS) o Amazon Aurora da una zona di disponibilità. Desidero inoltre eliminare la sottorete che si trova in un gruppo di sottoreti database di Amazon RDS.
Breve descrizione
Per avviare un'istanza database Amazon RDS, un gruppo di sottoreti database deve contenere almeno due sottoreti. Puoi avviare istanze RDS solo nelle sottoreti all'interno del gruppo di sottoreti database associato. Le sottoreti devono trovarsi in zone di disponibilità diverse nella stessa Regione AWS. Per ridurre al minimo le interruzioni, è consigliabile disporre di sottoreti provenienti da almeno tre zone di disponibilità.
Risoluzione
Nota: se ricevi messaggi di errore durante l'esecuzione dei comandi dell'Interfaccia della linea di comando AWS (AWS CLI), consulta la sezione Risoluzione degli errori per AWS CLI. Inoltre, assicurati di utilizzare la versione più recente di AWS CLI.
Determina la zona di disponibilità
ID delle zone di disponibilità
Utilizza gli ID delle zone di disponibilità per determinare la posizione delle risorse in un account AWS in relazione alle risorse di un altro account. Ad esempio, hai istanze Amazon Elastic Compute Cloud (Amazon EC2) in esecuzione in un account che si trova in use1-az2. Queste istanze EC2 comunicano con i database RDS in esecuzione in un account in use1-az3. Per evitare i costi aggiuntivi e la latenza creati dal traffico tra zone di disponibilità, esegui entrambe le istanze nella stessa zona di disponibilità. Per ridurre il tempo di inattività in caso di interruzione, utilizza un'implementazione multi-AZ.
Per controllare le mappature delle zone di disponibilità nell'account e ottenere i nomi delle zone di disponibilità, esegui il comando describe-availability-zones:
aws ec2 describe-availability-zones --zone-ids ZONE ID --region REGION
Nota: sostituisci ZONE ID con l'ID della tua zona di disponibilità e REGION con la tua Regione.
Identifica l'istanza RDS da spostare
Per identificare l'istanza RDS da spostare, utilizza il nome della zona di disponibilità in AWS Config o esegui i comandi list in AWS CLI.
AWS Config
Attiva AWS Config. Quindi esegui questo comando per restituire un elenco di istanze database in esecuzione o con un nodo secondario nella zona di disponibilità:
SELECT resourceId, resourceName, accountId, awsRegion, configuration.availabilityZone, configuration.secondaryAvailabilityZone WHERE resourceType = 'AWS::RDS::DBInstance' AND ( configuration.availabilityZone = 'us-east-1e' OR configuration.secondaryAvailabilityZone = 'us-east-1e' )
Nota: nella query precedente, la zona di disponibilità deve corrispondere al nome della zona dalle mappature nell'account.
AWS CLI
Esegui il comando describe-db-instances per elencare le istanze database RDS attualmente distribuite nella zona di disponibilità:
aws rds describe-db-instances \ --query 'DBInstances[?Engine!=`aurora-postgresql`&&Engine!=`aurora-mysql`&&(AvailabilityZone==`AVAILABILITY ZONE` || SecondaryAvailabilityZone==`AVAILABILITY ZONE`)].{"0-Engine":Engine, "1-DBInstanceIdentifier":DBInstanceIdentifier, "2-DBSubnetGroupName":DBSubnetGroup.DBSubnetGroupName, "3-AvailabilityZone":AvailabilityZone, "4-SecondaryAvailabilityZone":SecondaryAvailabilityZone} | sort_by([], &"1-DBInstanceIdentifier")' \ --region us-east-1
Esegui il comando describe-db-instances per elencare le istanze database Aurora attualmente distribuite nella zona di disponibilità:
aws rds describe-db-instances \ --query 'DBInstances[?Engine==`aurora-postgresql`&&Engine==`aurora-mysql`&&AvailabilityZone==`AVAILABILITY ZONE`].{"0-Engine":Engine, "1-DBClusterIdentifier":DBClusterIdentifier, "2-DBInstanceIdentifier":DBInstanceIdentifier, "3-DBSubnetGroupName":DBSubnetGroup.DBSubnetGroupName, "4-AvailabilityZone":AvailabilityZone} | sort_by([], &"1-DBClusterIdentifier")' \ --region us-east-1
Sposta l'istanza dalla zona di disponibilità
Istanza database RDS
Nota: non puoi modificare la zona di disponibilità di un'implementazione single-AZ.
Per spostare un'istanza RDS da una zona di disponibilità, completa i seguenti passaggi:
- Se l'istanza RDS è un'implementazione single-AZ, modificala in modo che sia un'implementazione multi-AZ. L'implementazione multi-AZ crea un'istanza database in standby in una zona di disponibilità diversa che utilizza una sottorete differente.
- Riavvia l'istanza database con failover. L'istanza database in standby diventa l'istanza database primaria.
Nota: assicurati che l'istanza database venga visualizzata nella nuova zona di disponibilità dopo il failover. - Modifica l'istanza database in modo che sia nuovamente un'istanza database single-AZ. L'istanza database single-AZ viene quindi rimossa dalla sottorete che desideri eliminare.
Istanza database Aurora
Per spostare un'istanza Aurora da una zona di disponibilità, completa i seguenti passaggi:
- Se l'istanza database Aurora è un'implementazione single-AZ, aggiungi una nuova istanza di lettura al cluster di database Aurora. Quando crei la nuova istanza di lettura, scegli una delle zone di disponibilità dal gruppo di sottoreti database.
- Forza un failover per il cluster di database in modo da promuovere la nuova istanza di lettura a nuova istanza database di scrittura.
Nota: se hai più di un'istanza di lettura di destinazione e non ne specifichi una, Amazon RDS promuove l'istanza di lettura con il livello di promozione più alto. Le priorità vanno da 0 (priorità massima) a 15 (priorità minima). Per ulteriori informazioni, consulta Tolleranza ai guasti di un cluster di database Aurora. - Elimina la precedente istanza database primaria.
Rimuovi le sottoreti dal gruppo di sottoreti database
Nota: se hai avviato un'istanza nella sottorete, non puoi eliminarla. Se hai avviato istanze database nella sottorete che desideri eliminare, ricevi il seguente messaggio di errore: "We're sorry, your request to modify DB subnet group has failed. Some of the subnets to be deleted are currently in use: "
Per rimuovere le sottoreti dal gruppo di sottoreti database, completa i passaggi seguenti:
-
Apri la console Aurora e RDS.
-
Nel pannello di navigazione, scegli Gruppi di sottoreti.
-
Seleziona il gruppo di sottoreti a cui è associata l'istanza database e scegli Modifica.
-
Nella pagina Edit DB subnet groups (Modifica gruppi di sottoreti database), alla voce Aggiungi sottoreti, rimuovi le sottoreti che desideri eliminare
-
Per verificare quali istanze database RDS sono ancora nella zona di disponibilità, esegui il comando describe-db-instances:
aws rds describe-db-instances \ --query 'DBInstances[?Engine!=`aurora-postgresql`&&Engine!=`aurora-mysql`&&(AvailabilityZone==`AVAILABILITY ZONE` || SecondaryAvailabilityZone==`AVAILABILITY ZONE`)].{"0-Engine":Engine, "1-DBInstanceIdentifier":DBInstanceIdentifier, "2-DBSubnetGroupName":DBSubnetGroup.DBSubnetGroupName, "3-AvailabilityZone":AvailabilityZone, "4-SecondaryAvailabilityZone":SecondaryAvailabilityZone} | sort_by([], &"1-DBInstanceIdentifier")' \ --region us-east-1Per verificare quali istanze database Aurora sono ancora nella zona di disponibilità, esegui il comando describe-db-instances:
aws rds describe-db-instances \ --query 'DBInstances[?Engine==`aurora-postgresql`&&Engine==`aurora-mysql`&&AvailabilityZone==`AVAILABILITY ZONE`].{"0-Engine":Engine, "1-DBClusterIdentifier":DBClusterIdentifier, "2-DBInstanceIdentifier":DBInstanceIdentifier, "3-DBSubnetGroupName":DBSubnetGroup.DBSubnetGroupName, "4-AvailabilityZone":AvailabilityZone} | sort_by([], &"1-DBClusterIdentifier")' \ --region us-east-1 -
Scegli Salva.
Riporta l'istanza RDS all'implementazione originale
Se hai iniziato con un'implementazione multi-AZ, modifica l'istanza database in modo che sia un'implementazione multi-AZ. Se hai iniziato con un'implementazione single-AZ, non servono ulteriori passaggi.
Se hai rimosso un'istanza di lettura dal cluster di database Aurora, aggiungi una nuova istanza database di lettura al cluster. Se hai iniziato con un'implementazione single-AZ, non servono ulteriori passaggi.
Informazioni correlate
Utilizzo di gruppi di sottoreti database
Come posso eliminare una sottorete che fa parte di un gruppo di sottoreti database Amazon RDS?
- Argomenti
- Database
- Lingua
- Italiano

Contenuto pertinente
AWS UFFICIALEAggiornata un anno fa