View a markdown version of this page

Clonazione di un volume per un cluster di database Amazon Aurora - Amazon Aurora

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Clonazione di un volume per un cluster di database Amazon Aurora

La clonazione di Aurora ti consente di creare un nuovo cluster che abbia inizialmente le stesse pagine di dati dell'originale, ma sia un volume separato e indipendente. Il processo è progettato per essere veloce e conveniente. Il nuovo cluster con il relativo volume di dati associato è noto come clone. La creazione di un clone è più veloce ed efficiente in termini di spazio rispetto alla copia fisica dei dati utilizzando una tecnica diversa, ad esempio con il ripristino di uno snapshot.

Panoramica sulla clonazione Aurora

Aurora utilizza un copy-on-write protocollo per creare un clone. Questo meccanismo utilizza uno spazio aggiuntivo minimo per creare un clone iniziale. Quando il clone viene creato per la prima volta, Aurora conserva una singola copia dei dati utilizzati dal cluster database Aurora di origine e dal nuovo cluster database Aurora (clonato). L'archiviazione aggiuntiva viene allocata solo quando vengono apportate modifiche ai dati (sul volume di archiviazione Aurora) dal cluster database Aurora di origine o dal clone del cluster database Aurora. Per ulteriori informazioni sul copy-on-write protocollo, consulta. Come funziona la clonazione Aurora

La clonazione Aurora è particolarmente utile per configurare rapidamente ambienti di test utilizzando i dati di produzione, senza rischiare il danneggiamento dei dati. È possibile utilizzare i cloni per molti tipi di applicazioni di breve durata, ad esempio:

  • Sperimenta potenziali cambiamenti (modifiche allo schema e modifiche ai gruppi di parametri, ad esempio) per valutare tutti gli impatti.

  • Esegui operazioni che utilizzano in modo intensivo i carichi di lavoro, come l'esportazione di dati o l'esecuzione di query analitiche sul clone.

  • Creare una copia del cluster database di produzione per lo sviluppo, il test o altri scopi.

È possibile creare più di un clone dallo stesso cluster database Aurora. È anche possibile creare più cloni da un altro clone.

Dopo aver creato un clone Aurora, è possibile configurare le istanze database Aurora in modo diverso dal cluster database Aurora di origine. Ad esempio, potrebbe non essere necessario un clone per scopi di sviluppo per soddisfare gli stessi requisiti di alta disponibilità del cluster database Aurora di produzione di origine. In questo caso, è possibile configurare il clone con una singola istanza database Aurora anziché con più istanze database utilizzate dal cluster database Aurora.

In caso di creazione di un clone con una configurazione di implementazione diversa da quella di origine, il clone viene creato utilizzando la versione secondaria più recente del motore di database Aurora di origine.

Quando crei cloni dai tuoi cluster Aurora DB, i cloni vengono creati nel AWS tuo account, lo stesso account che possiede il cluster Aurora DB di origine. Tuttavia, puoi anche condividere Aurora Serverless v2 e fornire cluster e cloni Aurora DB con altri account. AWS Per ulteriori informazioni, consulta Clonazione tra account con AWS RAM e Amazon Aurora.

Una volta terminato di utilizzare il clone per test, sviluppo o altri scopi, è possibile eliminarlo.

Limitazioni della clonazione Aurora

La clonazione Aurora presenta le seguenti limitazioni:

  • Puoi creare tutti i cloni che desideri, fino al numero massimo di cluster database consentito nella Regione AWS.

  • È possibile creare fino a 15 cloni con il protocollo. copy-on-write Dopo che hai raggiunto 15 cloni, il clone successivo che crei è una copia completa. Il protocollo Full-Copy funziona come un point-in-time ripristino.

  • Non è possibile creare un clone in una AWS regione diversa dal cluster Aurora DB di origine.

  • Non è possibile creare un clone da un cluster database Aurora senza la funzionalità di query parallela a un cluster che utilizza query parallela. Per inserire dati in un cluster che usa la query parallela, crea uno snapshot del cluster originale ed eseguine il ripristino nel cluster in cui è abilitata l'opzione per la query parallela.

  • Non è possibile creare un clone da un cluster database Aurora che non ha istanze database. È possibile clonare solo cluster database Aurora con almeno un'istanza database.

  • È possibile creare un clone in un cloud privato virtuale (VPC) diverso da quello del cluster database Aurora. In tal caso, le sottoreti del sistema VPCs devono essere mappate alle stesse zone di disponibilità.

  • È possibile creare un clone con provisioning Aurora da un cluster database Aurora con provisioning.

  • I cluster con le istanze Aurora Serverless v2 seguono le stesse regole dei cluster con provisioning.

