AWS Elastic Block Store(AWS EBS
)는 AWS EC2
인스턴스가 영구적으로 사용할 수 있는 블록 스토리지 볼륨을 제공하는 서비스이다. 기본적으로는 AWS EBS
블록 스토리지에 해당하지만, 파일 시스템을 생성하여 파일 기반으로 데이터를 저장하는 것도 가능하다. AWS EBS
는 네트워크 연결을 통해 마운트되는 SAN
(Storage Area Network)이다. 네트워크 연결을 기반으로 한다는 점에서 NAS
(Network Attached Storage)와 유사하지만, 세부적인 구현 방식에 있어서 차이를 보인다. SAN
과 NAS
의 차이는 아래 장에서 자세히 다루도록 하자
AWS EBS
는 Provisioned IOPS
, GP2(General Purpose SSD)
, Troughput Optimized
Cold
등 다양한 유형의 디스크 볼륨을 제공한다. 디스크 볼륨은 크게 IOPS
, Throughput
성능과 디스크 유형(SSD/HDD
)에 따라 구분된다. 사용자는 어플리케이션 유형에 따라 적절한 디스크 볼륨을 선택하여 사용할 수 있다.
AWS EBS
는 최소 1GB부터 사용자가 원하는 크기로 쉽게 생성/삭제할 수 있다. 또한, 사용한 만큼만 과금되는 종량제 방식을 채택하고 있다.
AWS EBS
는 동일한 AZ
(Availability Zone)내에서 데이터를 복제하여 저장한다. 따라서, 하나의 디스크 볼륨에 문제가 생겨도 복제본을 통해서 데이터를 복구할 수 있다.
AWS EBS
는 EC2
인스턴스와 데이터 전송 과정에 대한 암호화를 지원한다.
AWS EBS
는 다른 AWS
리스소와 동일하게 액세스 제어 정책을 설정하여 사용자 별로 AWS EBS
에 대한 권한을 제어할 수 있다.
AWS EBS
는 특정 시점의 데이터 스냅샷을 생성하여 데이터 상태를 기록한다. 스냅샷은 데이터 안정성을 위해 AWS S3
에 백업된다.
AWS EBS
는 광케이블 연결을 기반으로 하는 SAN
방식의 스토리지로, 네트워크로 연결된 스토리지 임에도 불구하고 빠른 성능을 보장한다. SAN
에 대한 자세한 설명은 아래에서 다루도록 한다.
SAN
와 NAS
는 네트워크를 기반으로 하는 저장소라는 점에서 공통점을 갖는다. 그러나, 두 저장소는 아래와 같은 차이점을 갖는다.
SAN
은 block
단위로 데이터를 쪼개어 저장하는 block stroage
이다, 반면, NAS
는 데이터를 파일 단위로 저장하여 관리하는 파일 스토리지 방식에 해당한다. 따라서, SAN
은 데이터베이스와 같이 구조화된(structured
) 데이터를 저장하기 위해 활용되는 반면, NAS
는 일반적인 파일서버와 유사하게 이미지, 동영상 등 구조화되지 않은(unstructured
) 데이터를 저장하기에 용이하다.
NAS
는 일반적으로 ethernet
연결을 기반으로 이미 존재하는 파일 서버에 접근하는 방식이다. 따라서, 동일한 LAN
를 구성하는 모든 클라이언트가 스토리지에 저장된 데이터를 공유할 수 있다. NAS
가 중앙화된 파일 서버 구성에 주로 활용되는 것도 바로 이러한 특징에서 기인한다.
반면, SAN
은 여러 스토리지를 묶어서 하나의 네트워크를 구성한다. 네트워크로 묶인 스토리지들은 가상으로 중앙화된 논리 볼륨(logical volume)을 형성한다. 각 클라이언트는 SAN
네트워크에 접속하여 LUN
(Logical Unit Number)라는 고유 번호와 논리적으로 분할된 공간을 할당 받는다. SAN
에서는 클라이언트 별로 할당받는 공간이 분리되어 있기 때문에 데이터는 공유되지 않는다.
보다 구체적으로, LAN
을 기반으로 하고 있는 NAS
와 달리 SAN
에서는 중앙화된 SAN 스위치
에 서버와 스토리지를 광케이블로 연결한다. 따라서, 태생부터 스토리지 통신을 위한 네트워크 위에 만들어졌으며, 네트워크 연결을 기반으로 함에도 불구하고 빠른 속도를 보장한다.
4 Reasons Not to Use AWS Elastic Block Storage for Stateful Container Operations
스토리지 기초 지식 1편: DAS, SAN 그리고 NAS
잘 정리되어있네요!! 잘 보고 갑니다!