Migawki EBS, szyfrowanie i RAID
Tworzyć i automatyzować migawki EBS na potrzeby kopii zapasowych w określonym punkcie czasu, szyfrować woluminy za pomocą KMS oraz poznawać różnice między RAID 0 i RAID 1 w EC2.
Migawki EBS, szyfrowanie i RAID to bezpłatna lekcja Cloud & IT Cert Prep na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Cloud & IT Cert Prep, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Cloud & IT Cert Prep zawiera 4 lekcji w sumie.
Migawki EBS: kopie zapasowe w określonym momencie
Migawki EBS to kopie zapasowe wolumenów EBS wykonane w określonym momencie i trwale przechowywane w Amazon S3 (choć są zarządzane przez EBS, a nie bezpośrednio dostępne za pośrednictwem konsoli S3). Pierwsza migawka jest pełną kopią, a kolejne migawki są przyrostowe — przechowywane są tylko bloki, które zmieniły się od czasu wykonania ostatniej migawki. Mimo przyrostowego sposobu przechowywania każdą pojedynczą migawkę można przywrócić jako pełny wolumen. Migawki są podstawowym mechanizmem tworzenia kopii zapasowych, migracji i odzyskiwania po awarii wolumenów 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}'Koszty i cykl życia migawek
Opłaty są naliczane za rzeczywiście wykorzystaną przestrzeń zajmowaną przez przyrostowe bloki migawek we wszystkich migawkach wolumenu — a nie za rozmiar wolumenu. Po usunięciu migawek pośrednich S3 konsoliduje dane, dzięki czemu pozostałe migawki nadal reprezentują kompletne punkty przywracania. Aby zarządzać kosztami na dużą skalę, należy użyć Amazon Data Lifecycle Manager (DLM) do tworzenia harmonogramów migawek i zasad ich przechowywania — na przykład wykonywać migawki codziennie, zachowywać 7 ostatnich migawek dziennych, 4 tygodniowe i 12 miesięcznych oraz automatycznie usuwać starsze.
# 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}
}]
}'Kopiowanie migawek między regionami i kontami
Migawki można kopiować między regionami na potrzeby odzyskiwania po awarii i dystrybucji geograficznej. Można również udostępniać migawki określonym kontom AWS (lub udostępniać je publicznie), aby przesyłać dane EBS między kontami bez korzystania z sieci. Podczas kopiowania migawki można zmienić klucz szyfrowania — w ten sposób przenosi się dane z nieszyfrowanego wolumenu do szyfrowanego albo z klucza w jednym koncie do klucza w innym.
# 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'Odtwarzanie wolumenów z migawek
Tworzenie wolumenu na podstawie migawki jest proste, ale wiąże się z nim kwestia wydajności: wolumeny odtworzone z migawek rozpoczynają działanie z wszystkimi blokami przechowywanymi w S3, które są ładowane leniwie przy pierwszym dostępie. Może to powodować większe opóźnienia w przypadku bloków, które nie zostały jeszcze załadowane do wolumenu. W przypadku produkcyjnych baz danych należy użyć funkcji Fast Snapshot Restore (FSR) — płatnej funkcji, która wstępnie rozgrzewa migawkę, dzięki czemu wolumeny od razu działają z pełną wydajnością. Alternatywnie po odtworzeniu można wstępnie rozgrzać wolumen, odczytując wszystkie bloki za pomocą dd lub fio.
# 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-1aSzyfrowanie EBS: zasada działania
Szyfrowanie EBS wykorzystuje AES-256 do szyfrowania danych w spoczynku (na wolumenie), podczas przesyłania między wolumenem a instancją EC2 oraz w migawkach. Szyfrowaniem w sposób przejrzysty zajmuje się hiperwizor EC2 — aplikacja nie odczuwa żadnej różnicy. Szyfrowanie wykorzystuje klucze AWS KMS: można użyć klucza zarządzanego przez AWS (aws/ebs) albo klucza zarządzanego przez klienta (CMK). Po zaszyfrowaniu wolumenu wszystkie zapisywane na nim dane oraz wszystkie tworzone z niego migawki również są szyfrowane.
# 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 }Szyfrowanie istniejącego nieszyfrowanego wolumenu
Istniejącego nieszyfrowanego wolumenu EBS nie można zaszyfrować bezpośrednio. Obejście tego ograniczenia obejmuje kilka kroków: (1) utworzenie migawki nieszyfrowanego wolumenu, (2) skopiowanie migawki z użyciem opcji --encrypted w celu utworzenia zaszyfrowanej migawki, (3) utworzenie nowego zaszyfrowanego wolumenu na podstawie zaszyfrowanej migawki, (4) zatrzymanie instancji, odłączenie starego wolumenu, dołączenie nowego zaszyfrowanego wolumenu i ponowne uruchomienie instancji. Proces ten można zautomatyzować za pomocą skryptu; na egzaminie SAA-C03 jest sprawdzany jako scenariusz migracji.
# 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: paskowanie danych na potrzeby wydajności
RAID 0 (paskowanie) rozdziela dane między wiele wolumenów EBS, aby łączyć ich liczbę IOPS i przepustowość. Dwa wolumeny gp3 o wydajności 16 000 IOPS skonfigurowane w RAID 0 zapewniają około 32 000 IOPS. Kompromisem jest utrata wszystkich danych w przypadku awarii któregokolwiek wolumenu — nie ma tu nadmiarowości. RAID 0 jest odpowiedni dla danych tymczasowych lub łatwych do ponownego utworzenia, gdy priorytetem jest maksymalna przepustowość, na przykład warstw pamięci podręcznej, kolejek przetwarzania lub przestrzeni roboczej. Migawki całej macierzy RAID EBS wymagają skoordynowania spójności.
# 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: dublowanie na potrzeby nadmiarowości
RAID 1 (dublowanie) zapisuje jednocześnie identyczne dane na dwóch wolumenach EBS. Jeśli jeden wolumen ulegnie awarii, drugi zawiera kompletną kopię danych. RAID 1 zapewnia nadmiarowość dwóch wolumenów, wykorzystując pojemność tylko jednego z nich. Jednak w przypadku wolumenów EBS jest to zazwyczaj nadmiarowe względem wbudowanej replikacji EBS na poziomie AZ. AWS zaleca używanie architektur EBS obejmujących wiele AZ (za pośrednictwem Multi-AZ RDS lub ASG w wielu AZ) zamiast RAID 1 w EBS, ponieważ EBS już replikuje dane w ramach jednej AZ. RAID 1 w EBS jest rzadko stosowany we współczesnych architekturach.
# 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 i migawki EBS
Amazon Machine Image (AMI) to szablon służący do uruchamiania instancji EC2, oparty na jednej lub większej liczbie migawek EBS — po jednej migawce dla każdego wolumenu uwzględnionego w AMI (zwykle jednej dla wolumenu głównego). Podczas tworzenia niestandardowego AMI z uruchomionej instancji AWS zatrzymuje instancję (lub używa VSS w systemie Windows), wykonuje migawki wszystkich dołączonych wolumenów EBS i zapisuje mapowanie w AMI. Wyrejestrowanie AMI nie powoduje automatycznego usunięcia powiązanych z nim migawek — aby przestać za nie płacić, należy usunąć je osobno.
# 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-0abc1234def567890Najlepsze praktyki dotyczące migawek
Najlepsze praktyki dotyczące migawek w obciążeniach produkcyjnych: przed wykonaniem migawek baz danych należy zamrozić lub wyciszyć system plików, aby zapewnić spójność (większość zarządzanych baz danych, takich jak RDS, robi to automatycznie). Należy oznaczać migawki tagami zawierającymi środowisko, identyfikator wolumenu i datę, aby ułatwić zarządzanie cyklem życia i alokację kosztów. Należy regularnie testować procedury odtwarzania — migawka, z której nigdy nie wykonano odtwarzania, nie jest kopią zapasową. Na potrzeby odzyskiwania po awarii należy przechowywać kopie między regionami. Usługa AWS Backup służy do centralnego zarządzania zasadami dotyczącymi EBS, RDS, DynamoDB i innych usług.
# 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
}]
}'Kosz na migawki EBS
Kosz na migawki EBS chroni przed przypadkowym usunięciem migawek i AMI. Po włączeniu tej funkcji i skonfigurowaniu reguły przechowywania usunięte migawki są przenoszone do Kosza zamiast trwale niszczone. Można je odzyskać w okresie przechowywania wynoszącym od 1 dnia do 1 roku. Jest to szczególnie ważne w scenariuszach wymagających zgodności, w których musi istnieć możliwość odzyskania danych po przypadkowym usunięciu przez administratora lub niekontrolowany skrypt automatyzacji, bez konieczności odtwarzania ich ze starszej warstwy kopii zapasowych.
# 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}'Szybki test
Sprawdź swoją wiedzę na temat zagadnień AWS Solutions Architect (SAA-C03) omówionych w tej lekcji.
Podsumowanie lekcji
W tej lekcji poznali Państwo następujące zagadnienia: migawki EBS są przyrostowe i przechowywane w S3, a DLM służy do automatycznego zarządzania ich cyklem życia, szyfrowanie wymaga procedury kopiowania migawki w celu przekształcenia nieszyfrowanych wolumenów, a RAID 0 paskuje wolumeny, zapewniając łączną wydajność, podczas gdy RAID 1 dubluje dane na potrzeby nadmiarowości (choć EBS już replikuje dane w ramach jednej AZ). W następnej części omówimy EFS jako współdzielony system plików dla systemu Linux.
Często zadawane pytania
Czy lekcja „Migawki EBS, szyfrowanie i RAID” jest bezpłatna?
Tak — pełny tekst „Migawki EBS, szyfrowanie i RAID” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Cloud & IT Cert Prep, przejdź na CoddyKit PRO. Kurs Cloud & IT Cert Prep zawiera 4 lekcji w sumie.
Co nauczysz się w „Migawki EBS, szyfrowanie i RAID”?
Tworzyć i automatyzować migawki EBS na potrzeby kopii zapasowych w określonym punkcie czasu, szyfrować woluminy za pomocą KMS oraz poznawać różnice między RAID 0 i RAID 1 w EC2. Ćwiczysz Cloud & IT Cert Prep z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Cloud & IT Cert Prep?
Nie wymagamy żadnego doświadczenia. Cloud & IT Cert Prep w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.
Ile czasu zajmuje lekcja „Migawki EBS, szyfrowanie i RAID”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Cloud & IT Cert Prep?
Tak. Każda lekcja Cloud & IT Cert Prep zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Typy woluminów EBS: gp3, io2, st1, sc1
- Migawki EBS, szyfrowanie i RAID
- EFS: współdzielone przechowywanie plików dla systemu Linux
- FSx: Windows File Server i Lustre