Come funziona la clonazione Aurora

La clonazione Aurora funziona a livello di archiviazione di un cluster database Aurora. Utilizza un copy-on-writeprotocollo veloce ed efficiente in termini di supporti durevoli sottostanti che supportano il volume di archiviazione Aurora. Per ulteriori informazioni, consulta la sezione relativa ai volumi cluster Aurora in Panoramica dell'archiviazione di Amazon Aurora.

Comprensione del protocollo copy-on-write

Un cluster database Aurora memorizza i dati nelle pagine del volume di archiviazione Aurora sottostante.

Ad esempio, nel diagramma seguente puoi vedere un cluster database Aurora (A) con quattro pagine dati, 1, 2, 3 e 4. Immagina che un clone, B, venga creato dal cluster database Aurora. Quando viene creato il clone, non viene copiato alcun dato. Piuttosto, il clone punta allo stesso insieme di pagine del cluster database Aurora di origine.

Volume del cluster Amazon Aurora con 4 pagine per il cluster di origine, A, e il clone, B

Quando viene creato il clone, in genere non è necessario alcuno spazio di archiviazione aggiuntivo. Il copy-on-write protocollo utilizza lo stesso segmento sul supporto di archiviazione fisico del segmento di origine. Lo spazio di archiviazione aggiuntivo è necessario solo se la capacità del segmento di origine non è sufficiente per l'intero segmento di clone. In questo caso, il segmento di origine viene copiato su un altro dispositivo fisico.

Nei diagrammi seguenti, è possibile trovare un esempio del copy-on-write protocollo in azione che utilizza lo stesso cluster A e il suo clone, B, come mostrato in precedenza. Supponiamo che si apporti una modifica al cluster database Aurora (A) che si traduce in una modifica ai dati contenuti a pagina 1. Invece di scrivere sulla pagina originale 1, Aurora crea una nuova pagina 1[A]. Il volume del cluster database Aurora per cluster (A) punta ora alla pagina 1[A], 2, 3 e 4, mentre il clone (B) fa ancora riferimento alle pagine originali.

Volume del cluster database di origine Amazon Aurora e il suo clone, entrambi con modifiche.

Sul clone, viene apportata una modifica a pagina 4 sul volume di archiviazione. Invece di scrivere sulla pagina originale 4, Aurora crea una nuova pagina 4[B]. Il clone punta ora alle pagine 1, 2, 3 e alla pagina 4[B], mentre il cluster (A) continua a puntare a 1[A], 2, 3 e 4.

Volume del cluster database di origine Amazon Aurora e il suo clone, entrambi con modifiche.

Quando nel corso del tempo si verificano altre modifiche sia nel volume del cluster database Aurora di origine che nel clone, avrai bisogno di più spazio di archiviazione per acquisire e archiviare tali modifiche.

Eliminazione di un volume cluster di origine

Inizialmente, il volume clone condivide le stesse pagine di dati del volume originale a partire dal quale viene creato il clone. Finché esiste il volume originale, il volume clone viene considerato solo il proprietario delle pagine che il clone ha creato o modificato. Pertanto, la metrica VolumeBytesUsed per il volume clone all’inizio ha un valore ridotto, che aumenta solo quando i dati divergono tra il cluster originale e il clone. Per le pagine che sono identiche nel volume di origine e nel clone, i costi di archiviazione si applicano solo al cluster originale. Per ulteriori informazioni sul parametro VolumeBytesUsed, consulta Parametri a livello di cluster per Amazon Aurora.

Quando si elimina un volume cluster di origine a cui sono associati uno o più cloni, i dati nei volumi cluster dei cloni non sono interessati dall’operazione. Aurora conserva le pagine che in precedenza erano di proprietà del volume cluster di origine. Aurora ridistribuisce la fatturazione dello spazio di archiviazione per le pagine che erano di proprietà del cluster eliminato. Supponiamo, ad esempio, che un cluster originale avesse due cloni e che a un certo punto il cluster originale sia stato eliminato. Di conseguenza, la metà delle pagine di dati di proprietà del cluster originale sarebbe di proprietà di un clone, mentre l’altra metà delle pagine sarebbe di proprietà dell’altro clone.

