EC2 스토리지
EBS 볼륨이란 ?
- EBS(Elastic Block Store) 볼륨은 인스턴스가 실행되는 동안 연결할 수 있는 네트워크 드라이브입니다.
- 인스턴스가 종료된 후에도 데이터를 유지할 수 있습니다.
- 한 번에 하나의 인스턴스에만 마운트할 수 있습니다. (CCP 수준에서)
io2 Block Express: 다중 연결 지원
- 특정 가용영역에 바인딩됩니다.
- "네트워크 USB 스틱"이라고 생각하면 됩니다.
- Free Tier: 월별 비용(SSD) 또는 마그네틱 유형의 무료 EBS 스토리지 30GB
네트워크 드라이브입니다. (즉, 물리적 드라이브가 아님)
- 네트워크를 사용하여 인스턴스와 통신하므로 약간의 대기 시간이 있을 수 있습니다.
- EC2 인스턴스에서 분리하여 다른 인스턴스에서 빠르게 연결할 수 있습니다.
가용 영역(AZ)에 제한됩니다.
- us-east-1a의 EBS 볼륨은 us-east-1b에 연결할 수 없습니다.
- 볼륨을 이동하려면 먼저 스냅샷을 만들어야 합니다.
프로비저닝된 용량이 있어야 합니다. (GB 및 IOPS 단위 크기)
- 프로비저닝된 용량이 있어야 합니다. (GB 및 IOPS 단위 크기)
- 시간이 지남에 따라 드라이브 용량을 늘릴 수 있습니다.
EBS Volume Example
EBS-Delete on Termination attribute
위 속성이 True일 경우, 인스턴스와 함께 삭제됩니다. 위 속성이 False일 경우, 인스턴스가 삭제되더라도 EBS 볼륨은 삭제되지 않습니다.
- 루트 볼륨의 경우 기본적으로 활성화되어 있어 인스턴스 종료시 함께 삭제되지만 기타 EBS 볼륨 유형의 경우 기본적으로 비활성화되어 있어 인스턴스가 종료되어도 삭제되지 않습니다.
EC2 인스턴스가 종료될 때 EBS 동작을 제어 합니다.
- 기본적으로 루트 EBS 볼륨이 삭제됩니다. (속성 활성화됨)
- 기본적으로 연결된 다른 EBS 볼륨은 삭제되지 않습니다. (속성 비활성화)
- 이는 AWS 콘솔 / AWS CLI로 제어할 수 있습니다.
Use Cases:
- 인스턴스 종료 시 루트 볼륨 유지
EBS Snapshots
- 특정 시점에 EBS 볼륨의 백업(스냅샷) 만들기
- 스냅샷을 수행하기 위해 볼륨을 분리할 필요는 없지만 권장됨
- 가용 영역 또는 리전 간에 스냅샷 복사 가능
스냅샷을 수행하기 전에 먼저 인스턴스와 볼륨을 분리
EBS Snapshot Archive
- 스냅샷을 다음과 같은 아카이브 계층으로 이동합니다.
- 아카이브 복원에 24 ~ 72시간 소요
Recycle Bin for EBS Snapshots
- 실수로 삭제한 후 복구할 수 있도록 삭제된 스냅샷을 유지하는 규칙 설정
- 보존 기간 지정 (1일에서 1년까지)
AMI (Amazon Machine Image)
AMI는 EC2 인스턴스의 사용자 지정 머신 이미지입니다.
- 자체 소프트웨어, 구성, 운영 체제, 모니터링을 추가합니다.
- 모든 소프트웨어가 사전 패키징 되어 있기 때문에 더 빠른 부팅/구성 시간
- AMI는 특정 리전을 위해 구축되었습니다. (그리고 리전 간에 복사 가능)
다음에서 EC2 인스턴스를 시작할 수 있습니다.
- A Public AMI: AWS 제공
- Your Own AMI: 직접 만들고 유지 관리
- AWS Marketplace AMI: 다른 사람이 만든 (그리고 잠재적으로 판매하는) AMI
AMI Process
- EC2 인스턴스 시작 및 사용자 지정
- 인스턴스 중지 (데이터 무결성을 위해)
- AMI 빌드 - EBS 스냅샷도 생성
- 다른 AMI에서 인스턴스 시작
새 AMI가 A 지역에서 B 지역으로 복사되면 AMI가 기본 스냅샷을 기반으로 하기 때문에 B 지역에 스냅샷이 자동으로 생성됩니다. 또한 B 지역의 이 AMI에서 인스턴스가 생성됩니다.
EC2 Instance Store
EBS 볼륨은 우수하지만 제한된 성능을 가진 네트워크 드라이브입니다. 고성능 하드웨어 디스크가 필요한 경우 EC2 Instance Store를 사용하세요.
- 더 나은 I/O 성능
- 버퍼 / 캐시 / 스크래치 데이터 / 임시 콘텐츠에 적합
- 하드웨어 고장 시 데이터 손실 위험
- 백업 및 복제는 사용자의 책임입니다.
EC2 인스턴스 스토어가 중지되면 스토리지가 손실됩니다. (임시 스토리지)
EBS Volume Types
EBS 볼륨은 6가지 유형으로 제공됩니다.
gp2
/gp3
(SSD): 다양한 워크로드에 대해 가격과 성능이 균형을 이루는 범용 SSD 볼륨io1
/io2
(SSD): 미션 크리티컬한 저지연 또는 고처리량 워크로드를 위한 고성능 SSD 볼륨st1
(HDD): 자주 액세스하고 처리량이 많은 워크로드를 위해 설계된 저렴한 HDD 볼륨sc1
(HDD): 액세스 빈도가 낮은 워크로드용으로 설계된 가장 저렴한 HDD 볼륨
EBS 볼륨은 크기 / 처리량 / IOPS (초당 I/O 작업)
- SSD 볼륨만 부팅 볼륨으로 사용 가능
gp2
/gp3
및io1
/io2
만 부팅 볼륨으로 사용할 수 있습니다.
EBS Volume Types - Use Cases
General Purpose SSD
- 비용 효율적인 스토리지, 짧은 대기 시간
- 시스템 부팅 볼륨, 가상 데스크톱, 개발 및 테스트 환경
- 1GiB - 16TiB
gp3
- 3,000IOPS의 기준선 및 125MiB/s의 처리량
- 독립적으로 IOPS를 최대 16,000, 처리량을 최대 1,000MiB/s 까지 높일 수 있습니다.
gp2
- 작은 gp2 볼륨은 IOPS를 3,000까지 버스트할 수 있습니다.
- 볼륨의 크기와 IOPS가 연결되어 있으며 최대 IOPS는 16,000입니다.
Provisioned IOPS (PIOPS) SSD
지속적인 IOPS 성능을 제공하는 중요한 애플리케이션
- 16,000 IOPS 이상의 IOPS가 필요한 애플리케이션
- 데이터베이스 워크로드에 적합 (스토리지 성능 및 일관성에 민감)
io1 / io2 (4GiB - 16TiB)
- 최대 PIOPS: Nitro EC2 인스턴스의 경우 64,000, 기타 인스턴스의 경우 32,000
- 스토리지 크기와 독립적으로 PIOPS 증가 가능
- io2는 GiB당 더 많은 내구성과 더 많은 IOPS를 제공합니다. (io1과 동일한 가격)
io2 Block Express (4GiB - 64TiB)
- 밀리초 미만의 지연 시간
- 최대 PIOPS: 256,000, IOPS: GiB 비율 1,000:1
- EBS 다중 연결 지원
Hard Disk Drives (HDD)
부팅 볼륨이 될 수 없는 HDD
- 125GiB - 16TiB
- 처리량 최적화 HDD (st1)
- 빅데이터, 데이터 웨어하우스, 로그 처리
- 최대 처리량 500MiB/s - 최대 IOPS 500
콜드 HDD (sc1)
- 자주 액세스 하지 않는 데이터의 경우
- 최저 비용이 중요한 시나리오
- 최대 처리량 250MiB/s - 최대 IOPS 250
EC2 Multi-Attach io1 / io2 Family
- 동일한 가용영역의 여러 EC2 인스턴스에 동일한 EBS 볼륨 연결
- 각 인스턴스에는 볼륨에 대한 전체 읽기 및 쓰기 권한이 있습니다.
Use Case
- 클러스터된 Linux 애플리케이션(예: Teradata)에서 더 높은 애플리케이션 가용성 달성
- 애플리케이션은 동시 쓰기 작업을 관리해야 합니다.
- 클러스터를 인식하는 파일 시스템을 사용해야 함. (XFS, EX4 등이 아님)
EBS 암호화
암호화된 EBS 볼륨을 생성하면 다음 기능을 얻을 수 있습니다.
- 미사용 데이터는 볼륨 내부에서 암호화됩니다.
- 인스턴스와 볼륨 사이를 이동하는 모든 데이터가 암호화됩니다.
- 모든 스냅샷은 암호화됩니다.
- 모든 볼륨은 스냅샷으로 생성됩니다.
- 암호화 및 복호화는 투명하게 처리됩니다.
- 암호화는 대기 시간에 최소한의 영향을 미칩니다.
- EBS 암호화는 KMS(AES-256)의 키를 활용합니다.
- 암호화되지 않은 스냅샷을 복사하면 암호화 가능
- 암호화된 볼륨의 스냅샷은 암호화됩니다.
암호화 되지 않은 EBS 볼륨 암호화
- 볼륨의 EBS 스냅샷 생성
- EBS 스냅샷 암호화 (복사)
- 스냅샷에서 새 EBS 볼륨 생성 (볼륨도 암호화됨)
- 암호화된 볼륨을 원본 인스턴스에 연결
EFS (Elastic File System)
- 많은 EC2에 탑재할 수 있는 관리형 NFS (네트워크 파일 시스템)
- EFS는 다중 AZ의 EC2 인스턴스와 작동합니다.
- 고가용성, 확장성, 고가(3x gp2), 사용량에 따른 지불
- 콘텐츠 관리, 웹 서비스, 데이터 공유, WordPress
- NFSv4.1 프로토콜 사용
- 보안 그룹을 사용하여 EFS에 대한 액세스 제어
- Linux 기반 AMI(Windows 아님)와 호환
- KMS를 사용한 저장 데이터 암호화
- 표준 파일 API가 있는 POSIX 파일 시스템 (~Linux)
- 파일 시스템은 용량 계획 없이 자동으로 확장되며 종량제입니다.
EFS Performance & Storage Classes
EFS Scale
- 1000개의 동시 접근 NFS 클라이언트, 10GB/s 처리량
- 페타바이트 규모의 네트워크 파일 시스템으로 자동 확장
- 범용(기본값): 대기 시간에 민감한 사용 사례 (웹 서버, CMS 등...)
- MAX I/O: 더 긴 지연 시간, 처리량, 고도로 병렬 (빅데이터, 미디어 처리)
성능 모드는 더 높은 수준의 집계 처리량 및 초당 작업으로 확장하는 데 사용됩니다. 이 크기 조정은 파일 메타데이터 작업에 대해 약간 더 높은 대기 시간을 절충하여 수행됩니다. 빅 데이터 분석, 미디어 처리 및 게놈 분석과 같은 고도로 병렬화된 애플리케이션 및 워크로드는 이 모드의 이점을 누릴 수 있습니다.
Bursting Throughput mode
: 표준 스토리지 클래스 파일 시스템 크기가 커짐에 따라 Amazon EFS의 처리량이 확장됩니다. (1TB-50MiB/s + 최대 100MiB/s의 버스트)Provisioned Throughput mode
: 저장된 데이터의 양과 관계없이 파일 시스템의 처리량을 즉시 프로비저닝할 수 있습니다. (예: 1TB 스토리지에 대해 1GiB/s)
EFS Storage Classes (수명 주기 관리) - 비용 절감
스토리지 계층 (수명 주기 관리 기능 - N일 후 파일 이동)
- 표준: 자주 액세스하는 파일용
- Infrequent Access (EFS-IA): 파일 검색 비용, 저장 비용 감소, 수명 주기 정책으로 EFS-IA 활성화
가용성 및 내구성
- 지역: 다중 AZ, 프로덕션에 적합
- One Zone: 1개의 AZ, 개발에 적합, 기본적으로 백업 활성화, IA(EFS One Zone-IA)와 호환 가능
- 90% 이상의 비용 절감
EBS vs EFS
- 한 번에 하나의 인스턴스에만 연결 가능
- 가용 영역 수준에 제한
gp2
: 디스크 크기가 증가하면 IO가 증가
io1
: IO를 독립적으로 증가
AZ에서 EBS 볼륨을 마이그레이션 하려면
- 스냅샷 찍기
- 다른 AZ에 스냅샷 복원
- EBS 백업은 IO를 사용하므로 실행하면 안됩니다.
Block Express의 경우 인스턴스 다중 연결 가능
Amazon EBS 다중 연결을 사용하면 단일 프로비저닝된 IOPS SSD (io1 또는 io2) 볼륨을 동일한 가용영역에 있는 여러 인스턴스에 연결할 수 있습니다. 다중 연결이 활성화된 여러 볼륨을 인스턴스 또는 인스턴스 세트에 연결할 수 있습니다. 볼륨이 연결된 각 인스턴스에는 공유 볼룸에 대한 전체 읽기 및 쓰기 권한이 있습니다. 다중 연결을 사용하면 동시 쓰기 작업을 관리하는 클러스터형 Linux 애플리케이션에서 더 높은 애플리케이션 가용성을 더 쉽게 달성할 수 있습니다.
애플리케이션이 많은 트래픽을 처리하는 동안 EC2 인스턴스가 종료되면 기본적으로 인스턴스의 루트 EBS 볼륨이 종료됩니다. (비활성화 가능)
- AZ 전체에 100개의 인스턴스 마운트
- EFS 공유 웹사이트 파일 (WordPress)
- Linux 인스턴스 전용 (POSIX)
- 비용 절감을 위해 EFS-IA 활용 가능
- EFS vs EBS vs 인스턴스 스토어
EFS는 EBS보다 가격대가 높습니다.
EFS IA
Amazon EFS Infrequent Access (EFS IA)는 매일 액세스 하지 않는 파일에 대해 비용 최적화된 가격 / 성능을 제공하는 스토리지 클래스로, Amazon EFS Standard에 비애 스토리지 가격이 최대 92% 저렴합니다.
가용영역별 차이
EBS - 단일 가용영역 (동일한 AZ) EFS - 다중 가용영역