Block Storage, File Storage, Object Storage에 대하여 알아보도록 하겠습니다.
블록 스토리지는 데이터를 블록으로 쪼갭니다. 즉 데이터를 별도의 조각으로 분리해 저장하는 것입니다.
각 데이터 블록의 고유 식별자를 통해 스토리지 시스템이 더 작은 데이터 조각을 원하는 곳에 배치할 수 있도록 해줍니다.
예를 들어 이는 일부 데이터는 Linux 환경에 저장하고 일부는 Windows 장치에 저장할 수 있다는 뜻입니다.
블록 스토리지는 데이터를 사용자의 환경에서 분리하여 쉽게 활용할 수 있도록 다양한 환경 전반에 분산하도록 설정되는 경우가 많습니다.
그런 후 데이터가 요청되면 기본 스토리지 소프트웨어가 이러한 환경의 데이터 블록을 다시 조합해 사용자에게 제공합니다.
이는 대체로 SAN(스토리지 영역 네트워크) 환경에 배포되며 가동되는 서버에 연결되어야 합니다.
블록 스토리지는 파일 스토리지와 같이 단일 데이터 경로에 의존하지 않으므로 신속하게 검색할 수 있습니다.
각 블록은 독립적으로 존재하며 파티션으로 분할될 수 있어, 서로 다른 운영 체제에 액세스할 수 있습니다.
이 때문에 사용자는 자유롭게 데이터를 설정할 수 있습니다.
이는 데이터를 효율적이고 안정적으로 저장하는 방법이며 사용과 관리도 간편합니다.
대규모 트랜잭션을 수행하는 기업과 대용량 데이터베이스를 배포하는 기업에서도 원활하게 동작합니다.
결국 더 많은 데이터를 저장해야 할수록 블록 스토리지를 사용하는 것이 더 유리합니다.
그러나 여기에도 한계는 있습니다.
블록 스토리지는 비용이 많이 들 수 있습니다.
메타데이터를 처리하는 기능이 제한적이므로, 애플리케이션 또는 데이터베이스 수준에서 취급해야 합니다.
파일 스토리지는 파일 수준 또는 파일 기반 스토리지라고도 하며, 일반적으로 흔히 알고 있는 스토리지입니다.
서류철에 서류를 정리하듯, 데이터가 폴더 안에 단일 정보로 저장됩니다.
해당 데이터에 액세스해야 하는 경우, 컴퓨터는 그 데이터를 찾기 위해 경로를 알아야 합니다. (주의: 경로가 길고 찾기 어려울 수 있습니다.)
파일에 저장된 데이터는 제한된 양의 메타데이터(해당 파일 자체가 보관된 정확한 위치를 알려주는 데이터)를 사용해 구성 및 검색됩니다.
서류 캐비닛을 생각해보면 됩니다. 캐비닛, 서랍, 폴더, 그리고 서류와 같은 순서로 모든 문서가 논리적 계층 구조로 정리되어 있습니다.
계층 구조 스토리지라는 말도 바로 여기에서 온 것으로, 이것이 파일 스토리지입니다.
이는 직접 연결 및 네트워크 연결 스토리지 시스템에 대해 가장 오래되고 널리 사용되는 데이터 스토리지 시스템이며,
수십 년 간 사용해왔던 스토리지도 대부분 바로 이런 유형일 것입니다.
PC로 파일에 저장된 문서에 액세스 할 때마다 파일 스토리지를 사용하게 됩니다.
파일 스토리지는 기능이 다양하며 거의 모든 것을 저장할 수 있습니다.
다수의 복잡한 파일을 저장하기에 좋고 사용자가 신속히 탐색할 수 있습니다.
문제는 서류 캐비닛과 마찬가지로 가상의 서랍은 열기만 할 수 있다는 점입니다.
파일 기반 스토리지 시스템은 더 많은 용량을 추가해 확장하는 것이 아닌, 더 많은 시스템을 추가해 스케일 아웃해야 합니다.
오브젝트 스토리지는 파일들이 작게 나뉘어 여러 하드웨어에 분산되는 평면적(flat) 구조입니다.
즉, 계층구조가 없으며 오브젝트 스토리지에서 데이터는 오브젝트라 불리는 개별 단위로 나뉘어,
어디에 저장되는지 그 위치를 알 필요가 없이 고유 식별자를 통해 접근 및 저장을하게 됩니다.
오브젝트 스토리지에는 단순한 HTTP API가 필요하며, 이는 대부분의 클라이언트에서 모든 언어로 사용됩니다.
오브젝트 스토리지는 사용한 만큼만 비용을 지불하면 되므로 비용 효율적입니다.
확장하기도 쉬우므로 퍼블릭 클라우드 스토리지에 매우 적합합니다.
정적 데이터에 적합한 스토리지 시스템이며, 민첩성과 평면적 속성으로 인해 초대용량의 데이터로 확장할 수도 있습니다.
오브젝트에는 충분한 양의 정보가 있어서 애플리케이션이 신속하게 데이터를 검색할 수 있으며, 비정형 데이터를 저장하기에도 좋습니다.
물론 여기에도 단점은 있습니다.
오브젝트는 수정이 불가능합니다. 따라서 한번에 오브젝트 작성을 완료해야 합니다.
오브젝트 스토리지는 또한 전통적인 데이터베이스와 잘 연동되지 않습니다.
오브젝트 작성이 느리게 진행되는 데다가,
오브젝트 스토리지 API를 사용하기 위해 애플리케이션을 작성하는 일이 파일 스토리지를 사용할 때만큼 간단하지 않기 때문입니다.
Block Storage의 경우에는 어떠한 계층구조가 존재하지 않고 직접 엑세스 하는 구조이기 때문에 Latency가 낮고,
File Storage는 File에 대한 계층구조 때문에 Latency가 어느 정도 존재합니다.
Object의 경우에는 API 기반이기 때문에 Latency가 상대적으로 길 수 밖에는 없지만,
확장성을 생각하여 Throughput을 보았을 때는 가장 좋습니다.
이렇게 간단하게 각 스토리지들에 대해 알아봤습니다.
다음 포스트에서는 AWS에서 각 스토리지 별 서비스를 알아보겠습니다.
'AWS Intro > AWS Storage Intro' 카테고리의 다른 글
AWS Storage Intro - On Premise Storage 연계 (0) | 2020.03.07 |
---|---|
AWS Storage Intro - S3 (Object Storage) (0) | 2020.03.06 |
AWS Storage Intro - EFS / FSx (File Storage) (0) | 2020.03.06 |
AWS Storage Intro - EBS (Block Storage) (0) | 2020.03.03 |