◇ 공부 기록용으로 작성하였으니 틀린 점, 피드백 주시면 감사하겠습니다 ◇
사전지식
EBS를 이해하기 위해서는 HDD와 SDD를 알아야 한다 → https://jibinary.tistory.com/147
Amazon EBS (Elastic Block Store)
EBS는 EC2의 하드디스크(SSD)라고 생각하면 이해하기 쉽다.
Amazon EBS는 영구 블록 스토리지 서비스이다. EBS는 EC2와 사용하여 데이터를 보존하고 관리하는 데 사용된다.
→ EC2 인스턴스를 중지하거나 종료시켜도, EBS에 저장된 데이터는 보존된다. (하드디스크이기 때문에)
Block Storage (블록 스토리지)란?
블록 스토리지는 데이터를 블록 단위로 저장하는 스토리지 방식이며 SAN(Storage Area Network) 또는 클라우드 기반 스토리지 환경에서 사용되는 기술이다.
블록 스토리지는 일단 데이터를 일정한 크기의 블록으로 나눈 후, 각 블록에는 각각의 고유 주소가 부여된다.
→ 즉, 데이터를 고정된 사이즈 블록으로 나누어 각각 고유한 식별자와 함께 저장하는 방식이다.
Block Storage 장점 & 단점
- 장점
- 블록 스토리지는 빠르다.
- 다른 스토리지 방식(파일 스토리지)와 비교해서, 고유 식별자를 사용하면 데이터를 매우 빠르게 검색할 수 있다. 데이터에 대한 여러 경로가 있다.
- 블록 스토리지는 고유 식별자만 있으면 검색이 가능하므로 데이터에 여러 경로로 접근할 수 있다.반면 파일 스토리지에서는 원하는 파일에 도달할 때까지 파일 계층 구조 경로를 따라가야 한다.
- 단점
- 블록 스토리지는 비용이 많이 든다.
- 빠른 성능에 최적화되어 있기 때문에 블록 스토리지는 오브젝트 스토리지보다 비용이 많이 든다.
블록 스토리지 외에 다른 스토리지 저장 방식도 있다.
- Block Storage = EBS
- File Storage = EFS (파일 스토리지란? → https://jibinary.tistory.com/67)
- Object Storage = S3 (오브젝트 스토리지란? → https://jibinary.tistory.com/129)
AWS 공식 참고자료: Block Storage, Object Storage, File Storage:
https://aws.amazon.com/ko/compare/the-difference-between-block-file-object-storage/
EC2에 연결하는 블록 스토리지로 EBS 말고 Instance Stores라는 게 있다.
Instance stores (인스턴스 스토어)
Instance stores는 EC2 인스턴스에 연결하는 휘발성 블록 레벨 스토리지이다.
EBS와 달리 인스턴스를 종료하거나 중지하면 (👩🏫가장 중요) Instance stores의 데이터가 사라진다.
Instance stores 특징
- Low Latency이며 고속 데이터 처리가 가능하다
- EC2 호스트에 물리적으로 아주 가깝게 연결되어 있기 때문에
- 그렇기 때문에 기본적으로 EBS보다 처리 속도가 빠르다.
- 버퍼, 캐시 같은 데이터를 위한 일시적인(temporary) 스토리지로 유용하다. (Long-term 장기간 저장으로는 적합하지 않다)
- 인스턴스 스토어의 Volume의 사이즈는 처음에 기동시에만 설정가능하다.
Instance Stores 공식 문서: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html
EBS 특징
- 블록 스토리지
- 내구성 및 가용성: EBS는 데이터가 단일 가용 영역(Single AZ) 내에서 복제되어 내구성을 제공한다.
하드웨어 장애 시에도 데이터가 안전하게 유지된다. 그러나 고가용성(Multi AZ)은 제공하지 않으므로, 가용 영역(AZ) 간 복제는 사용자가 직접 설계해야 한다. - 스냅샷: EBS 볼륨의 백업을 위해 스냅샷을 만들 수 있습니다. 스냅샷은 Amazon S3에 저장되며, 동일한 리전이나 다른 리전으로 복원할 수 있습니다. 스냅샷은 증분 방식으로 저장되기 때문에 비용 효율적이다.
- 암호화: EBS 볼륨은 AWS KMS (Key Management Service)를 사용해 자동으로 암호화할 수 있다.
- 다양한 볼륨 유형: 참고 📌 EBS volume types: https://jibinary.tistory.com/358
📌 EBS Volume의 부착 방식
EC2 인스턴스에 부착된 EBS 볼륨은 EC2 인스턴스의 OS나 애플리케이션의 데이터, User Data를 저장한다.
EBS 볼륨은 기본적으로 2개 이상의 인스턴스에서 동시에 접근할 수 없다.
일부 볼륨 타입은 여러 인스턴스를 부착이 가능한 "Multi Attach" 기능을 지원하지만, 동시에 업데이트를 방지하기 위해 애플리케이션 측에서 배타적 제어(※)를 수행해야 하는 등의 제약 사항이 있다.
(※) 배타적 제어 ...파일을 업데이트하는 동안 다른 프로세스가 동일한 파일을 업데이트하는 것을 방지하여 데이터의 일관성을 유지하는 것
단일 가용 영역(AZ) 내에 여러 개의 EBS 볼륨을 EC2 인스턴스에 부착하여 사용할 수 있다.
하지만 다른 AZ의 EBS 볼륨은 부착할 수 없다.
📌 EBS Snapshot
EBS에 저장하는 데이터는 영구적으로 보관하기 위한 것이다. 그렇기 때문에 EBS의 데이터의 백업 역시 중요하다.
- EBS는 Snapshots을 생성함으로써 백업 시스템을 구현한다.
- EBS의 Snapshot은 S3 bucket에 저장하여 보관한다.
- Snapshot의 보관기간은 무제한이다.
Snapshot 원리
Snapshot은 우리가 알고 있는 백업 방식과는 방법이 살짝 다르다.
(A snapshot is an incremental backup, Incremental backups are different from full backups)
Snapshot 보관 방법: Incremental backups
첫째 날, backup은 모든 데이터를 backup 한다.
둘째 날, backup을 실행할 경우, 오로지 새로 업데이트된 데이터만 backup 한다.
셋째 날도 역시 새로 업데이트된 데이터만 backup 한다.
https://docs.aws.amazon.com/ebs/latest/userguide/ebs-snapshots.html
📌 EBS 암호화
- EBS는 AES-256 형식으로 암호화 가능하다. 암호화할 때는 AWS KMS를 이용한다.
- 암호화 할려면 EBS 작성 시에 암호화 옵션을 활성화해야 한다.
- 암호화한 EBS는 Snapshot도 자동으로 암호화된다.
- 이미 만들어버린 EBS는 암호화할 수 없다.
- 만들어버린 EBS를 암호화하고 싶을 경우 EBS의 Snapshot에서 새롭게 암호화된 EBS를 작성해야 한다.
참고자료) https://docs.aws.amazon.com/ko_kr/ebs/latest/userguide/ebs-encryption.html
📌 EBS volume types
EBS는 총 5가지 타입을 제공한다.
- General Purpose SSD volumes :
- Provisioned IOPS SSD volumes :
- Throughput Optimized HDD volumes:
- Cold HDD volumes:
- Magnetic:
Volume Types |
(Volume 당) 최대 IOPS |
(Volume 당) 최대 Throughput |
설명 (Use cases) | |
General Purpose SSD |
gp3 | 16,000 | 1000 | 가장 일반적이며 효율이 좋다 |
gp2 | 16,000 | 250 | ||
Provisioned IOPS SSD |
io2 | 64,000 (가장 큼) | 1000 | 가장 빠른 성능이 필요할 경우 |
io1 | 64,000 (가장 큼) | 1000 | ||
Throughput Optimized HDD |
st1 | 500 | 500 | 빅 데이터, 데이터 웨어 하우스 (저렴한 편) |
Cold HDD | sc1 | 250 | 250 | 데이터에 접근이 적은 경우 적합 (아주 저렴한 편) |
자세한 설명: https://jibinary.tistory.com/358
📌 Delete On Termination (EC2 인스턴스 종료 시 삭제)
EC2 인스턴스를 종료(삭제)할 때, 동시에 부착된 EBS 볼륨을 삭제할지 여부를 설정할 수 있다.
기본적으로 EC2 인스턴스의 루트 볼륨으로 지정된 EBS 볼륨은 "삭제하기"로, 그 외의 볼륨은 "삭제하지 않기"로 설정되어 있다.
EC2 인스턴스가 종료될 때 EBS 볼륨의 데이터를 삭제하고 싶다면 "Delete On Termination" 값을 "True/Yes"로 설정하거나, EC2 인스턴스 생성 시 "종료 시 삭제" 옵션을 활성화해야 한다.
📌 RAID(Redundant Arrays of Inexpensive Disks)
자세한 내용: https://jibinary.tistory.com/330
예시) EBS volume 생성하기
EBS를 만들기 위해서는 Volume 사이즈나 타입과 같은 Configuration을 설정해주어야 한다.
가용 영역은 EC2 인스턴스와 같은 가용 영역을 사용해야 한다.
EBS volume을 EC2에 연결
생성 후에는 Volume을 EC2 instance에 연결해야 된다.
"Attach volume"을 선택 후에 instance 선택 란에서 원하는 instance를 선택하면 된다.
instance 화면에서「스토리지」탭을 확인하면 EC2 instance에 추가로 연결된 볼륨을 확인할 수 있다.
'클라우드(AWS) > EBS' 카테고리의 다른 글
[AWS] EBS Volume Types(볼륨 타입) 쉽게 차이점 정리 (0) | 2024.06.27 |
---|---|
[AWS] Block Device Mappings란? 쉽게 정리 (EBS와 인스턴스 스토어) (0) | 2024.06.07 |
[AWS] RAID란? 쉽게 특징 정리 (EBS의 RAID 구성) (0) | 2024.05.26 |
[AWS] EBS와 EFS 차이점 쉽게 정리 (0) | 2024.05.26 |