0Pricing
AWS Solutions Architect · 강의

EBS 스냅샷, 암호화 및 RAID

특정 시점 백업을 위해 EBS 스냅샷을 생성하고 자동화하며, KMS로 볼륨을 암호화하고, EC2에서 RAID 0과 RAID 1의 차이를 이해합니다.

EBS 스냅샷, 암호화 및 RAID은(는) CoddyKit의 무료 AWS Solutions Architect 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 AWS Solutions Architect 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. AWS Solutions Architect 강의에는 총 4개의 강의가 포함되어 있습니다.

EBS 스냅샷: 특정 시점 백업

EBS 스냅샷은 Amazon S3에 내구성 있게 저장되는 EBS 볼륨의 특정 시점 백업입니다(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-1a

RAID 0: 성능 스트라이핑

RAID 0(스트라이핑)은 여러 EBS 볼륨에 데이터를 분산하여 IOPS와 처리량을 합산합니다. 16,000 IOPS gp3 볼륨 2개를 RAID 0으로 구성하면 약 32,000 IOPS를 제공합니다. 대신 어느 한 볼륨이라도 장애가 발생하면 모든 데이터를 잃게 되며 중복성이 없습니다. RAID 0은 최대 처리량이 우선인 임시 데이터 또는 쉽게 다시 생성할 수 있는 데이터에 적합합니다. 예를 들면 캐시 계층, 처리 대기열 또는 임시 작업 공간이 있습니다. 전체 RAID 배열의 EBS 스냅샷을 생성하려면 일관성을 조정해야 합니다.

# 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/raid0

RAID 1: 중복성을 위한 미러링

RAID 1(미러링)은 두 EBS 볼륨에 동일한 데이터를 동시에 기록합니다. 한 볼륨에 장애가 발생해도 다른 볼륨에 완전한 복사본이 있습니다. RAID 1은 두 볼륨의 중복성을 제공하지만 실제 용량은 한 볼륨의 용량만 제공합니다. 그러나 EBS에서는 일반적으로 EBS에 기본 제공되는 AZ 수준 복제와 중복됩니다. AWS는 EBS에서 RAID 1을 사용하는 대신 EBS Multi-AZ 아키텍처(Multi-AZ RDS 또는 AZ 전반의 ASG 사용)를 권장합니다. EBS가 이미 AZ 내에서 복제하기 때문입니다. 현대적인 아키텍처에서 EBS의 RAID 1은 드뭅니다.

# 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 failure

AMI 및 EBS 스냅샷

Amazon Machine Image (AMI)는 EC2 인스턴스를 시작하기 위한 청사진이며 하나 이상의 EBS 스냅샷을 기반으로 합니다. AMI에 포함된 각 볼륨마다 스냅샷 하나가 있으며, 일반적으로 루트 볼륨용 스냅샷 하나가 있습니다. 실행 중인 인스턴스에서 사용자 지정 AMI를 생성하면 AWS가 인스턴스를 중지하거나(Windows에서는 VSS 사용) 연결된 모든 EBS 볼륨의 스냅샷을 생성하고 AMI에 매핑 정보를 기록합니다. 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 및 날짜를 태그로 지정하십시오. 복원 절차를 정기적으로 테스트하십시오. 한 번도 복원해 보지 않은 스냅샷은 백업이라고 할 수 없습니다. 재해 복구를 위해 리전 간 복사본을 보관하십시오. EBS, RDS, DynamoDB 및 기타 서비스 전반에서 정책을 중앙 집중식으로 관리하려면 AWS Backup을 사용하십시오.

# 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 스냅샷 Recycle Bin

EBS Snapshot Recycle Bin은 스냅샷과 AMI가 실수로 삭제되는 것을 방지합니다. 보존 규칙을 사용하도록 설정하면 삭제된 스냅샷이 영구적으로 삭제되지 않고 Recycle Bin으로 이동합니다. 보존 기간(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 솔루션스 아키텍트(SAA-C03) 개념을 얼마나 이해했는지 확인해 보십시오.

수업 요약

이 수업에서는 다음을 학습했습니다. EBS 스냅샷은 증분 방식으로 S3에 저장되며, DLM을 사용하여 수명 주기를 자동으로 관리할 수 있습니다. 암호화되지 않은 볼륨을 변환하려면 스냅샷 복사 작업 흐름을 통한 암호화가 필요합니다. RAID 0은 볼륨을 스트라이핑하여 성능을 합산하고, RAID 1은 중복성을 위해 미러링합니다(다만 EBS는 이미 AZ 내에서 복제합니다). 다음에서는 공유 Linux 파일 스토리지를 위한 EFS를 살펴보겠습니다.

자주 묻는 질문

“EBS 스냅샷, 암호화 및 RAID” 강의는 무료인가요?

네 — “EBS 스냅샷, 암호화 및 RAID” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 AWS Solutions Architect 강의 전체를 잠금 해제할 수 있습니다. AWS Solutions Architect 강의에는 총 4개의 강의가 포함되어 있습니다.

“EBS 스냅샷, 암호화 및 RAID”에서 뭘 배우나요?

특정 시점 백업을 위해 EBS 스냅샷을 생성하고 자동화하며, KMS로 볼륨을 암호화하고, EC2에서 RAID 0과 RAID 1의 차이를 이해합니다. 브라우저에서 직접 실행하는 실습 코드로 AWS Solutions Architect을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

AWS Solutions Architect을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 AWS Solutions Architect은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.

“EBS 스냅샷, 암호화 및 RAID” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 AWS Solutions Architect 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 AWS Solutions Architect 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. EBS 볼륨 유형: gp3, io2, st1, sc1
  2. EBS 스냅샷, 암호화 및 RAID
  3. EFS: Linux용 공유 파일 스토리지
  4. FSx: Windows 파일 서버 및 Lustre
← AWS Solutions Architect(으)로 돌아가기