본문 바로가기

AWS

[AWS] EC2 - Instance Storage Section

💾 EBS Volume (Elastic Block Store)

  • 인스턴스가 실행 중인 동안 연결 가능한 네트워크 드라이브
  • 인스턴스 종료 후에도 데이터를 유지할 수 있게 해준다.
  • CCP 레벨에서 한 번에 하나의 인스턴스에만 마운트될 수 있다.
    • CCP 레벨: 하나의 EBS -> 하나의 EC2 인스턴스 마운트
    • Associate 레벨: 일부 EBS 다중 연결
  • 특정 가용 영역에서만 사용가능 (다른 AZ에서 연결 불가능)
  • a.k.a "네트워크 USB"

*[종료 시 삭제 시나리오]

기본적으로 루트 EBS 볼륨은 인스턴스 종료 시 같이 삭제됨.

따라서, 인스턴스 종료 후에도 루트 볼륨(데이터)를 유지하고자 하는 경우에는 디폴트 설정 체크 표시를 없애야함 !

⚡️ EBS Snapshot

  • EBS 볼륨의 특정 시점에 대한 백업이다.
  • 스냅샷은 다른 AZ 또는 리전에 복사 가능

[EBS Snapshot 기능]

  1. EBS Snapshot Archive : 스냅샷을 옮기는 기능. 
    • 최대 75% 저렴한 "archive tier" 로 스냅샷을 옮길 수 있다.
    • 아카이브 복원하는데 24 ~ 72시간 소요 (바로 복원 ❌)
  2. EBS Snapshot 휴지통
    • 삭제 후에도, 휴지통에서 복원 가능
    • 휴지통 보관 기간 : (1일 ~ 1년 설정)
  3. Fast Snapshot Restore (FSR)
    • 빠른 스냅샷 복원

📷 AMI (Amazon Machine Image)

EC2 인스턴스를 통해 만든 이미지를 말한다.

  • 소프트웨어, 구성, 운영 체제, 모니터링 등을 직접 추가할 수 있음.
  • 모든 소프트웨어가 미리 패키지되어 있으므로 부팅 및 구성 시간이 더욱 빠름.

AWS 에서는 다양한 AMI 를 통해 EC2를 인스턴스를 실행시킬 수 있다.

  • A Public AMI : AWS 에서 제공하는 AMI (Amazon Linux2)
  • Your own AMI : 직접 만들고, 관리하는 AMI
  • An AWS Marketplace AMI : 누군가가 만든 AMI (혹은 판매하는 AMI)

[AMI 프로세스]

1. EC2 인스턴스를 원하는 대로 설정
2. 인스턴스를 중지 (데이터 무결성 확보)
3. AMI 를 빌드 -> 이 과정에서 EBS 스냅샷 생성
4. 다른 AMI에서 인스턴스 실행

📀 EC2 Instance Store

EBS 볼륨은 성능은 좋지만 "제한적인" 네트워크 드라이브이다.

따라서 고성능 하드웨어 디스크가 필요한 경우 EC2 인스턴스 스토어(EC2 Instance Store)를 사용할 수 있다.

  • I/O 성능 향상
  • 임시 스토리지 : 인스턴스를 중지 및 종료하면 인스턴스 스토어의 모든 스토리지가 손실됨
  • 버퍼 / 캐시 / 스크래치 데이터 / 일시적인 콘텐츠에 적합함.
  • 데이터 손실 위험성

✅ EBS 볼륨 유형

[6가지 EBS 타입]

  1. gp2 / gp3 (SSD) : 범용 SSD 볼륨. 다양한 작업에 대해 가격과 성능을 균형있게 유지
  2. io1 / io2 Block Express (SSD) : 가장 높은 성능. 미션-크리티컬, 저지연, 고처리량 작업에 사용
  3. st1 (HDD) : 자주 액세스하고 처리량이 많은 작업. (저비용 대용량)
  4. sc1 (HDD) : 가장 저렴. 액세스 빈도가 낮은 작업

