개요
- S3란?
Simple Storate Service의 약자로 AWS가 제공하는 클라우드 기반 객체 스토리지 서비스임
일반적으로 클라우드 기반의 Storage는 크게 3가지 형태로 나눠짐
1) 파일 스토리지
일반적으로 윈도우, 맥과 같이 폴더와 파일을 기반으로 저장되는 구조의 스토리지임
파일을 저장할 때, 파일을 저장할 폴더를 생성하고 해당 폴더의 경로와 파일을 함께 저장해, 여러 계층으로 구성된 폴더와 파일을 구성할 수 있음
파일 스토리지는 폴더/파일 만으로 구성된 간단한 구조이기 때문에, 파일에 대한 정보 외에 부가적인 데이터(메타 데이터)를 함께 저장하기에는 제한적임
또, 계층의 규모가 커질수록(폴더가 많아질수록) 데이터의 탐색이 느려지고, 자원에 대한 요구가 많아짐
2) 블록 스토리지
블록 단위로 데이터를 저장하는 스토리지 구조로 클라우드 환경에서 자주 사용됨
데이터를 저장할 때 블록으로 분할한 후, 분할된 블록을 고유한 ID로 구분해 저장함
이 과정에서 블록을 저장할 공간으로 가장 효율적인 스토리지 내 공간을 할당함
데이터를 원본 그대로가 아닌 블록 단위로 분할하여, 독립적으로 저장하는 구조의 특성상 운영체제에 종속적이지 않게 데이터를 저장할 수 있음
파일 스토리지에 비해, 탐색 시 더 빠른 효율을 보여줌
But, 스토리지 자체적으로 읽기/쓰기 등의 기능 수행 불가
3) 객체 스토리지(오브젝트 스토리지) cf) 내가 프로젝트 때 사용했던 방식
저장하는 객체 단위 그 자체만으로 저장되는 평면적(계층 구조x) 저장 공간
저장된 데이터의 독립적인 url이 제공됨
- S3의 특성
클라우드 기반의 객체 스토리지로써 저장되는 객체마다 독립적인 접근 경로, 권한, 메타데이터를 제공 및 구성할 수 있음
AWS의 KMS 등을 통해 데이터를 암호화하여 특정 키로 관리되도록 할 수 있으며, 객체의 저장 공간에 정해진 크기가 없이, 필요한 만큼 데이터를 무한히 저장할 수 있음
- S3 관련 용어
버킷: S3에 데이터를 저장하기 위해 생성하는 스토리지 단위
버킷 버전 관리: 스토리지에 저장되는 객체들에 대해 버전 관리 기능을 적용하여 복구, 검색, 복원 등 장애 및 실수를 복구할 수 있는 기능 제공
-ACL: Access Control List로, ACL을 활성화하면 객체에 대한 접근 권한을 내 계정 외에 다른 계정에게도 부여할 수 있음 (But, 특별한 경우 아니라면 비활성화하는 것 권장)
- CloudFront란?
- S3와 CloudFront를 이용한 정적 웹사이트 배포하기
1) S3 생성
2) S3에 정적 웹사이트 업로드
3) CloudFront 생성 및 Origin으로 S3 연결
4) 테스트
- 정리
대부분의 경우 S3에 저장되는 파일이 내부에서만 쓰는 문서가 아니라면 S3는 대부분 CloudFront와 함께함
두 개가 조합된 상태에서의 콘텐츠 전달 속도와 관리 편의성은 개발자의 걱정을 덜어줌