- 스토리지란?
- 파일 스토리지(File Storage)
- 블록 스토리지(Block Storage)
- 오브젝트 스토리지(Object Storage)
- 오브젝트 스토리지를 쓰는 이유?
- S3 구성
- 버킷
- 객체
- 키
- Regions
- 마치며
오브젝트 스토리지(Object Storage)
의 특성을 가지고 있습니다.쉽게 말해 데이터를 저장할 수 있는 공간입니다. 크게 3가지로 분류 됩니다.
파일 기반 스토리지
라고도 하며, 일반적으로 알고 있는 스토리지입니다.장점
서류철에 서류를 정리하듯, 데이터가 폴더 안에 단일 정보
로 저장됩니다.
잘 정리해논 도서관처럼 원하는 책을 찾기 위해선 A-Z처럼 분류된 곳과 번호로 찾는 것처럼 말입니다.
단점
마찬가지로 파일도 찾으려면 어느 경로에 있는지 알고있어야합니다.
책이 별로 많지 않다면 큰 문제가없지만 책들이 계속해서 늘어나면 늘어날수록 점점 분류하고 정리하는(파일시스템에서의 인덱싱)
일이 많아지고 찾기가 힘들어집니다.
블록 스토리지는 정해진 블록안에 데이터
를 저장합니다.
데이터에 고유 식별자를 부여하고 더 작은 데이터 조각을 원하는 곳에 배치할 수 있도록 해줍니다.
장점
데이터가 요청이 들어오면 데이터 블록을 다시 조합
하여 사용자에게 제공합니다.
데이터를 효율적이고 안정적으로 저장하는 방법이며 사용과 관리도 간편합니다.
대규모 트랜잭션을 수행하는 기업과 대용량 데이터베이스를 배포하는 기업에서 많이 사용합니다.
단점
SAN
을 사용하기에 비용이 비쌉니다.
메타데이터
를 처리하는 기능이 제한적이므로 주의해야합니다.
메타데이터 : 데이터에 대한 데이터입니다.
예를 들어 디지털 카메라에서 사진을 찍을 때 카메라 자체의 정보, 촬영 당시의 시간, 노출,
플래시 사용 여부, 해상도등 사진정보를 저장하는 데 이러한 데이터를 분석하여 이용하면
그 뒤 사진을 적절하게 정리하거나 다시 가공하여 유용한 정보로 사용할 수 있습니다.SAN : 기존 인프라를 무시하고 스토리지만을 위한 고속 네트워크를 새로 구축하자는 개념,
서버에 관계없이 대규모 확장이 가능하면서도 서버 다운 없이 확장 시킬 수 있습니다.
단점은 네트워크 구성에 들어가는 장비들의 가격이 비싸기 때문에 SAN 역시 비용이 비쌉니다.
object
로 불리는 각각의 데이터 단위가 개별 단위로 저장되는 데이터 저장소 유형입니다.파일 스토리지와 대조적으로, 오브젝트는 폴더 계층 구조 없이 단일한 평면 구조
로 저장됩니다.
평면 구조는 개별 오브젝트에 대한 접근이 빠르고 쉽다는 장점이 있습니다.
오브젝트 이름인 키
만 알고 있으면 색인 테이블을 사용하여 빠르고 쉬운 검색이 가능합니다.
가장 큰 장점 3가지는 확장성
,속도
,저렴한 가격
입니다.
오브젝트 스토리지는 오로지 2가지 키값과 데이터만 저장합니다.
마찬가지로 오브젝트 스토리지는 RESTFul Protocol(HTTP)를 이용하여 Get 혹은 Post로 요청을 하면 파일을 내려줍니다.
장점
또한 파일에 대해 가지고 있는 정보가 적기 때문에 파일이 아무리 많아져도 블록 스토리지나 파일 스토리지에 비해서 빠르게 작동합니다.
공간을 아주 효율적으로 사용할 수 있기 때문에 저렴
합니다.
이미지나 동영상같이 수정이 잘 일어나지 않는 정적인 데이터
를 호스팅할때 좋습니다.
단점
파일의 수정이 불가능
합니다.
파일이 수정될때 트랜잭션을 통해 일관성을 유지하기가 힘들기 때문에 덮어쓰는 방법
을 이용합니다.
내구성이 블록 스토리지에 비해 떨어지기 때문에 내구성을 상당이 요하는 데이터
를 처리하기 힘듭니다.
S3는 크게 4가지로 구분할 수 있습니다.
버킷 | 객체 | 키 | Regions |
---|
객체들을 담는 통
이라고 생각하시면 좋습니다.객체 데이터와 메타 데이터로 이루어져 있는데 이 부분은 S3에서 확인이 불가능합니다.
키 및 버전 ID
로 구분한다고 생각하시면 됩니다.
버킷 내 객체의 고유한 식별자
입니다. 버킷 내 모든 객체는 정확히 하나의 키를 갖습니다.
버킷, 키 및 버전 ID의 조합은 각 개체를 고유하게 식별합니다.
지역
이라 생각하면 됩니다. 나라별로 존재하며 한국 리전은 2016년 생성되었습니다.
특정 리전에 저장된 객체는 사용자가 명시적으로 객체를 다른 리전으로 전송하지 않는 한 해당 리전을 벗어나지 않습니다.
S3를 공부하면서 알게된 지식들을 공유하며 정리하는 차원에서 작성하였습니다.
부족한 부분이나 틀린 부분이 있으면 알려주시면 감사하겠습니다.