Una volta eliminato il cluster originale, man mano che crei o elimini altri cloni, Aurora continua a ridistribuire la proprietà delle pagine di dati tra tutti i cloni che condividono le stesse pagine. Potresti pertanto riscontrare che il valore della metrica VolumeBytesUsed cambia per il volume del cluster di un clone. Il valore della metrica può diminuire man mano che vengono creati altri cloni e la proprietà delle pagine viene distribuita tra più cluster. Inoltre, il valore della metrica può aumentare man mano che i cloni vengono eliminati e la proprietà delle pagine viene assegnata a un numero inferiore di cluster. Per informazioni sull’impatto delle operazioni di scrittura sulle pagine di dati nei volumi clonati, consulta Comprensione del protocollo copy-on-write.

Quando il cluster originale e i cloni sono di proprietà dello stesso AWS account, tutti i costi di archiviazione per tali cluster si applicano allo stesso account. AWS Se alcuni cluster sono cloni con più account, l'eliminazione del cluster originale può comportare costi di archiviazione aggiuntivi per gli account che possiedono i cloni su più AWS account.

Supponiamo, ad esempio, che un volume cluster abbia 1.000 pagine di dati utilizzate prima della creazione di uno o più cloni. Quando il cluster viene clonato, inizialmente il volume clone ha zero pagine utilizzate. Se il clone apporta modifiche a 100 pagine di dati, solo quelle 100 pagine vengono memorizzate nel volume clone e contrassegnate come utilizzate. Le altre 900 pagine del volume principale, che sono rimaste invariate, sono condivise da entrambi i cluster. In questo caso, il cluster principale prevede costi di archiviazione per 1.000 pagine e il volume clone per 100 pagine.

Se il volume di origine viene eliminato, i costi di archiviazione per il clone vanno a includere le 100 pagine modificate più le 900 pagine condivise dal volume originale, per un totale di 1.000 pagine.

Creazione di un clone Amazon Aurora

È possibile creare un clone nello stesso AWS account del cluster Aurora DB di origine. A tale scopo, è possibile utilizzare Console di gestione AWS o AWS CLI le procedure seguenti.

Per consentire a un altro AWS account di creare un clone o di condividere un clone con un altro AWS account, utilizzare le procedure riportate in. Clonazione tra account con AWS RAM e Amazon Aurora

La procedura seguente descrive come clonare un cluster database Aurora utilizzando la Console di gestione AWS.

Creazione di un clone utilizzando i Console di gestione AWS risultati in un cluster Aurora DB con un'istanza Aurora DB.

Queste istruzioni si applicano ai cluster DB di proprietà dello stesso AWS account che sta creando il clone. Se il cluster DB è di proprietà di un AWS account diverso, vedi Clonazione tra account con AWS RAM e Amazon Aurora invece.

Per creare un clone di un cluster DB di proprietà del tuo AWS account utilizzando il Console di gestione AWS
  1. Accedi a Console di gestione AWS e apri la console Amazon RDS all'indirizzo https://console.aws.amazon.com/rds/.

  2. Nel riquadro di navigazione, scegliere Databases (Database).

  3. Seleziona il cluster database Aurora dall'elenco, quindi in Operazioni, seleziona Crea clone.

    La creazione di un clone inizia selezionando il cluster database Aurora.

    Verrà visualizzata la pagina Crea clone, dove è possibile configurare le opzioni Impostazioni, Connettività e altre opzioni per il clone del cluster database Aurora.

  4. Per Identificatore istanza database, immettere il nome che si desidera assegnare al cluster database Aurora clonato.

  5. Per i cluster di database con provisioning o Aurora Serverless v2, scegli Aurora I/O-Optimized o Aurora Standard per Configurazione dell’archiviazione del cluster.

    Per ulteriori informazioni, consulta Configurazioni dell'archiviazione per i cluster database Amazon Aurora.

  6. Scegliere la dimensione dell'istanza database o la capacità del cluster database:

    • Per un clone con provisioning, scegli una classe di istanza database.

      Per creare un clone con provisioning, specifica le dimensioni dell’istanza database.

      È possibile accettare l'impostazione predefinita oppure utilizzare una classe di istanza database diversa per il clone.

    • Per un Aurora Serverless v2 clone, scegli le impostazioni di capacità.

      Per creare un clone Serverless da un cluster database Aurora, specificare la capacità.

      È possibile accettare le impostazioni predefinite o modificarle per il tuo clone.

  7. Scegli le altre impostazioni necessarie per il clone. Per ulteriori informazioni sulle impostazioni di cluster e istanza database Aurora, consulta Creazione di un cluster database Amazon Aurora.

  8. Scegli Crea clone.

