오브젝트 스토리지의 개념
배경
- 현재 우리는 생활의 대부분이 온라인으로 연결되어 소셜 네트워크, 카카오톡, 인스타 그램 등에 글,사진 및 동영상 등을 올립니다. 뿐만아니라 스트리밍 등을 통해서 실시간으로 음악을 들으며, 드롭박스와 같은 스토리지 서비스를 이용하면서 가족사진과 많은 데이터 들을 저장하고 사용하고 있습니다. 이처럼 클라우드 컴퓨팅의 다양한 기능 중에 데이터 저장과 관련된 많은 서비스 들이 우리에게 매우 익숙한 일상이 되었으며, 이제는 없어서는 안될 중요한 생활의 요소가 되었습니다. 오브젝트 스토리지는 이러한 클라우드 데이터 저장 공간으로서 우리의 일상뒤에 가려져 있는 많은 클라우드 서비스와 연관되어 사용하고 있습니다
비정형 데이터란 ?
- 일정한 규격이나 형태를 지닌 숫자 데이터와 달리 그림이나 영상, 문서와 같이 형태와 구조가 각기 다른 구조화 되지 않은 데이터
정형 데이터란 ?
- 텍스트와 같이 일정한 규격과 형태를 가진 데이터 형식
Block Storage( 기존의 스토리지 ) 란 ?
- Block Storage는 일반적으로 파일 시스템이 디렉토리 구조로 파일을 계층화 하여 저장
- 데이터를 파일 규칙에 따라 관리하고, 특정 영역과 구간을 나눠 데이터를 블록 단위로 관리 하는 스토리지
Object Storage란 ?
- 비정형 데이터를 안정하게 저장하고 관리하기 위해 등장
- 오브젝트 스토리지는 파일에 대한 구체적인 정보를 포함한 메타데이터를 자동으로 생성, 보관, 관리 하는 방식으로 데이터를 저장
- 데이터의 물리적인 위치는 상관 없이 사용자나 서버에서 식별할 수 있는 ID를 오브젝트에 부여하여 관리하는 스토리지
- 데이터와 식별 가능한 ID, 메타데이터를 하나의 오브젝트로 묶고 이것을 컨테이너에 저장하고 동일한 레벨로 관리 하는 방식을 취함
- 이런 관리 방법을 통해 파일을 저장할 때, 해당 파일과 메타데이터를 생성하여 함께 관리 하는 방식을 가짐
- 이런 관리 방법에 따라 비정형 데이터에 정형성을 부여함으로서 훨씬 많은 양의 콘텐츠를 보다 효율적이고 지능적인 방식으로 저장 관리 할 수 있도록 함
- 이런 관리 방식을 통해 비정형 데이터라도 메타데이터를 이용해 신속한 파일 검색 및 분석으로 또 다른 가치를 얻거나 링크 주소를 통한 파일 공유 등 비정형 데이터에 대한 접근 지원
- 단점으로는 Throughput의 문제가 있음
> 하나의 파일을 업데이트 할 때마다 모든 복제본이 업데이트 될 때까지 기다려야 하기 때문에 데이터를 자주 바꿔야 하는 업무에는 권장하지 않음
- 백업, 아카이빙 비디오 파일, 가상머신 이미지 파일 등의 데이터를 저장하는데 적합
- 오브젝트 스토리지는 발레파킹과 같다고 생가하면 됨
> 발레 파킹의 경우 음식점에 들어가기 전 발레파킹 서비스를 받기 위해 키를 맡기게 되면 주차요원이 알아서 주차를 해주고, 음식을 다 먹고 나왔을 때, 번호표를 전달해 주면 차를 다시 앞으로 가져 오는 것처럼 차의 주차 위치가 어디인지를 알아볼 필요가 없는 것 처럼 파일이 어디에 저장되어 있는지 사용자는 알필요가 없으며, ID를 기반으로 해당 파일에 접근만 하면 되는 구조라고 생각하면 됨
Blob Storage란 ?
Blob Storage란 HTTP와 HTTPS를 통해서 어느 장소에서든 접근이 가능하도록 되어진 방대한 양의 비정형 데이터를 저장하기 위한 스토리지이다
Blob 이란 ?
일반적으로 Blob이라는 단어는 "Binary Large Object"라고 이해되고 있다
데이터베이스에서 Blob은 데이터베이스에 의해서 정의 되어진 타입(텍스트,숫자)을 따르지 않고 저장되어진 데이터를 말한다.
아마, 위와 비슷한 의미로 생각하면 될 것. 다시 말해 비정형 데이터
Azure의 Blob Storage를 무엇을 위해서 사용 할까 ?
Blob Storage를 사용하는 일례는 웹사이트에서 빈번하게 사용되어지는 이미지, CSS Files, PDF와 같은 고정된 파일이 될 수 있다.
URL변경으로 인하여 파일을 Blob Storage에서 다시 받아오게 될 경우, Web Server에 요청하는 부하를 감소 시킬 수 있다.
만약 Web Roles과 Worker Roles 등과 같은 PaaS의 기능을 사용하면, 어플리케이션 성능을 더욱 향상 시킬 수 있다.
또한, 다수의 파일이 빈번하게 변화되는 환경에서 그 파일을 Blob Storage에 위치시키게 되면 웹 사이트를 새롭게 배포할 필요 없이 바로 변경된 파일을 적용시킬 수 있다
예를들어, 만약 어느 기업의 로고 이미지 파일을 Blob Storage안에 넣었고, 매번 회사 기업 로고 이미지 라인이 변경된다고 하면, 관리자는 변경되는 기업 이미지만 변경해서 Blob Storage에 저장 하면 된다
다른 예는 Blob Storage를 거대한 Queue 메시지의 Temporary의 영역으로 사용하는 것이다
Blob Storage의 종류는 어떤 것들이 있을까 ?
2가지 종류의 Blob이 있다
- Block Blob
- Block Blob는 각각의 유니크한 BlockID를 가지고 있는 Block으로 만들어진다
- Block Blob은 저장될 때, 연속적으로(Sequence) 저장된다.
- 하나의 대용량 파일을 저장할 때 사용한다.
- Block은 대용량의 파일
- Block Blob의 최대 크기는 200GB이다
- 1번의 업로드 blob의 크기는 64MB이다
- Block의 제한 크기 4MB
- 최대 Block의 개수는 5000개
- 동시에 업로드를 진행 할 수 있다
- 64MB 이상의 Block blob은 프래그램적으로 나뉘어서 업로드 가능하다
- 업로드 이후 Azure는 그 파일을 하나의 사용 가능한 파일로 백단에서 만들어 준다
- Page Blob
- Page는 데이터의 범위로 정의함
- Page Blob은 512 bytes 크기의 페이지를 모아서 만들어진다
- Random read와 Write의 성능이 필요한 경우에 사용한다
- Page Blob은 1TB 사이즈 까지 지원
- Azure Storage의 Page Blob안에 VHD(Virtual Hard Disk)로 OS, Data Disk로 저장 된다