inblog logo
|
silver
    AWS

    [AWS] EC2 인스턴스 스토리지

    silver's avatar
    silver
    Nov 15, 2025
    [AWS] EC2 인스턴스 스토리지
    Contents
    EBS (Elastic Block Store)EBS 스냅샷 (Snapshot)AMI (Amazon Machine Image)EC2 Instance StoreEFS (Elastic File System)스토리지 비교

    EBS (Elastic Block Store)

    • EC2 인스턴스에 연결하는 네트워크 드라이브
    • 데이터가 영구적으로 저장됨
    • 인스턴스와 독립적으로 존재
    • 단일 AZ에 국한됨

    EBS의 주요 특징

    1. 네트워크 기반
    EC2 Instance ←──── 네트워크 ────→ EBS Volume (AZ-A) (AZ-A)
    • 약간의 지연시간 발생
    • 물리적으로 분리되어 있음
    2. 독립성
    • 인스턴스 종료 시에도 EBS는 유지 가능
    • Delete on Termination 옵션으로 제어
    • 루트 볼륨: 기본적으로 삭제됨
    • 추가 볼륨: 기본적으로 유지됨
    3. AZ 제한
    ❌ 불가능: EC2 (ap-northeast-2a) ← EBS (ap-northeast-2c) ✅ 가능: EBS 스냅샷 생성 → 다른 AZ에서 복원

    EBS 볼륨 타입

    1. gp3 (범용 SSD) ⭐ 가장 많이 사용

    • 기본 성능: 3,000 IOPS, 125 MB/s
    • 최대 성능: 16,000 IOPS, 1,000 MB/s
    • 독립적으로 IOPS와 처리량 조정 가능
    가격: ~$0.08/GB/월
    사용
    • 대부분의 워크로드
    • 부팅 볼륨
    • 개발/테스트 환경
    • 중간 규모 데이터베이스
    # gp3 볼륨 생성 aws ec2 create-volume \ --availability-zone ap-northeast-2a \ --size 100 \ --volume-type gp3 \ --iops 3000 \ --throughput 125

    2. gp2 (이전 세대 범용 SSD)

    • 크기에 비례하여 IOPS 증가 (GiB당 3 IOPS)
    • 100 GiB = 300 IOPS
    • 5,334 GiB 이상 = 16,000 IOPS (최대)
    • 버스트 가능 (최대 3,000 IOPS)
    *신규 생성 시 gp3 사용 권장

    3. io2 Block Express (프로비저닝 IOPS SSD)

    • 최대 256,000 IOPS (AWS에서 가장 높음)
    • 최대 4,000 MB/s 처리량
    • 크기와 무관하게 IOPS 지정
    • 99.999% 내구성
    가격: ~$0.125/GB/월 + $0.065/IOPS/월
    사용
    • 미션 크리티컬 데이터베이스
    • Oracle, SQL Server, MongoDB
    • 높은 IOPS가 지속적으로 필요한 워크로드
    # io2 볼륨 생성 aws ec2 create-volume \ --availability-zone ap-northeast-2a \ --size 100 \ --volume-type io2 \ --iops 10000

    4. st1 (처리량 최적화 HDD)

    • 최대 500 MB/s 처리량
    • 최대 500 IOPS
    • 부팅 볼륨으로 사용 불가
    가격: ~$0.045/GB/월 (SSD 대비 저렴)
    사용
    • 빅데이터 처리
    • 데이터 웨어하우스
    • 로그 처리
    • 순차 읽기/쓰기가 많은 워크로드

    5. sc1 (Cold HDD)

    특징
    • 최대 250 MB/s 처리량
    • 최대 250 IOPS
    • 가장 저렴한 옵션
    가격: ~$0.015/GB/월
    사용
    • 자주 접근하지 않는 데이터
    • 아카이빙
    • 백업 저장소

    EBS 볼륨 타입 선택 가이드

    높은 IOPS 필요? ├─ Yes → SSD │ ├─ 16,000 IOPS 이하 → gp3 │ └─ 16,000 IOPS 초과 → io2 └─ No → HDD ├─ 자주 접근 → st1 └─ 가끔 접근 → sc1

    EBS 다중 연결 (Multi-Attach)

    io2 볼륨만 지원
    ┌─────────────┐ │ EC2 Instance│ ─┐ │ #1 │ │ └─────────────┘ │ ├──→ [EBS io2 Volume] ┌─────────────┐ │ │ EC2 Instance│ ─┘ │ #2 │ └─────────────┘
    사용 조
    • 최대 16개 인스턴스 동시 연결
    • 동일 AZ 내에서만 가능
    • 클러스터링 지원 파일 시스템 필요 (GFS2, OCFS2)
    사용 사례
    • Teradata
    • 고가용성 클러스터 애플리케이션

    EBS 스냅샷 (Snapshot)

    개념

    • EBS 볼륨의 특정 시점 백업
    • S3에 저장 (사용자에게는 보이지 않음)
    • 증분 백업 (변경된 블록만 저장)

    스냅샷 생성 및 복원

    # 스냅샷 생성 aws ec2 create-snapshot \ --volume-id vol-1234567890abcdef0 \ --description "Daily backup" # 스냅샷 목록 조회 aws ec2 describe-snapshots --owner-ids self # 스냅샷으로부터 볼륨 생성 aws ec2 create-volume \ --availability-zone ap-northeast-2c \ --snapshot-id snap-1234567890abcdef0 # 스냅샷 복사 (다른 리전으로) aws ec2 copy-snapshot \ --source-region ap-northeast-2 \ --source-snapshot-id snap-1234567890abcdef0 \ --destination-region us-east-1

    스냅샷 아카이브

    일반 스냅샷
    • 가격: ~$0.05/GB/월
    • 복원: 즉시
    아카이브된 스냅샷
    • 가격: ~$0.0125/GB/월 (75% 절감)
    • 복원: 24~72시간 소요
    # 스냅샷 아카이브 aws ec2 modify-snapshot-tier \ --snapshot-id snap-1234567890abcdef0 \ --storage-tier archive # 아카이브에서 복원 aws ec2 restore-snapshot-tier \ --snapshot-id snap-1234567890abcdef0

    휴지통 (Recycle Bin)

    실수로 삭제한 스냅샷을 복구할 수 있는 기능
    보관 기간: 1일 ~ 1년
    # 휴지통 규칙 생성 aws rbin create-rule \ --resource-type EBS_SNAPSHOT \ --retention-period RetentionPeriodValue=7,RetentionPeriodUnit=DAYS \ --description "Keep deleted snapshots for 7 days"

    Fast Snapshot Restore (FSR)

    • 스냅샷에서 복원한 볼륨을 즉시 초기화
    • 첫 액세스 시 지연 없음
    • AZ당 시간당 과금
    • 비용이 높으므로 중요한 용도만 사용
    # FSR 활성화 aws ec2 enable-fast-snapshot-restores \ --availability-zones ap-northeast-2a ap-northeast-2c \ --source-snapshot-ids snap-1234567890abcdef0

    AMI (Amazon Machine Image)

    • EC2 인스턴스의 전체 이미지
    • OS, 애플리케이션, 설정 포함
    • 동일한 구성의 인스턴스를 빠르게 생성

    AMI 생성 과정

    EC2 Instance ↓ Create Image EBS Snapshots ────→ AMI ↓ Launch Instance New EC2 Instance(s)

    AMI 생성 및 사용

    # AMI 생성 aws ec2 create-image \ --instance-id i-1234567890abcdef0 \ --name "MyWebServer-v1.0" \ --description "Web server with Nginx configured" \ --no-reboot # AMI로 인스턴스 시작 aws ec2 run-instances \ --image-id ami-1234567890abcdef0 \ --instance-type t3.micro \ --count 5 # AMI 복사 (다른 리전) aws ec2 copy-image \ --source-region ap-northeast-2 \ --source-image-id ami-1234567890abcdef0 \ --region us-east-1 \ --name "MyWebServer-v1.0-US"

    AMI 공유

    1. 퍼블릭 AMI
    • 모든 AWS 계정에서 사용 가능
    • AWS Marketplace에서 판매 가능
    2. 프라이빗 AMI
    • 특정 AWS 계정에만 공유
    • 조직 내 팀 간 공유
    # AMI를 특정 계정과 공유 aws ec2 modify-image-attribute \ --image-id ami-1234567890abcdef0 \ --launch-permission "Add=[{UserId=123456789012}]"

    EC2 Instance Store

    • 인스턴스에 물리적으로 연결된 임시 스토리지
    • 호스트 서버의 디스크 직접 사용
    • 매우 높은 I/O 성능

    EBS vs Instance Store

    특성EBSInstance Store지속성영구임시 (인스턴스 종료 시 삭제)성능높음매우 높음크기 조정가능불가능 (고정)백업스냅샷수동으로 복사 필요비용별도 과금인스턴스 가격 포함

    Instance Store 사용 사례

    적합한 경우:
    • 캐시
    • 임시 버퍼
    • 스크래치 데이터
    • 높은 IOPS가 필요한 데이터베이스 (로컬 복제본)
    부적합한 경우:
    • 영구 저장이 필요한 데이터
    • 장기 보관 데이터
    • 백업

    Instance Store 성능

    인스턴스 타입별 성능 예시: - i3.large: 206,250 IOPS - i3.2xlarge: 412,500 IOPS - i3.16xlarge: 3,300,000 IOPS

    EFS (Elastic File System)

    개념

    • 관리형 NFS (Network File System)
    • 여러 EC2 인스턴스가 동시에 마운트 가능
    • 리눅스 전용 (Windows 지원 안 됨)

    EBS vs EFS

    EBS: EC2 Instance ──→ EBS Volume (1:1 관계, 단일 AZ) EFS: ┌─────────────┐ │ EC2 (AZ-A) │ ─┐ └─────────────┘ │ ├──→ [EFS File System] ┌─────────────┐ │ (다중 AZ) │ EC2 (AZ-C) │ ─┘ └─────────────┘

    EFS 스토리지 클래스

    1. Standard (자주 액세스)

    • 가격: ~$0.30/GB/월
    • 밀리초 단위 지연시간

    2. Infrequent Access (IA)

    • 가격: ~$0.025/GB/월 (90% 절감)
    • 검색 비용: $0.01/GB
    • 30일 이상 미접근 파일 자동 이동 가능

    EFS 성능 모드

    1. General Purpose (기본)

    • 지연시간에 민감한 워크로드
    • 웹 서버, CMS, 개발 환경

    2. Max I/O

    • 높은 처리량
    • 빅데이터, 미디어 처리

    EFS 처리량 모드

    1. Bursting (기본)

    • 저장 크기에 비례하여 처리량 증가
    • 1 TB = 50 MB/s
    • 버스트 크레딧으로 최대 100 MB/s

    2. Provisioned

    • 저장 크기와 무관하게 처리량 지정
    • 작은 파일 시스템에서 높은 처리량 필요 시

    EFS 마운트

    # EFS 생성 aws efs create-file-system \ --performance-mode generalPurpose \ --throughput-mode bursting \ --encrypted # EFS 마운트 타겟 생성 aws efs create-mount-target \ --file-system-id fs-1234567890abcdef0 \ --subnet-id subnet-12345678 \ --security-groups sg-12345678 # EC2 인스턴스에서 마운트 sudo yum install -y amazon-efs-utils sudo mount -t efs fs-1234567890abcdef0:/ /mnt/efs # /etc/fstab에 추가 (재부팅 후에도 유지) echo "fs-1234567890abcdef0:/ /mnt/efs efs defaults,_netdev 0 0" | sudo tee -a /etc/fstab

    EFS 사용 사례

    적합한 경우:
    • 콘텐츠 관리 시스템
    • 웹 서버 (공유 콘텐츠)
    • 데이터 분석
    • 미디어 처리 워크플로우
    부적합한 경우:
    • Windows 환경
    • 높은 IOPS가 필요한 데이터베이스
    • 단일 인스턴스만 사용

    스토리지 비교

    성능 비교

    IOPS 기준: Instance Store > io2 > gp3 > st1 > sc1 > EFS 가격 기준: sc1 < st1 < EFS IA < gp3 < EFS < io2 < Instance Store (무료)
    💡
    EC2 인스턴스 스토리지는 워크로드 특성에 맞춰 선택!!!
    • EBS: 영구 블록 스토리지, 단일 인스턴스 연결
    • Instance Store: 임시 고성능 스토리지
    • EFS: 공유 파일 시스템, 다중 인스턴스 지원
    • 스냅샷으로 백업 및 재해 복구 대비
    • 비용과 성능을 고려한 최적의 선택
    Share article
    Contents
    EBS (Elastic Block Store)EBS 스냅샷 (Snapshot)AMI (Amazon Machine Image)EC2 Instance StoreEFS (Elastic File System)스토리지 비교

    silver

    RSS·Powered by Inblog