Snapshot, crittografia e RAID EBS
Creare e automatizzare snapshot EBS per backup point-in-time, crittografare i volumi con KMS e comprendere le differenze tra RAID 0 e RAID 1 su EC2
Snapshot, crittografia e RAID EBS è una lezione Cloud & IT Cert Prep gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Cloud & IT Cert Prep, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Cloud & IT Cert Prep include 4 lezioni in totale.
Snapshot EBS: backup temporizzati
Gli snapshot EBS sono backup temporizzati dei volumi EBS, archiviati in modo duraturo in Amazon S3 (sebbene siano gestiti da EBS e non siano direttamente accessibili tramite la console S3). Il primo snapshot è una copia completa; gli snapshot successivi sono incrementali: vengono archiviati solo i blocchi modificati dall'ultimo snapshot. Nonostante lo storage incrementale, è possibile ripristinare qualsiasi singolo snapshot come volume completo. Gli snapshot sono il meccanismo principale per il backup, la migrazione e il disaster recovery dei volumi EBS.
# Create a snapshot of an EBS volume with a description
aws ec2 create-snapshot \
--volume-id vol-0abc1234def567890 \
--description 'Production DB backup 2024-01-01' \
--tag-specifications 'ResourceType=snapshot,Tags=[{Key=Environment,Value=Production},{Key=Backup,Value=Daily}]'
# Monitor snapshot completion
aws ec2 describe-snapshots \
--snapshot-ids snap-0abc1234def567890 \
--query 'Snapshots[].{State:State,Progress:Progress}'Costi e ciclo di vita degli snapshot
La fatturazione si basa sullo storage effettivamente utilizzato dai blocchi incrementali degli snapshot di un volume, non sulle dimensioni del volume. Se elimina gli snapshot intermedi, S3 consolida i dati, così gli snapshot rimanenti continuano a rappresentare punti di ripristino completi. Per gestire i costi su larga scala, utilizzi Amazon Data Lifecycle Manager (DLM) per creare pianificazioni degli snapshot e policy di conservazione; ad esempio, può creare snapshot giornalieri, conservare gli ultimi 7 giornalieri, 4 settimanali e 12 mensili, quindi eliminare automaticamente quelli più vecchi.
# Create a DLM lifecycle policy for daily snapshots with 7-day retention
aws dlm create-lifecycle-policy \
--description 'Daily DB snapshots' \
--state ENABLED \
--execution-role-arn arn:aws:iam::111122223333:role/AWSDataLifecycleManagerDefaultRole \
--policy-details '{
"PolicyType": "EBS_SNAPSHOT_MANAGEMENT",
"ResourceTypes": ["VOLUME"],
"TargetTags": [{"Key": "Backup", "Value": "Daily"}],
"Schedules": [{
"Name": "DailySnapshots",
"CreateRule": {"Interval": 24, "IntervalUnit": "HOURS", "Times": ["03:00"]},
"RetainRule": {"Count": 7}
}]
}'Copie di snapshot tra Regioni e account
Gli snapshot possono essere copiati tra Regioni per il disaster recovery e la distribuzione geografica. È inoltre possibile condividere gli snapshot con account AWS specifici (oppure renderli pubblici) per trasferire dati EBS tra account senza utilizzare la rete. Quando copia uno snapshot, può modificare la chiave di crittografia: in questo modo è possibile spostare dati da un volume non crittografato a uno crittografato oppure da una chiave di un account a una chiave di un altro account.
# Copy a snapshot to another region with a new KMS key
aws ec2 copy-snapshot \
--source-region us-east-1 \
--source-snapshot-id snap-0abc1234def567890 \
--destination-region eu-west-1 \
--description 'DR copy' \
--encrypted \
--kms-key-id arn:aws:kms:eu-west-1:111122223333:key/KEY_ID \
--region eu-west-1
# Share a snapshot with another account
aws ec2 modify-snapshot-attribute \
--snapshot-id snap-0abc1234def567890 \
--attribute createVolumePermission \
--operation-type add \
--user-ids '999888777666'Ripristino dei volumi dagli snapshot
Creare un volume da uno snapshot è semplice, ma è necessario considerare un aspetto relativo alle prestazioni: i volumi ripristinati dagli snapshot iniziano con tutti i blocchi archiviati in S3 e vengono caricati in modo lazy al primo accesso. Questo può causare una latenza maggiore per i blocchi non ancora caricati nel volume. Per i database di produzione, utilizzi Fast Snapshot Restore (FSR), una funzionalità a pagamento che pre-riscalda lo snapshot, così i volumi raggiungono immediatamente le prestazioni massime. In alternativa, può pre-riscaldare il volume leggendo tutti i blocchi con dd o fio dopo il ripristino.
# Enable Fast Snapshot Restore for instant full-performance volumes
aws ec2 enable-fast-snapshot-restores \
--availability-zones us-east-1a us-east-1b \
--source-snapshot-ids snap-0abc1234def567890
# Create a volume from the snapshot (FSR enabled = full performance immediately)
aws ec2 create-volume \
--snapshot-id snap-0abc1234def567890 \
--volume-type gp3 \
--availability-zone us-east-1aCrittografia EBS: funzionamento
La crittografia EBS utilizza AES-256 per crittografare i dati inattivi (sul volume), in transito tra il volume e l'istanza EC2 e negli snapshot. La crittografia viene gestita in modo trasparente dall'hypervisor EC2: l'applicazione non rileva alcuna differenza. La crittografia utilizza le chiavi di AWS KMS: può utilizzare la chiave gestita da AWS (aws/ebs) oppure una chiave gestita dal cliente (CMK). Una volta crittografato un volume, anche tutti i dati scritti su di esso e tutti gli snapshot creati da esso vengono crittografati.
# Create an encrypted gp3 volume with a customer-managed key
aws ec2 create-volume \
--volume-type gp3 \
--size 100 \
--encrypted \
--kms-key-id arn:aws:kms:us-east-1:111122223333:key/KEY_ID \
--availability-zone us-east-1a
# Enable encryption by default for all new volumes in a region
aws ec2 enable-ebs-encryption-by-default
aws ec2 get-ebs-encryption-by-default
# { "EbsEncryptionByDefault": true }Crittografia di un volume esistente non crittografato
Non è possibile crittografare direttamente un volume EBS esistente non crittografato. La soluzione consiste in una procedura composta da più passaggi: (1) creare uno snapshot del volume non crittografato, (2) copiare lo snapshot con --encrypted per creare uno snapshot crittografato, (3) creare un nuovo volume crittografato dallo snapshot crittografato, (4) arrestare l'istanza, scollegare il vecchio volume, collegare il nuovo volume crittografato e riavviare l'istanza. Questa procedura può essere automatizzata tramite script e viene verificata nell'esame SAA-C03 come scenario di migrazione.
# Step-by-step: encrypt an existing unencrypted volume
# 1. Snapshot the unencrypted volume
aws ec2 create-snapshot --volume-id vol-UNENCRYPTED --description 'Pre-encryption backup'
# 2. Copy snapshot with encryption
aws ec2 copy-snapshot \
--source-region us-east-1 \
--source-snapshot-id snap-UNENCRYPTED \
--region us-east-1 \
--encrypted \
--kms-key-id alias/aws/ebs
# 3. Create encrypted volume from the encrypted snapshot
aws ec2 create-volume \
--snapshot-id snap-ENCRYPTED \
--volume-type gp3 \
--availability-zone us-east-1aRAID 0: striping per le prestazioni
RAID 0 (striping) distribuisce i dati su più volumi EBS per aggregarne IOPS e throughput. Due volumi gp3 da 16.000 IOPS in RAID 0 forniscono circa 32.000 IOPS. Lo svantaggio è che, se uno dei due volumi si guasta, tutti i dati vengono persi: non è presente alcuna ridondanza. RAID 0 è adatto per dati temporanei o facilmente ricreabili quando la priorità è il throughput massimo, ad esempio per livelli di cache, code di elaborazione o spazio di lavoro temporaneo. Gli snapshot dell'intero array RAID richiedono un coordinamento per garantire la coerenza.
# Set up RAID 0 across two EBS volumes on Linux
# (After creating and attaching two gp3 volumes)
# Install mdadm
sudo yum install -y mdadm
# Create a RAID 0 array across /dev/xvdf and /dev/xvdg
sudo mdadm --create /dev/md0 \
--level=0 \
--raid-devices=2 \
/dev/xvdf /dev/xvdg
# Format and mount
sudo mkfs.xfs /dev/md0
sudo mkdir /mnt/raid0
sudo mount /dev/md0 /mnt/raid0RAID 1: mirroring per la ridondanza
RAID 1 (mirroring) scrive contemporaneamente dati identici su due volumi EBS. Se un volume si guasta, l'altro contiene una copia completa. RAID 1 offre la ridondanza di due volumi con la capacità di uno solo. Tuttavia, per i volumi EBS questa configurazione è generalmente ridondante rispetto alla replica integrata di EBS a livello di AZ. AWS consiglia di utilizzare architetture EBS Multi-AZ (tramite Multi-AZ RDS o ASG distribuiti su più AZ) invece di RAID 1 su EBS, poiché EBS replica già i dati all'interno di un'AZ. RAID 1 su EBS è raro nelle architetture moderne.
# RAID 1 example (mirroring) — rarely needed with EBS
sudo mdadm --create /dev/md1 \
--level=1 \
--raid-devices=2 \
/dev/xvdh /dev/xvdi
# RAID 1 performance:
# Read: up to 2x (both disks can serve reads)
# Write: same as a single volume (data written to both)
# Fault tolerance: survives single volume failureAMI e snapshot EBS
Una Amazon Machine Image (AMI) è un modello per avviare istanze EC2 ed è supportata da uno o più snapshot EBS: uno snapshot per ogni volume incluso nell'AMI (in genere uno per il volume root). Quando crea un'AMI personalizzata da un'istanza in esecuzione, AWS arresta l'istanza (oppure utilizza VSS su Windows), crea snapshot di tutti i volumi EBS collegati e registra la mappatura nell'AMI. La deregistrazione di un'AMI non elimina automaticamente gli snapshot che la supportano: è necessario eliminare gli snapshot separatamente per interrompere i relativi costi.
# Create an AMI from a running EC2 instance
aws ec2 create-image \
--instance-id i-0abc1234def567890 \
--name 'MyApp-v2.0-2024-01-01' \
--description 'Application server AMI with v2.0 release' \
--no-reboot
# List snapshots backing an AMI
aws ec2 describe-images \
--image-ids ami-0abc1234def567890 \
--query 'Images[].BlockDeviceMappings[].Ebs.SnapshotId'
# Deregister AMI then delete its snapshots separately
aws ec2 deregister-image --image-id ami-0abc1234def567890
aws ec2 delete-snapshot --snapshot-id snap-0abc1234def567890Best practice per gli snapshot
Best practice per gli snapshot in carichi di lavoro di produzione: blocchi o metta in quiescenza il file system prima di creare snapshot dei database, per garantire la coerenza (la maggior parte dei database gestiti, come RDS, esegue automaticamente questa operazione). Applichi tag agli snapshot con ambiente, ID del volume e data, così da semplificare la gestione del ciclo di vita e l'allocazione dei costi. Verifichi regolarmente le procedure di ripristino: uno snapshot che non è mai stato ripristinato non costituisce un backup affidabile. Conservi copie tra Regioni per il disaster recovery. Utilizzi AWS Backup per la gestione centralizzata delle policy tra EBS, RDS, DynamoDB e altri servizi.
# Freeze filesystem on Linux before snapshotting
# (Example for ext4 filesystem)
sudo fsfreeze -f /mnt/data # Freeze writes
aws ec2 create-snapshot --volume-id vol-0abc1234 --description 'Consistent snapshot'
sudo fsfreeze -u /mnt/data # Unfreeze
# AWS Backup policy for EBS volumes
aws backup create-backup-plan \
--backup-plan '{
"BackupPlanName": "EBSDaily",
"Rules": [{
"RuleName": "DailyRule",
"TargetBackupVaultName": "Default",
"ScheduleExpression": "cron(0 3 * * ? *)",
"DeleteAfterDays": 30
}]
}'EBS Snapshot Recycle Bin
EBS Snapshot Recycle Bin protegge dall'eliminazione accidentale di snapshot e AMI. Quando è abilitato con una regola di conservazione, gli snapshot eliminati vengono spostati nel Recycle Bin invece di essere distrutti definitivamente. È possibile recuperarli durante il periodo di conservazione, da 1 giorno a 1 anno. Questa funzionalità è particolarmente importante negli scenari di conformità in cui è necessario poter recuperare dati eliminati accidentalmente da un amministratore o da uno script di automazione fuori controllo, senza dover ricorrere a un livello di backup precedente.
# Create a Recycle Bin retention rule for EBS snapshots
aws rbin create-rule \
--retention-period RetentionPeriodValue=30,RetentionPeriodUnit=DAYS \
--resource-type EBS_SNAPSHOT \
--description '30-day retention for all EBS snapshots'
# List snapshots currently in the Recycle Bin
aws rbin list-resources \
--resource-type EBS_SNAPSHOT \
--query 'Resources[].{SnapshotId:ResourceId,DeleteDate:DeleteScheduledAt}'Verifica rapida
Verifichi la Sua comprensione dei concetti di AWS Solutions Architect (SAA-C03) trattati in questa lezione.
Riepilogo della lezione
In questa lezione ha imparato che gli snapshot EBS sono incrementali e vengono archiviati in S3, con DLM per la gestione automatizzata del ciclo di vita, che la crittografia richiede una procedura di copia dello snapshot per convertire i volumi non crittografati e che RAID 0 distribuisce i dati sui volumi per aggregare le prestazioni, mentre RAID 1 crea copie speculari per la ridondanza, anche se EBS replica già i dati all'interno di un'AZ. Nel prossimo modulo esamineremo EFS per lo storage condiviso di file Linux.
Domande Frequenti
La lezione «Snapshot, crittografia e RAID EBS» è gratuita?
Sì — il testo completo di «Snapshot, crittografia e RAID EBS» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Cloud & IT Cert Prep, passa a CoddyKit PRO. Il corso Cloud & IT Cert Prep include 4 lezioni in totale.
Cosa imparerò in «Snapshot, crittografia e RAID EBS»?
Creare e automatizzare snapshot EBS per backup point-in-time, crittografare i volumi con KMS e comprendere le differenze tra RAID 0 e RAID 1 su EC2 Eserciti Cloud & IT Cert Prep con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Cloud & IT Cert Prep?
Non è richiesta alcuna esperienza precedente. Cloud & IT Cert Prep su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.
Quanto tempo richiede la lezione «Snapshot, crittografia e RAID EBS»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Cloud & IT Cert Prep?
Sì. Ogni lezione Cloud & IT Cert Prep include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Tipi di volumi EBS: gp3, io2, st1, sc1
- Snapshot, crittografia e RAID EBS
- EFS: archiviazione condivisa dei file per Linux
- FSx: Windows File Server e Lustre