Quando viene creato il clone, viene elencato con gli altri cluster database Aurora nella sezione Database e se ne visualizza lo stato corrente. Il clone è pronto per l'utilizzo quando lo stato diventa Disponibile.

L'utilizzo di AWS CLI per la clonazione del cluster Aurora DB prevede passaggi separati per la creazione del cluster clone e l'aggiunta di una o più istanze DB ad esso.

Il restore-db-cluster-to-point-in-time AWS CLI comando utilizzato genera un cluster Aurora DB con gli stessi dati di archiviazione del cluster originale, ma nessuna istanza Aurora DB. Le istanze database vengono create separatamente una volta che il clone diventa disponibile. È possibile scegliere il numero di istanze database e le relative classi di istanza per assegnare al clone una capacità di calcolo maggiore o minore rispetto a quella del cluster originale. Le fasi del processo sono descritte di seguito:

  1. Crea il clone utilizzando il comando restore-db-cluster-to- point-in-time CLI.

  2. Crea l'istanza Writer DB per il clone utilizzando il comando create-db-instanceCLI.

  3. (Facoltativo) Esegui comandi create-db-instanceCLI aggiuntivi per aggiungere una o più istanze di lettura al cluster clone. L’utilizzo di istanze di lettura aiuta a migliorare gli aspetti relativi all’elevata disponibilità e alla scalabilità in lettura del clone. È possibile saltare questa fase qualora si intenda utilizzare il clone solo per scopi di sviluppo e test.

Creazione del clone

Utilizza il comando restore-db-cluster-to-point-in-time dell’interfaccia CLI per creare il cluster clone iniziale.

Come creare un clone da un cluster di database Aurora di origine
  • Utilizza il comando della CLI restore-db-cluster-to-point-in-time. Specifica i valori per i seguenti parametri. In questo caso tipico, il clone utilizza la stessa modalità motore del cluster originale (con provisioning o Aurora Serverless v2).

    • --db-cluster-identifier: scegliere un nome significativo per il clone. Assegnate un nome al clone quando utilizzate il comando restore-db-cluster-to- point-in-time CLI. Quindi si passa il nome del clone nel comando create-db-instanceCLI.

    • --restore-type: utilizza copy-on-write per creare un clone del cluster database di origine. Senza questo parametro, il parametro restore-db-cluster-to-point-in-time ripristina il cluster database Aurora anziché creare un clone.

    • --source-db-cluster-identifier: utilizza il nome del cluster database Aurora di origine che si desidera clonare.

    • --use-latest-restorable-time: questo valore punta ai dati del volume ripristinabile più recenti per il cluster di database di origine. Utilizzalo per creare cloni.

Nell'esempio seguente viene creato un clone denominato my-clone da un cluster denominato my-source-cluster.

Per Linux, macOS o Unix:

aws rds restore-db-cluster-to-point-in-time \ --source-db-cluster-identifier my-source-cluster \ --db-cluster-identifier my-clone \ --restore-type copy-on-write \ --use-latest-restorable-time

Per Windows:

aws rds restore-db-cluster-to-point-in-time ^ --source-db-cluster-identifier my-source-cluster ^ --db-cluster-identifier my-clone ^ --restore-type copy-on-write ^ --use-latest-restorable-time

Il comando restituisce l'oggetto JSON contenente i dettagli del clone. Prima di provare a creare l'istanza database per il clone, verificare che il cluster database clonato sia disponibile. Per ulteriori informazioni, consulta Controllo dello stato e ottenimento deii dettagli del clone.

Si supponga, ad esempio, di disporre di un cluster denominato tpch100g che si desidera clonare. Nell’esempio seguente per Linux vengono creati un cluster clonato denominato tpch100g-clone, un’istanza di scrittura Aurora Serverless v2 denominata tpch100g-clone-instance e un’istanza di lettura con provisioning denominata tpch100g-clone-instance-2 per il nuovo cluster.

Non è necessario fornire alcun parametro, come --master-username e --master-user-password. Aurora determina automaticamente quelli dal cluster originale. È necessario specificare il motore database da utilizzare. Pertanto, l'esempio verifica il nuovo cluster per determinare il valore corretto da utilizzare per il parametro --engine.

Questo esempio include anche l’opzione --serverless-v2-scaling-configuration per la creazione del cluster clone. In questo modo, è possibile aggiungere istanze Aurora Serverless v2 al clone anche se il cluster originale non utilizzava Aurora Serverless v2.

