EBS Overview
What's an EBS Volume?
EBS는 Elastic Block Store의 약자로, 인스턴스가 실행되는 동안 연결할 수 있는 네트워크 드라이브이다.
- EBS 볼륨은 인스턴스가 종료된 후에도 데이터를 지속하게 한다
- 인스턴스를 다시 생성하고 이전의 같은 EBS 볼륨에 마운트할 수 있다
- EBS 볼륨은 특정 가용성 영역에 묶이게 된다
(Ex. UBS를 다른 컴퓨터에 넣어서 사용할 수 있듯이 EBS 볼륨 또한 특정 가용성 영역에 묶여서 인스턴스를 옮겨다니며 사용할 수 있음) - Free tier 사용가능 범위: 30GB의 일반 EBS 스토리지나 마그네틱을 매달 지원
▶ 데이터 저장의 역할을 함.
📂 추가 참고자료
[AWS] 📚 EBS 개념 & 사용법 💯 정리 (EBS Volume 추가하기)
EBS Volume
[ EBS 볼륨의 특징 ]
- EBS 볼륨은 물리적 드라이브가 아닌 네트워크 드라이브
- 인스턴스와 통신하기 위해 네트워크를 사용하여 다른 서버에 도달하기까지의 지연이 있을 수 있음
- 기존 EC2 인스턴스에서 빨리 분리하여 다른 인스턴스에 연결할 수 있음
- 특정 가용성 영역(AZ)에 고정되어 있음
- EBS 볼륨이 'us-east-1a'에서 생성되었다면, 'us-east-1b'에서는 사용할 수 없음
- EBS 볼륨에 대한 스냅샷을 찍어둔다면 다른 지역에서도 사용 가능
- 용량에 대한 프로비저닝 (크기와 속도에 대한 사전 정의)
- 얼마나 많은 GB를 원하고, 초당 I/O 연산인 IOPS에 대한 설정 필요
- 설정한 것보다 더 많은 용량이나 속도를 원하면 시간에 따라 용량을 증가시킬 수 있음
⁉️ EBS 볼륨에 스냅샷을 찍으면 다른 AZ에서도 사용 가능한 이유는?
✅ 상황 가정: EBS Volume은 'us-east-1a'에 있고 EC2 인스턴스는 'us-east-1b'에 있을 때 EBS Volume을 'us-east-1b'로 옮기고 싶은 경우
✅ 문제 상황: EBS Volume은 현재 'us-east-1a'의 AZ 영역에 고정되어 있는 상태임
✅ 해결 방법: snapshot을 통해 해결 가능
→ snapshot은 EBS의 전체 백업본으로, S3에 저장되기 때문에 AZ에 종속되지 않음
→ 따라서, 'us-east-1a' 영역에 있는 EBS 볼륨에 대한 스냅샷을 찍어 S3에 저장한 후, 이동하고 싶은 AZ 영역인 'us-east-1b'에 새로운 EBS를 붙일 수 있음
→ EBS Volume은 하나의 EC2 인스턴스에 두개 이상 붙일 수 있고 각 AZ당 고유한 EBS를 부착할 수 있으며, EBS 볼륨 생성 시에는 인스턴스에 연결하지 않아도 됨
EBS - Delete on Termination attribute
▶ EC2 인스턴스를 종료할 때, EBS의 행위를 제어할 수 있음
기본적으로 'root EBS' 볼륨은 인스턴스 종료 시 함께 삭제되도록 설정이 활성화되어 있지만, 연결된 다른 EBS 볼륨의 경우 삭제되지 않도록 설정이 비활성화 되어있음을 알 수 있다.
이처럼, EC2 인스턴스 종료 시의 EBS 삭제 여부를 AWS 콘솔 혹은 CLI로 제어할 수 있고 인스턴스가 종료될 때 Root 볼륨에 있는 데이터를 저장하고 싶다면 해당 볼륨을 유지하도록 설정하는 방식으로 사용할 수 있다.
📌 EC2 생성 시, 함께 생성되는 Root EBS 볼륨의 경우 인스턴스 생성 과정에서 옵션 설정을 통해 인스턴스가 종료될 때 삭제할 것인지 아닌지의 여부를 제어할 수 있다.
EBS Snapshots
- EBS 스냅샷은 EBS 볼륨의 특정 시점에 대한 백업이라고 볼 수 있다.
- EBS 볼륨과 인스턴스를 분리할 필요는 없지만, 스냅샷은 권장되는 방법이다.
- 스냅샷은 다른 AZ 혹은 Region으로 복사할 수 있다.
▶ EBS 볼륨을 한 AZ에서 다른 AZ로 옮기는 방법
EBS Snapshots Features
EBS Snapshot의 3가지 기능
- EBS Snapshot Archive
- 'archive tier'로 스냅샷을 이동시키는 기능으로, 75% 더 저렴함
- 'archive tier'로 옮기면 24시간 이내에서 72시간 이내로 아카이브를 복원할 수 있음
- Recycle Bin for EBS Snapshots
- EBS 스냅샷을 영구 삭제하는 대신에 스냅샷을 삭제하면 'recycle bin'에 들어가게 됨
- 의도치않게 삭제된 파일을 복구할 수 있음
- Recycle Bin에 들어간 파일의 저장기간은 하루에서 1년 사이로 설정 가능
- Fast Snapshot Restore (FSR)
- 스냅샷의 전체 초기화를 강제함으로써 첫번째 사용 시에 대기 시간이 없도록 함.
→ 스냅샷이 매우 큰 경우 도움이 되는 방식이나, 비용이 많이 듦
- 스냅샷의 전체 초기화를 강제함으로써 첫번째 사용 시에 대기 시간이 없도록 함.
AMI Overview
AMI는 Amazon Machine Image을 의미함.
- AMI는 EC2 인스턴스를 커스터마이징 할 수 있다.
- 소프트웨어, 구성, 운영체제, 모니터링 등과 같은 설정을 할 수 있음.
- EC2 인스턴스에 설치하고자 하는 소프트웨어를 AMI로 미리 패키지화하기 때문에 부팅과 구성 시간이 더 빨라짐.
- AMI는 특정 지역에 맞추어 만들고 해당 지역에 복사할 수 있다.
- 다양한 AMI를 EC2 인스턴스에서 실행할 수 있다.
- Public AMI: AWS 제공
- 직접 만든 AMI: 직접 AMI를 만들고 관리하여 사용
- AWS Marketplace AMI: 다른 사람이 만들어 둔 AMI 혹은 판매되고 있는 AMI를 사용
AMI Process (from and EC2 instance)
- EC2 인스턴스를 시작하여 커스터마이징
- 데이터 무결성 확인을 위해 인스턴스 중지
- AMI 구축 → 이때, 다른 EBS 스냅샷 또한 생성 가능
- 다른 AMI의 인스턴스를 실행할 수 있음
EC2 Instance Store
EBS 볼륨은 네트워크 드라이브로 사용할 수 있지만, 성능이 제한된다. EBS도 좋은 성능이지만, 이보다 더 높은 성능을 필요로할 경우 EC2 인스턴스에 하드웨어 디스크를 연결할 수 있기 때문이다.
따라서, EC2 인스턴스는 가상 머신이지만, 물리적으로 연결된 하드웨어 서버가 있고 해당 서버와 연결된 하드웨어 디스크를 'EC2 Instance Store'라고 한다. 즉, EC2 물리 서버 안에 내장된 진짜 물리 하드디스크의 역할으로 볼 수 있다.
→ 쉽게 말해, EBS는 네트워크로 연결된 외장 SSD 느낌이라면, Instance Store는 본체에 박혀있는 내장 SSD 느낌
[ EC2 Instance Store 사용의 특징 ]
- 더 나은 I/O 성능
- 휘발성: Instance Store가 있는 EC2 인스턴스를 중지하거나 종료하면 스토리지가 손실됨
→ EC2 인스턴스가 살아있는 동안에만 유지되므로 내구성 있는 저장소로 사용하기에는 적합하지 않음 - 적합한 사용 사례: 버퍼, 캐시, 스크래치 데이터, 임시 콘텐츠를 사용하려는 경우
- 동작중인 EC2 인스턴스 서버에 장애가 발생할 경우 데이터도 함께 손실될 위험이 있음
→ EC2 인스턴스 스토어 사용 시에는 백업과 복사본을 함께 해 두어야 함
EBS Volume Types
[ EBS Volume의 6가지 종류 ]
→ 총 4가지로 분류할 수 있음
- gp2 / gp3 (SSD): 'General purpose SSD volume'으로, 다양한 작업에 비용과 성능을 분산시켜 사용 가능
- io 1 / io 2 Block Express (SSD): 'Highest-Performance SSD volume'으로, 중요한 업무나 저지연, 높은 처리량이 요구되는 작업에서 사용 가능
- st 1 (HDD): 저가 HDD volume으로, 자주 접속할 수 있도록 설계되었고 처리량이 집중적으로 증가할 수 있음
- sc 1 (HDD): 가장 저렴한 HDD volume으로, 작업량에 적게 접근도록 설계됨.
이처럼, EBS 볼륨은 크기, 처리량, IOPS (초당 I/O 연산)에 따라 정의할 수 있다. gp2/gp3, io1/io2만 부팅 볼륨(Boot Volume)으로 사용 가능하다. 즉, EC2 인스턴스는 해당 타입으로만 사용이 가능하다. st1/sc1은 부팅용이 아닌 데이터 저장 전용이다.
EBS Volume - General Purpose SSD
- 비용 효율적인 저장소이고, 저지연 기능 제공
- 시스템 부팅 볼륨, 가상 데스크톱, 개발 및 테스트 환경에서 사용 가능
- 크기: 1 GiB ~ 16 TiB
- gp3
- 3,000 IOPS 기준선과 초당 125MB 처리량 제공
- 최대 16,000 IOPS까지 올릴 수 있으며, 처리량은 초당 1,000 MB까지 가능
- gp2
- 3,000 IOPS까지 올릴 수 있으며 볼륨의 크기와 IOPS는 연동되어 있음 (최대 IOPS는 16,000)
- GB를 늘리면 3IOPS가 증가하며, 5,334GB로 늘어나고 16,000 IOPS가 됨
EBS Volume - Provisioned IOPS (PIOPS) SSD
매우 중요한 비즈니스 시스템이나 IOPS 16,000 이상 필요한 애플리케이션에 사용하기도 하고, DB처럼 저장장치 성능에 민감한 작업에 사용됨
- io1 (4 GiB ~ 16 TiB)
- Max PIOPS : Nitro 기반 EC2 기준 최대 64,000 & 기타 상홍에서는 최대 32,000
- 디스크 크기와 상관없이 PIOPS만 따로 늘릴 수 있음
- io2 Block Express (4 GiB ~ 64 TiB)
- 서브 밀리세컨드 지연속도
- 최대 PIOPS는 256,000이며, GiB 비율을 최대 1000:1 까지 설정 가능 (ex. 100GB면 100,000 IOPS 가능)
- Multi-Attach 기능 지원 → 하나의 EBS 볼륨을 여러 인스턴스에 동시에 연결 가능
EBS Volume - Hard Disk Drives (HDD)
- 부팅 볼륨 불가 즉, 운영체제 (부팅 디스크)로 사용할 수 없음
- 125 GiB ~ 16 TiB 까지 가능
종류 | 특징 | 사용처 | 최대 성능 |
st1 (Throughput Optimized HDD) | 자주 대용량으로 읽고 쓰는 데이터 | 빅데이터, 데이터 웨어하우스, 로그 처리 | Throughput 최대 500 MiB/s, IOPS 최대 500 |
sc1 (Cold HDD) | 거의 안쓰고 보관만 하는 데이터 | 아카이브, 오래된 로그, 저렴한 저장공간 | Throughput 최대 250 MiB/s, IOPS 최대 250 |
EBS - Volume Types Summary
▶ 주요 특징을 위주로 기억해두기
EBS Muti-Attach
EBS Multi-Attach - io 1 / io 2 family
- 하나의 EBS Volume을 여러 개의 EC2 인스턴스에 동시에 연결하는 기능 (단, 같은 AZ(Availability Zone) 내에서만 가능)
- 여러 EC2 인스턴스가 같은 EBS를 붙여서 동시에 읽기/쓰기 권한을 가질 수 있음
- 최대 16개의 EC2 인스턴스에 같은 EBS 볼륨을 붙일 수 있음
- io1 / io2 타입 EBS만 지원 (고성능 SSD)
- 활용 사례
- Linux 클러스터링 환경 (응용 프로그램에 장애가 생겨도 다른 서버에서 접근할 수 있도록)
- 동시 작성 작업을 처리하고 있는 경우 (여러 서버가 동시에 같은 데이터를 작성할 수 있도록)
EBS Encryption
[ 암호화된 EBS 생성으로 인한 이점 ]
- 볼륨 내에 있는 저장 데이터가 암호화됨
- 인스턴스와 볼륨 사이를 이동하는 모든 데이터가 암호화됨
- 모든 스냅샷과 스냅샷에서 생성된 모든 볼륨도 암호화됨
[ EBS 암호화로 인한 특징 ]
- 암호화 및 복호화는 투명하게 처리되므로 사용자가 별도로 할 일이 없음
- 암호화는 지연 시간에 미치는 영향이 매우 적음
- EBS 암호화는 KMS의 키(AES-256)를 사용함
- 암호화되지 않은 스냅샷을 복사할 때 암호화가 가능함
- 암호화된 볼륨의 스냅샷도 암호화됨
암호화되지 않은 EBS 볼륨 암호화하는 방법
- 해당 볼륨의 EBS 스냅샷을 생성
- 복사 기능을 사용하여 EBS 스냅샷을 암호화 → KMS 키 활용
- 암호화된 스냅샷에서 새로운 EBS 볼륨을 생성 → 이렇게 생성된 볼륨도 암호화됨
- 이제 암호화된 볼륨을 원래 인스턴스에 연결할 수 있음
Amazon EFS
Amazon EFS - Elastic File System
EFS 관련 추가 자료: [AWS] 📚 EFS 개념 원리 & 사용 세팅 💯 정리
많은 EC2에 마운트되어 관리되는 NFS 즉, 네트워크 파일 시스템이다. EFS는 다양한 가용성 영역에 있는 EC2 인스턴스에서 동작할 수 있다. 따라서, 고가용성, 높은 확장성, 높은 가격이라는 특징을 가지고 있으며 사용할 때마다 비용을 지불해야 한다.
[ Amzaon EFS의 특징 ]
- 활용 사례: 콘텐츠 관리, 웹 서비스, 데이터 공유, 워드프레스(Wordpress)
- NFSv4.1 프로토콜 사용
- EFS 접근 통제를 위해 보안 그룹을 사용
- 윈도우 환경이 아닌 리눅스 기반 AMI에서만 호환 가능
- KMS를 통해 암호화할 수 있음
- 표준 API 파일을 가지고 있는 POSIX 파일 시스템을 사용
- 파일 시스템이 자동으로 확장되므로 용량을 미리 계획할 필요가 없음
EFS - Performance & Storage Classes
- EFS 확장성(Scale)
- 수천 개의 동시 NFS 클라이언트, 10GB/s 이상의 처리량
- 자동으로 Petabyte 규모의 네트워크 파일 시스템으로 확장
- 성능 모드 (EFS 생성 시 설정)
- General Purpose (기본값): 지연 시간에 민감한 사용 사례(웹 서버, CMS 등)
- Max I/O: 더 높은 지연 시간, 더 높은 처리량, 고도로 병렬화(빅데이터, 미디어 처리 등)
- 처리량 모드
- Bursting: 1TB = 50MiB/s + 최대 100MiB/s까지 버스트
- Provisioned: 스토리지 크기와 상관없이 처리량을 직접 설정(예: 1TB 스토리지에 1GiB/s)
- Elastic: 워크로드에 따라 자동으로 처리량을 확장 또는 축소되어 예측 불가능한 작업에 주로 사용 → 읽기 최대 3GiB/s, 쓰기 최대 1GiB/s
EFS - Storage Classes
- Storage Tiers (수명 주기 관리 기능으로, N일 후 파일 이동)
- Standard: 자주 액세스하는 파일을 저장하는데 사용하는 클래스
- Infrequent access (EFS-IA)
- 저장기간이 길지만 자주 액세스하지 않는 파일을 저장하기 위한 클래스
- 파일을 가져올 때 비용이 발생하지만 저장 비용이 더 저렴함
- Archive: 거의 접근하지 않는 데이터(연 1~2회), 50% 더 저렴함
- 수명 주기(lifecycle) 정책을 구현하여 파일을 스토리지 계층 간에 이동할 수 있음
- 가용성 및 내구성
- Standard: 다중 AZ, 프로덕션에 적합
- One Zone: 단일 AZ, 개발 환경에 적합, 기본적으로 백업 활성화, IA(EFS One Zone-IA)와 호환
▶ 이러한 클래스를 통해 90% 이상의 비용 절감 가능
EBS vs EFS
항목 | EBS (Elastic Block Store) | EFS (Elastic File System) |
기본 연결 대상 | EC2 1대 (io1/io2만 Multi-Attach 지원) | 여러 EC2 (수백대 이상 가능) |
AZ 이동 | 불가 (Snapshot 찍고 복원) | AZ 상관없이 공유 가능 |
OS 지원 | Linux, Windows 모두 가능 | Linux 전용 (POSIX 파일시스템) |
파일 공유 | 불가능 (개별 디스크) | 가능 (네트워크 파일 시스템처럼 동작) |
주 용도 | DB 저장, OS 디스크, Block Storage | 웹서버 파일 공유, 클러스터 파일 저장 |
요금 | 상대적으로 저렴 | 상대적으로 비쌈 |
IO 성능 | gp2는 크기에 따라 IO 증가 / gp3, io1은 별도 설정 | 자동 확장 (용량 기반 과금) |
데이터 복구 | Snapshot 사용 | 자동 다중 AZ 복제 |
특징 | Block Storage, 로컬 디스크 느낌 | NFS(Network File System) 스타일 |
'Cloud > AWS' 카테고리의 다른 글
[AWS SAA] EC2 - Solutions Architect Associate Level (1) | 2025.04.13 |
---|---|
[AWS SAA] EC2 Fundamentals (1) | 2025.04.13 |
[AWS SAA] IAM & AWS CLI (0) | 2025.04.12 |
[AWS SAA] AWS Cloud Overview (0) | 2025.04.05 |
[CI/CD] Blue/Green 무중단 배포 - EC2 (0) | 2024.09.18 |