이번 글에서는 Block Storage / File Storage / Object Storage에 대한 개념과 AWS에서의 서비스가 무엇이 있는지 알아보도록 하겠다.
Block Storage / EBS
Block Storage란 사용자의 데이터를 Volume에 Block 단위로 저장하거나 Access하는 스토리지 유형이다.
일반적인 Local Disk 및 SAN/iSCSI, NTFS, Ext, xfs 파일시스템이 있다.
특징은 아래와 같다.
- 데이터를 스토리지에 저장할 때, Block 이라는 일정 크기의 단위로 분할
- 분할된 Block은 스토리지에 분산되어 저장
- 각 Block은 고유 식별자를 가지고 있음
- 저장된 데이터를 불러올 때는, 식별자를 통해 Block을 찾아 재조합
- 가장 일반적인 데이터 스토리지 저장 방식 중 하나
장점은 아래와 같다.
- 균일하게 Block을 분산하여 저장하기 때문에 데이터 입출력에 대한 성능 및 효율이 좋다.
- 데이터를 사용하는 OS 환경과 상관없이 저장이 가능하다.
- 대규모 트랜잭션을 수행하는 (ex. Database) 작업에 알맞다.
AWS에서는 EBS가 대표적인 Block Storage다.
EBS는 EC2를 위한 비휘발성 Block Storage이고, SSD/HDD 등 다양한 타입을 지원한다.
네트워크 연결을 통해 인스턴스 간 연결 및 해제가 가능하고, EBS Volume은 하나의 Instance에 연결이 가능하다.
EBS Volume Type에는 Size, IOPS, Throughput, Cost의 지표가 있다.
여기서 IOPS란 초당 데이터 입출력 Count 지표이고, Throughput란 초당 얼만큼의 데이터 처리가 가능한지에 대한 성능 지표이다.
EBS Snapshot을 통해 백업이 가능하다.
Snapshot은 S3에 저장되며, Lifecycle 관리 기능을 제공한다.
연속적으로 생성된 스냅샷의 경우 증분백업 방식으로 저장된다.
Snapshot to AMI 를 통해 다른 인스턴스에 배포용으로 사용 가능하다.
EBS Volume은 볼륨 내부 저장된 데이터에 대해 암호화를 제공한다.
암호화 수행 시 사용되는 암호화 Key는 AWS KMS를 통해 제공받게 된다.
사용자는 특별히 암호화를 위해 해야할 작업은 없으며, 내부에서 자동으로 실행된다.
File Storage / EFS
File Storage란 파일시스템으로 구성된 저장소를 Network 기반 프로토콜을 사용하여 파일 단위로 Access 하는 스토리지 유형이다.
NFS, CIFS 등이 있다.
특징은 아래와 같다.
- 데이터를 파일 단위로 처리
- 계층적인 폴더 구조를 통해 파일을 저장 및 관리
- 파일을 찾을 때, 폴더 인덱스를 탐색하여 검색하고 인덱스 정보는 메타데이터에서 관리한다.
AWS에서는 EFS가 대표적인 File Storage다.
EFS의 특징은 아래와 같다.
- 수천 개의 인스턴스 간 공유 가능
- 페타바이트 규모 확장 가능
- 사용하는 용량에 따른 자동 성능 향상
- AZ 수준의 장애 대응 능력 제공
- AZ 별 다수의 Mount Target 제공
아래를 보면 AZ에 맵핑된 Subnet에 Mount Target (ENI)을 제공하여 인스턴스는 여기를 통해 파일시스템에 접근 가능하다.
ENI이기 때문에 Security Group을 설정 가능하다.
EFS는 AWS Backup 서비스를 활용하여 파일 시스템 백업을 수행한다. 증분 백업 방식으로 저장된다.
EBS와 마찬가지로 EFS도 KMS을 통해 암호화 기능을 제공한다.
다만 생성 시 암호화 여부 결정 후 변경이 불가능 하다.
Object Storage / S3
Object Storage는 데이터 및 속성, 메타데이터, 오브젝트 ID를 저장하는 가상의 컨테이너 형태 스토리지 유형이다.
API 기반의 데이터 접근 및 정책에 기반한 운영을 하고, AWS S3가 대표적이다.
특징은 아래와 같다.
- 데이터를 Object 단위로 처리
- REST API와 같은 웹 인터페이스 기반의 Object 접근
- 서로 다른 하드웨어에 데이터를 분산, 중복 저장하여 높은 데이터 안정성 보장
- 무한히 확장 가능한 구조
AWS S3는 대표적인 Object Storage 서비스로, 웹 기반 인터페이스를 제공하며, 높은 고가용성을 가진다.
S3의 구성요소는 Bucket, Object, Key이며, 여기서 Key란 Bucket 내 Object에 대한 고유한 식별자다.
즉, Bucket + Key + Version ID(Versioning 활성화한 경우) 조합으로 각 Object를 고유하게 식별 가능하다.
AWS는 Versioning 기능을 제공하는데, 이 기능을 활성화하면, Key는 동일하지만 Version ID가 다른 두 개의 Object를 보유하게 된다.
Object를 삭제하면, 데이터를 제거하는 것이 아닌 삭제 마커를 삽입하게 된다.
삭제하고자 하는 버전을 지정하여 Object를 영구 삭제 가능하다.
S3는 Bucket ACL를 통해 권한이 부여된 사용자에게 개별 Bucket 및 Object에 대한 읽기 및 쓰기 권한을 부여할 수 있다.
기본적으로 S3 Bucket에 업로드된 Object는 해당 계정 Object 소유자가 액세스 할 수 있다.
EBS / EFS / S3 비교
'IT 공부 > AWS' 카테고리의 다른 글
[AWS 고가용성] ELB / ASG (0) | 2023.04.16 |
---|---|
[AWS 관리] Cloud Watch / Cloud Trail (0) | 2023.04.16 |
[AWS 컴퓨팅 노드] EC2 (0) | 2023.04.04 |
[AWS 네트워크] Elastic IP, NAT Gateway, NACL, Security Group (0) | 2023.04.04 |
[AWS 네트워크] VPC, Subnet, Internet Gateway, Routing Table (0) | 2023.04.04 |
댓글