EBS 볼륨은 크기, 처리량, IOPS(I/O Ops Per Sec)에 의해 정의된다.

 

[EBS 사용 사례]

1. General Purpose SSD (범용 타입)

  • 효율적인 비용, 짧은 지연 시간
  • 시스템 부트 볼륨, 가상 데스크톱, 개발 및 테스트 환경에서 사용
  • 크기: 1 GiB - 16 TiB
  • gp3:
    • 최신 세대 / 3,000 IOPS / 125 MiB/s의 처리량 
    • IOPS는 최대 16,000까지, 처리량은 최대 1000 MiB/s까지 독립적으로 증가 가능.
  • gp2:
    • 예전 세대 / 최대 3,000 IOPS
    • gp3 는 독립적으로 처리량을 늘릴 수 있지만, gp2는 모두 연결되어있음

2. Provisioned IOPS (PIOPS) SSD

  • 지속적인 IOPS 성능이 필요한 애플리케이션
  • 혹은 16,000 개 이상의 IOPS 가 필요한 애플리케이션
  • 데이터베이스 워크로드에 적합 (스토리지 성능과 일관성에 민감)
  • io1 (4 GiB - 16 TiB):
    • 최대 PIOP : Nitro EC2 - 64,000, 기타 - 32,000.
    • 스토리지 크기와 별개로 PIOPS 증가 가능
  • io2 Block Express (4 GiB - 64 TiB):
    • 지연 시간이 밀리초 미만.
    • IOPS:GiB 비율이 1,000:1 일 때, 최대 PIOPS는 256,000.

3. Hard Disk Drive (HDD)

  • 부팅 볼륨으로 사용 X
  • 크기 : 125 GiB - 16 TiB
  • st1 : 처리량 최적화 HDD
    • 빅 데이터, 데이터 웨어하우스, 로그 처리에 적합.
    • 최대 처리량 500 MiB/s, 최대 IOPS 500.
  • sc1 : 콜드 HDD
    • 아카이브 데이터용. 접근 빈도가 낮은 데이터에 적합함.
    • 최저 비용이 중요한 경우
    • 최대 처리량 250 MiB/s, 최대 IOPS 250

🔗 EBS 다중 연결

io1, io2 제품군에서만 사용 가능
  • 하나의 EBS 볼륨을 같은 가용 영역 내 여러 EC2 인스턴스에 연결 가능
  • 각 인스턴스는 고성능 볼륨에 대한 읽기 및 쓰기 권한을 전부 가짐.
  • 사용 사례:
    • 클러스터링된 Linux 응용 프로그램 (예: Teradata)에서 더 높은 응용 프로그램 가용성 달성
    • 애플리케이션이 동시 쓰기 작업을 관리해야할 때 사용.
  • 최대 16개의 EC2 인스턴스 동시 연결 가능.

🔐 EBS 암호화

  • EBS 볼륨을 생성하면 암호화가 동시다발적으로 발생한다.
    • 저장 데이터가 볼륨 내부에 암호화.
    • 인스턴스와 볼륨 간의 전송 데이터 또한 암호화.
    • 모든 스냅샷 암호화.
    • 스냅샷에서 생성된 볼륨 암호화.
  • 암호화 및 복호화 매커니즘은 보이지 않게 처리되고, (사용자가 직접 처리할 필요가 없음.) 지연 시간에 영향을 거의 미치지 않음.
  • KMS에서 암호화 키를 생성하여 AES-256 암호화 표준을 갖음.
  • 암호화되지 않은 스냅샷 복사를 통해 암호화할 수 있음.
  • 암호화된 볼륨의 스냅샷은 암호화됨.

EBS 암호화 및 복호화

1. 볼륨의 EBS 스냅샷 생성
2. 복사 기능을 통해 EBS 스냅샷 암호화
3. 스냅샷을 사용해 새 EBS 볼륨 생성 -> 해당 볼륨도 암호화
4. 암호화된 볼륨을 인스턴스 원본에 연결 

