Снимки EBS, шифрование и RAID
Создавайте и автоматизируйте снимки EBS для резервного копирования на определённый момент времени, шифруйте тома с помощью KMS и разберитесь в различиях RAID 0 и RAID 1 на EC2.
«Снимки EBS, шифрование и RAID» — бесплатный урок Cloud & IT Cert Prep на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Cloud & IT Cert Prep, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Cloud & IT Cert Prep содержит 4 уроков всего.
Снимки EBS: резервные копии на определённый момент времени
Снимки EBS — это резервные копии томов EBS на определённый момент времени, которые надёжно хранятся в Amazon S3 (при этом управляются EBS и недоступны напрямую через консоль S3). Первый снимок является полной копией, а последующие — инкрементными: сохраняются только блоки, изменившиеся после предыдущего снимка. Несмотря на инкрементное хранение, любой отдельный снимок можно восстановить в полноценный том. Снимки — основной механизм резервного копирования, миграции и аварийного восстановления томов 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}'Стоимость снимков и жизненный цикл
Оплата взимается за фактически используемое хранилище инкрементных блоков снимков среди всех снимков тома, а не за размер тома. Если удалить промежуточные снимки, S3 объединит данные так, чтобы оставшиеся снимки по-прежнему представляли собой полные точки восстановления. Для управления затратами в большом масштабе используйте Amazon Data Lifecycle Manager (DLM), чтобы создавать расписания снимков и политики хранения — например, делать ежедневные снимки, хранить последние 7 ежедневных, 4 еженедельных и 12 ежемесячных снимков, а более старые удалять автоматически.
# 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}
}]
}'Копирование снимков между регионами и аккаунтами
Снимки можно копировать между регионами для аварийного восстановления и географического распределения данных. Также можно предоставлять снимки определённым аккаунтам AWS (или делать их общедоступными), чтобы передавать данные EBS между аккаунтами без использования сети. При копировании снимка можно изменить ключ шифрования — так данные переносят с незашифрованного тома на зашифрованный или с ключа одного аккаунта на ключ другого.
# 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'Восстановление томов из снимков
Создать том из снимка просто, но следует учитывать производительность: тома, восстановленные из снимков, сначала содержат все блоки в S3 и загружают их по требованию при первом обращении. Это может привести к повышенной задержке для блоков, которые ещё не загружены в том. Для рабочих баз данных используйте Fast Snapshot Restore (FSR) — платную функцию, которая предварительно прогревает снимок, чтобы тома сразу работали с полной производительностью. Другой вариант — выполнить предварительный прогрев после восстановления, прочитав все блоки с помощью dd или 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-1aШифрование EBS: принцип работы
Шифрование EBS использует AES-256 для шифрования данных в состоянии покоя (на томе), при передаче между томом и инстансом EC2, а также в снимках. Шифрование прозрачно выполняется гипервизором EC2 — приложение не замечает никаких изменений. Для шифрования используются ключи AWS KMS: можно использовать ключ под управлением AWS (aws/ebs) или ключ под управлением клиента (CMK). После шифрования тома все записываемые на него данные и все создаваемые из него снимки также шифруются.
# 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 }Шифрование существующего незашифрованного тома
Нельзя напрямую зашифровать существующий незашифрованный том EBS. Обходной путь состоит из нескольких этапов: (1) создать снимок незашифрованного тома, (2) скопировать снимок с параметром --encrypted, чтобы создать зашифрованный снимок, (3) создать новый зашифрованный том из зашифрованного снимка, (4) остановить инстанс, отключить старый том, подключить новый зашифрованный том и перезапустить инстанс. Этот процесс можно автоматизировать с помощью скрипта; на экзамене SAA-C03 он проверяется как сценарий миграции.
# 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: чередование для повышения производительности
RAID 0 (чередование) распределяет данные между несколькими томами EBS, объединяя их показатели IOPS и пропускной способности. Два тома gp3 по 16 000 IOPS в RAID 0 обеспечивают примерно 32 000 IOPS. Недостаток заключается в том, что при отказе любого тома Вы потеряете все данные — избыточность отсутствует. RAID 0 подходит для временных данных или данных, которые легко создать заново, когда приоритетом является максимальная пропускная способность: для кэшей, очередей обработки или рабочего пространства. Для снимков всего массива RAID 0 требуется координация согласованности.
# 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: зеркалирование для избыточности
RAID 1 (зеркалирование) одновременно записывает одинаковые данные на два тома EBS. Если один том выйдет из строя, на другом останется полная копия. RAID 1 обеспечивает избыточность двух томов, используя ёмкость только одного. Однако для томов EBS это обычно избыточно благодаря встроенной репликации EBS на уровне AZ. AWS рекомендует использовать архитектуры EBS Multi-AZ (через Multi-AZ RDS или ASG в нескольких AZ), а не RAID 1 на EBS, поскольку EBS уже выполняет репликацию внутри AZ. RAID 1 на EBS редко используется в современных архитектурах.
# 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 и снимки EBS
Amazon Machine Image (AMI) — это шаблон для запуска инстансов EC2, основанный на одном или нескольких снимках EBS: по одному снимку на каждый том, включённый в AMI (обычно один снимок для корневого тома). При создании пользовательского AMI из работающего инстанса AWS останавливает инстанс (или использует VSS в Windows), создаёт снимки всех подключённых томов EBS и сохраняет их соответствие в AMI. Отмена регистрации AMI не удаляет автоматически связанные с ним снимки — чтобы прекратить платить за них, необходимо удалить снимки отдельно.
# 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-0abc1234def567890Рекомендации по работе со снимками
Рекомендации по работе со снимками в производственных рабочих нагрузках: перед созданием снимков баз данных замораживайте или приостанавливайте файловую систему, чтобы обеспечить согласованность (большинство управляемых баз данных, например RDS, делают это автоматически). Добавляйте к снимкам метки с указанием среды, ID тома и даты, чтобы упростить управление жизненным циклом и распределение затрат. Регулярно проверяйте процедуры восстановления — снимок, из которого Вы ни разу не выполняли восстановление, не является резервной копией. Храните копии в других регионах для аварийного восстановления. Используйте AWS Backup для централизованного управления политиками EBS, RDS, DynamoDB и других сервисов.
# 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
Корзина переработки снимков EBS защищает от случайного удаления снимков и AMI. Если включить её с правилом хранения, удалённые снимки перемещаются в корзину переработки, а не уничтожаются безвозвратно. В течение периода хранения (от 1 дня до 1 года) их можно восстановить. Это особенно важно в сценариях, связанных с требованиями соответствия, когда необходимо восстановить данные после случайного удаления администратором или некорректно работающим скриптом автоматизации, не прибегая к восстановлению из более старого уровня резервных копий.
# 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}'Быстрая проверка
Проверьте, насколько хорошо Вы усвоили концепции AWS Solutions Architect (SAA-C03) из этого урока.
Итоги урока
В этом уроке Вы узнали, что снимки EBS являются инкрементными и хранятся в S3, а DLM используется для автоматического управления их жизненным циклом; для шифрования требуется процесс копирования снимка, позволяющий преобразовать незашифрованные тома; RAID 0 распределяет данные по томам для объединения производительности, а RAID 1 создаёт зеркальную копию для избыточности (хотя EBS уже выполняет репликацию внутри AZ). Далее мы рассмотрим EFS для общего файлового хранилища Linux.
Часто задаваемые вопросы
Урок «Снимки EBS, шифрование и RAID» бесплатный?
Да — полный текст урока «Снимки EBS, шифрование и RAID» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Cloud & IT Cert Prep, подпишись на CoddyKit PRO. Курс Cloud & IT Cert Prep содержит 4 уроков всего.
Чему я научусь в уроке «Снимки EBS, шифрование и RAID»?
Создавайте и автоматизируйте снимки EBS для резервного копирования на определённый момент времени, шифруйте тома с помощью KMS и разберитесь в различиях RAID 0 и RAID 1 на EC2. Ты практикуешь Cloud & IT Cert Prep с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Cloud & IT Cert Prep?
Предыдущий опыт не требуется. Cloud & IT Cert Prep на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.
Сколько времени занимает урок «Снимки EBS, шифрование и RAID»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Cloud & IT Cert Prep?
Да. Каждый урок Cloud & IT Cert Prep включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Типы томов EBS: gp3, io2, st1, sc1
- Снимки EBS, шифрование и RAID
- EFS: общее файловое хранилище для Linux
- FSx: файловый сервер Windows и Lustre