$ aws rds restore-db-cluster-to-point-in-time \ --source-db-cluster-identifier tpch100g \ --db-cluster-identifier tpch100g-clone \ --serverless-v2-scaling-configuration MinCapacity=0.5,MaxCapacity=16 \ --restore-type copy-on-write \ --use-latest-restorable-time $ aws rds describe-db-clusters \ --db-cluster-identifier tpch100g-clone \ --query '*[].[Engine]' \ --output text aurora-mysql $ aws rds create-db-instance \ --db-instance-identifier tpch100g-clone-instance \ --db-cluster-identifier tpch100g-clone \ --db-instance-class db.serverless \ --engine aurora-mysql $ aws rds create-db-instance \ --db-instance-identifier tpch100g-clone-instance-2 \ --db-cluster-identifier tpch100g-clone \ --db-instance-class db.r6g.2xlarge \ --engine aurora-mysql

Controllo dello stato e ottenimento deii dettagli del clone

Puoi utilizzare il seguente comando per controllare lo stato del cluster clone appena creato.

$ aws rds describe-db-clusters --db-cluster-identifier my-clone --query '*[].[Status]' --output text

Oppure puoi ottenere lo stato e gli altri valori necessari per creare l'istanza DB per il tuo clone utilizzando la seguente query. AWS CLI

Per Linux, macOS o Unix:

aws rds describe-db-clusters --db-cluster-identifier my-clone \ --query '*[].{Status:Status,Engine:Engine,EngineVersion:EngineVersion,EngineMode:EngineMode}'

Per Windows:

aws rds describe-db-clusters --db-cluster-identifier my-clone ^ --query "*[].{Status:Status,Engine:Engine,EngineVersion:EngineVersion,EngineMode:EngineMode}"

Questa query restituisce un output simile al seguente:

[ { "Status": "available", "Engine": "aurora-mysql", "EngineVersion": "8.0.mysql_aurora.3.04.1", "EngineMode": "provisioned" } ]

Creazione dell'istanza database Aurora per il clone

Usa il comando create-db-instanceCLI per creare l'istanza DB per il tuo clone Aurora Serverless v2 o per il tuo clone di cui è stato eseguito il provisioning.

L’istanza database eredita le proprietà --master-username e --master-user-password dal cluster di database di origine.

Nell’esempio seguente viene creata un’istanza database per un clone con provisioning.

Per Linux, macOS o Unix:

aws rds create-db-instance \ --db-instance-identifier my-new-db \ --db-cluster-identifier my-clone \ --db-instance-class db.r6g.2xlarge \ --engine aurora-mysql

Per Windows:

aws rds create-db-instance ^ --db-instance-identifier my-new-db ^ --db-cluster-identifier my-clone ^ --db-instance-class db.r6g.2xlarge ^ --engine aurora-mysql

Nell’esempio seguente viene creata un’istanza database Aurora Serverless v2 per un clone che utilizza una versione di motore che supporta Aurora Serverless v2.

Per Linux, macOS o Unix:

aws rds create-db-instance \ --db-instance-identifier my-new-db \ --db-cluster-identifier my-clone \ --db-instance-class db.serverless \ --engine aurora-postgresql

Per Windows:

aws rds create-db-instance ^ --db-instance-identifier my-new-db ^ --db-cluster-identifier my-clone ^ --db-instance-class db.serverless ^ --engine aurora-mysql

Parametri da utilizzare per la clonazione

La tabella seguente riepiloga i vari parametri utilizzati con restore-db-cluster-to-point-in-time per clonare i cluster database Aurora.

Parametro Description

--source-db-cluster-identifier

Utilizza il nome del cluster database Aurora di origine che si desidera clonare.

--db-cluster-identifier

Quando crei un clone con il comando restore-db-cluster-to-point-in-time, scegli un nome significativo da assegnargli. Quindi questo nome viene inviato al comando create-db-instance.

--restore-type

Specifica copy-on-write come --restore-type per creare un clone del cluster database di origine anziché ripristinare il cluster database Aurora di origine.

--use-latest-restorable-time

Questo valore punta ai dati del volume ripristinabile più recenti per il cluster di database di origine. Utilizzalo per creare cloni.

--serverless-v2-scaling-configuration

Versioni più recenti che supportano Aurora Serverless v2. Utilizza questo parametro per configurare la capacità minima e massima di un clone Aurora Serverless v2. Se non specifichi questo parametro, non potrai creare alcuna istanza Aurora Serverless v2 nel cluster clone fintanto che non avrai modificato il cluster per aggiungere tale attributo.

Per informazioni sulla clonazione multi-VPC e multi-account, consulta le seguenti sezioni.