📂 Amazon EFS - Elastic File System

  • 여러 EC2 인스턴스에 마운트할 수 있는 관리형 NFS, 네트워크 파일 시스템
  • 이 EC2 인스턴스들은 여러 가용 영역에 있을 수 있음.
  • 고가용성 및 확장성이 뛰어나며, 비용이 비쌈 (gp2의 3배), 후불제
  • 사용 사례:
    • 콘텐츠 관리, 웹 서빙, 데이터 공유, Wordpress
  • NFSv4.1 프로토콜 사용.
  • 보안그룹을 사용해야 함
  • Linux 기반 AMI와 호환됨. (Windows는 불가능)
  • KMS를 사용하여 EFS 드라이브에 저장 데이터 암호화를 활성화할 수 있음.
  • Linux의 표준 파일 시스템: 표준 파일 API를 갖는 POSIX 파일 시스템

EFS Performances

- EFS Scale

  • 동시 NFS 클라이언트 수천개와 10 GB 이상 처리량
  • PB 규모의 네트워크 파일 시스템으로 자동 확장

Performance Mode (성능 모드)

: EFS 생성 시 설정

  1. 범용 모드 (기본값) : 작업당 지연 시간이 가장 짧으며 파일 시스템에 권장되는 성능 모드 (웹 서버, CMS 등)
  2. Max I/O : 지연 시간은 늘어나지만, 처리량과 병렬 처리 기능 향상 (빅데이터, 미디어 처리 등) 

Throughput Mode (처리량 모드)

  • Bursting: 1TB = 50MiB/s + burst of up to 100 MiB/s
  • Provisioned: 스토리지 크기와 관계없이 처리량을 설정할 수 있음. (ex. 1 GiB for 1 TB storage)
  • Elastic: 작업 부하에 따라 처리량을 자동으로 조정함.
    • 읽기에 대해 최대 3GiB/s, 쓰기에 대해 최대 1GiB/s까지 지원.
    • 예측할 수 없는 작업 부하에 사용됨. 

EFS Classes

스토리지 티어 (수명주기 관리 기능 - n일 후 파일 이동)

  • Standard: 액세스가 빈번한 파일은 보통 Standard 계층에 저장
  • Infrequent access (EFS-IA): 파일을 검색하는데 비용이 들지만, 저장 비용은 낮음.
  • Archive : 거의 액세스 하지 않는 데이터

🤔 EBS vs EFS

[EBS 볼륨]

  • 한 번에 하나의 인스턴스에만 연결 가능. (io1, io2 제외)
  • 특정 가용 영역에 한정됨.
  • gp2: 디스크 크기가 늘어나면 IO도 함께 증가함.
  • gp3 & io1: IO를 볼륨 크기와 관계 없이 독립적으로 증가시킬 수 있음.

 

[EFS 볼륨]

  • 여러 가용 영역에서 수백 개의 인스턴스를 마운트할 수 있음.
  • EFS는 WordPress 같은 웹 사이트 파일을 공유할 때에도 쓰임.
  • Linux 인스턴스 전용 (POSIX)
  • EFS는 EBS보다 높은 가격대를 가짐.
  • EFS는 사용한 만큼만 비용이 청구됨.
  • 비용 절감을 위해 EFS-IA를 활용할 수 있음.

✅ 결론

- EBS: 네트워크 볼륨을 한 번에 하나의 인스턴스에 연결할 수 있고 특정 AZ 내로 한정
- EFS: 다수의 인스턴스에 걸쳐 연결해야 하는 네트워크 파일 시스템에 적합
- Instance store: EC2 인스턴스에 IO를 최대로 사용하게끔 해주지만, 인스턴스가 망가지면 함께 망가지는 임시 드라이브.

'AWS' 카테고리의 다른 글

[AWS] EC2 - Associate  (0) 2025.09.22
[AWS] EC2  (0) 2025.09.19
[AWS] IAM  (0) 2025.09.19