코드프레소 백엔드 개발자 양성 과정
블록 스토리지
아마존 클라우드를 공부하다 보면 나오는 대표적인 서비스로 ‘탄력적 블록 스토리지(Elastic Block Storage)’라는 것이 있다. 정보를 저장했으면 저장했지 블록이라는 건 무얼까하는 궁금증에 자세히 알아보게 되었다.
파일 스토리지 (File storage)
우선 데이터 저장 체계의 선구자 정도 되는 파일 스토리지에 대해 간단히 짚고 넘어간다. 파일 스토리지는 우리가 흔히 사용하는 폴더 구조 안에 데이터를 담는 저장 방식이다. 이는 가장 상위 폴더부터 하위 폴더까지 계층적 구조를 이루며, 특정 데이터에 접근하기 위해서는 그 경로를 온전히 알아야 한다. 윈도우 체제에서 ‘내 컴퓨터’ 안에 ‘내 문서’가 있고 그 안에 사용자가 작성한 문서 파일이 저장되는 것이 한 예이다.
파일 스토리지의 장점은 다음과 같다.
- 논리적이고 직관적인 계층 구조 덕에 구축과 탐색이 쉽다.
- 이미 수십 년간 사용된 방식이라 검증되었고 많은 저장소가 이를 기반으로 구축되어 있다.
- 거의 모든 것을 저장할 수 있다.
하지만 아래와 같은 단점도 지니고 있다.
- 확장이 어렵다. 단순히 용량만 추가하면 되는 것이 아니라 트리의 구조를 변경하거나 시스템을 전반적으로 바꿔주어야 할 수 있다.
- 데이터 접근이 단일 경로를 통해서만 이루어져 성능이 저하될 수 있다.
- New Technology File System(NTFS)이나 Network File System (NFS) 등의 파일 수준의 프로토콜과만 호환이 가능해 가용성이 낮을 수 있다.
블록 스토리지 (Block storage)
블록 스토리지는 저장 지역 통신망(storage area network, SAN)이나 클라우드 같은 원격 환경에서 데이터를 저장할 때 사용되는 기술이다. 문자 그대로 데이터를 조각 단위로 쪼개어 저장하는 것이 특징이며, 이때 생성된 각 블록은 고유 식별자를 부여 받아 혼선이 없도록 정리되어 보관된다. 데이터를 불러올 때는 이 식별자를 통해 재조합하여 제공한다.
블록 스토리지를 이용하면 다음과 같은 장점이 있다.
- 데이터 블록이 운영 체제와 무관하게 가장 효율적인 곳에 저장된다. 예를 들어, 일부는 윈도우, 일부는 리눅스 환경에 저장해도 지장이 없다.
- 파일 스토리지와 달리 접근 방식이 단일 경로에 국한되지 않는다. 탐색이 유연하고 신속하다.
- 대규모 트랜잭션, 대용량 데이터베이스 운영에 유리하다.
- 하드웨어로부터 가상화하기가 쉬워 컨테이너화 기술과 호환이 잘 된다.
하지만 이에도 제한은 따른다.
- 비용이 많이 든다.
- 메타데이터 처리 기능이 제한적이라 데이터를 정리하고 호출하는 게 어렵다. 원하는 데이터 단위가 아니라 애플리케이션이나 데이터베이스 단위에서 통째로 취급해야 하므로 개발자의 업무가 늘어날 수 있다.
- 메타데이터가 결여되어 추후 분석이 어렵다.
오브젝트 스토리지 (Object storage)
셋 중 가장 최신 기술인 오브젝트 스토리지 방식은 데이터를 오브젝트라는 단위로 쪼개 평면적으로 보관한다. 여기서 평면적이라는 것은 블록이나 폴더와는 달리 단일 저장소에 담긴다는 뜻이다. 하드웨어 측면에서 볼 땐 여러 군데에 보관되는 분산 저장 방식을 따른다.
특징과 장점으로는 다음과 같은 것들이 있다.
- 블록 스토리지와 확연히 차이가 나는 점으로는 상세히 맞춤 작성이 가능한 메타데이터가 있다. 가령 영상 데이터를 오브젝트 형태로 저장한다면 촬영 장소, 시기, 촬영자, 카메라 기종 등 원하는 정보를 기록할 수 있다. 이를 이용해 아주 상세한 검색과 데이터 분석을 수행할 수 있다.
- 확장이 무한대로 가능하며 지리적 제약 없이 페타바이트급 이상의 데이터를 처리할 수 있다.