본문 바로가기

IT/Infra

[Cloud]블록 스토리지와 오브젝트 스토리지

안녕하세요. 잇킹 시도르입니다.

오늘은 클라우드 스토리지에 대해서 알아보려고 합니다.

 

크게 블록 스토리지와 오브젝트 스토리가 있습니다.

 

블록 스토리지

블록 스토리지는 앞에서 언급했던 이페머럴(Ephermeral) 디스크와는 반대로, 인스턴스 종료 시에도 계속 내용을 보존하는 스토리지입니다. AWS에서는 EBS(Elastic Block Storage)로 부르고 있습니다. 이페머럴 디스크는 AWS에서는 인스턴스 스토리지라고 부릅니다.

 

블록 스토리지는 크게 볼륨과 스냅샷 두 종류로 구분되며, 실제 블록 스토리 관련 글들을 보다 보면 자주 언급되는 용어들입니다.

볼륨은 실제 서버에 연결되는 디스크를 의미하고, 디스크가 물리적으로 삭제되거나 고장이 나지 않는 한 데이터가 지워지지 않으며 이는 휘발되지 않는다라고 표현합니다. 서버가 꺼져도 데이터가 사라지지 않는 영속성을 가지죠.

 

블록 스토리지와 인스턴스 스토리지를 비교해보면 다음과 같습니다.

  인스턴스 스토리지 블록 스토리지
재부팅 보존 보존
중단/시작 삭제 보존
종료 삭제 기본적으로 루트 볼륨은 삭제

 

블록 스토리지의 사용법은 다음과 같습니다.

1) 신규로 블록 볼륨 생성한다.

2) 만들어진 블록 볼륨을 가상 머신 인스턴스에 연결한다.

3) OS는 디스크가 추가된 것으로 인식하게 되며, 보통의 물리적 디스크와 같은 방식으로 사용한다.

4) 스냅샷을 생성한다

5) 스냅샷을 복제해서 새로운 블록 볼륨을 생성할 수 있다.

 

인스턴스를 기동 하게 되면 부팅에 사용된 이미지가 루트 디바이스 볼륨에 저장되는데요.

AWS 초기에는 루트 디바이스가 인스턴스 스토리지뿐이었으나, EBS 출시 이후에는 기본적으로 EBS가 루트 디바이스 볼륨으로 지정됩니다.

 

EC2 생성 시에 스토리지 추가 단계인 AWS 콘솔 페이지입니다. 캡처와 같이 Root 디바이스는 볼륨 타입을 변경할 수 없으며, EBS 종류만 선택할 수 있습니다.

▲Root는 EBS로만 지정 가능한 AWS Console

 

추가 스토리지는 EBS와 인스턴스 스토리지가 모두 가능함을 확인할 수 있습니다.

▲EC2 Add Storage

 

물론 앞 단계에서 EC2 인스턴스 타입을 인스턴스 스토리지 추가인 타입으로 선정해야 합니다.

 

추가로 제가 인스턴스 스토리지와 블록 스토리지 비교 시에 인스턴스를 종료하게 되면 기본적으로 블록 스토리지의 루트 볼륨은 삭제된다고 했었습니다. AWS에서 루트 볼륨을 보게 되면 Delete on Termination가 체크되어 있음을 확인할 수 있습니다. 이를 체크 해제하면 루트 볼륨 또한 삭제되지 않습니다. 

▲인스턴스 종료 시에도 루트 영역 데이터 삭제 되지 않도록 하기

 

오브젝트 스토리지

오브젝트 스토리지는 파일 단위로 데이터를 저장하는 인터넷용 스토리지입니다. HTTP/HTTPS 기반의 파일 서버로 생각하시면 되겠네요. 웹을 통해 언제, 어디서든 원하는 데이터를 저장하고 검색할 수 있는 특징을 가집니다.

이는 클라우드의 컴포넌트가 리전이나 가용 영역에 제약이 있었던 반면에, 오브젝트 스토리지는 인터넷을 통해 접속만 가능하면 이런 제약이 없다는 것을 나타냅니다.

 

AWS의 S3가 대표적이겠네요. S3는 버킷을 리전 내에서 생성하게 됩니다. 이 버킷을 다른 리전의 인스턴스에서 인터넷을 통해서 접근이 가능하므로 타 리전에서도 사용할 수 있게 되는 것입니다. 예를 들어서 서울 리전의 A EC2에서 생성한 파일을 S3에 담아 놓으면, 도쿄 리전의 B EC2에서 S3에 접근하여 해당 파일을 사용할 수 있는 거죠.

 

파일을 오브젝트 스토리지에 업로드하게 되면, 버킷 내에 객체로 저장하게 됩니다. 객체는 파일과 파일의 메타 데이터로 구성되며, 버킷(Bucket)은 객체를 담는 논리적인 컨테이너라고 생각하면 됩니다. 메타데이터는 key와 value 형태로 존재하게 됩니다.

 

버킷 내에서 버킷을 또 생성할 수 없습니다. 즉 우리가 사용하는 폴더처럼 계층 구조를 지원하지 않습니다. 

실제 S3를 사용해보면 버킷 내에서 폴더를 생성할 수 있는 것처럼 보이나, 이는 실제로 존재하는 게 아닙니다. 가상의 디렉터리명을 붙여서 저장되므로 그렇게 보이는 것입니다. abc라는 폴더 안에 test.txt라는 파일을 오브젝트 스토리지에서는 abc/test.txt라는 파일명으로 저장하게 되는 거죠.

 

그럼 블록 스토리지와 오브젝트 스토리지를 비교해보겠습니다.

  블록 스토리지(AWS EBS) 오브젝트 스토리지(AWS S3)
기능

파일 시스템이 있음(계층)

네트워크 연결 하드 드라이브

객체로 저장되는 온라인 스토리지
성능 S3보다 뛰어난 성능  
범위 가용 영역 내의 서버마다 존재 리전 내 존재
인터넷 액세스 불가능 가능
비용 프로비저닝한 만큼 사용한만큼

 

블록 스토리지는 읽고 쓰기가 많은 작업에 뛰어난 성능을 보이며, 오브젝트 스토리지는 저장소의 역할로 한 번에 쓰고 여러 번 읽는 작업에 유리합니다. 파일의 변경이 있을 시에 수정이 되지 않고 전체 파일을 다시 써지기 때문이죠. 그러므로 쓰기를 자주 하는 작업에는 유리하지 않죠. 비용도 더 저렴하고요. 

 

이것으로 클라우드의 스토리지 정리를 마치겠습니다.

이상입니다!!!

 

'IT > Infra' 카테고리의 다른 글

CLI vs SDK vs 콘솔  (0) 2020.06.09
FQDN, DNS 라운드 로빈과 가상 호스트  (0) 2020.05.06
[Cloud]서버 리소스 설정  (0) 2020.03.10
[Cloud]네트워크 구성요소  (0) 2020.03.09
[Cloud]테넌트, 리전, 가용 영역  (0) 2020.03.04