

스토리지의 종류
객체 스토리지(Object Storage) : 데이터를 객체로 관리 (아이디 + 데이터 + 메타 데이터)
방대한 확장성, 메타 데이터 → 규모와 유연성이 필요한 애플리케이션 구축에 적합
데이터를 일부분만 수정하는 것이 불가능함
분석, 백업, 아카이브 목적
파일 스토리지(File Storage) : 데이터를 파일로 관리, 파일 시스템의 다양한 경로에 파일들이 존재함(계층적)
파일 시스템을 통한 파일 단위의 저장 → 공유 파일 액세스, 파일 시스템 필요 시 적합
파일의 일부분만 수정 가능
NAS, 대규모 콘텐츠 리포지토리, 미디어 스토어, 사용자 홈 디렉터리 등
| 객체 스토리지(객체의 고유 ID) | 파일 스토리지(파일의 경로) |
|---|---|
| 객체 데이터 일부분만 수정 불가능 | 파일 내용 일부분만 수정 가능 |
| 운영체제에서 직접 접근 불가 | 운영체제에서 직접 접근 가능(볼륨 마운트) |
| 큰 확장에 유연하게 대처 가능 | 큰 확장에 대처하기 어려움 |
| 다수의 사본을 분산시켜 저장(안정성) | 사본을 저장하지 않음 |
블록 스토리지(Block Storage) : 데이터를 블록(저장 공간을 나누는 단위)으로 관리, 각 블록은 고유한 주소 또는 식별자를 가짐
블록 스토리지는 개별 가상 서버로 프로비저닝되어 낮은 지연 시간 제공 → 고성능 워크로드 사용에 적합
순수한 데이터 블록만을 저장함
데이터베이스 시스템, 가상 머신, 클라우드 스토리지 등
EBS가 블록 스토리지에 속함
S3란?

S3 (Simple Storage Service) : 객체 기반의 무제한 파일 저장 스토리지
AWS의 클라우드 스토리지 : S3(Simple Storage Service, 객체 스토리지), EFS(Elastic File System, 파일 스토리지), EBS(Elastic Block Store, 블록 스토리지)
URL을 통한 파일 공유, 안전하게 파일 저장 가능
정적 웹사이트 호스팅 기능
다른 AWS 서비스와 쉽게 통합해서 사용 가능
주로 수정이 잘 일어나지 않는 최종 파일을 저장하는 용도 (파일의 일부분만 수정 불가)
빠른 Read/Write 요구 시 부적합함 (미디어 파일, 로그 파일 보관에 적합)
데이터 백업에도 적합함
S3 관련 용어
Bucket(버킷) : 객체를 담는 최상위 단위 (이름, 개수 제한)
Object(객체) : Bucket에 담는 데이터 단위 (파일)
Metadata(메타데이터) : Object에 대한 여러 가지 정보를 담은 데이터
Policy(정책) : Bucket, Object에 대한 접근을 통제하는 권한 정보
S3 사용 방법 : Bucket 생성 → HTTP로 Bucket에 파일 업로드 → Object에 권한 설정 → HTTP로 Bucket에서 파일 다운로드
S3 스토리지 클래스 : 스토리지를 저장하는 형태
S3 Standard : 자주 액세스하는 객체를 위한 스토리지 클래스, 최소 3개의 가용 영역(AZ)에 데이터 저장
S3 Standard-IA : 자주 액세스하지 않지만(Infrequent Access) 빠르게 액세스해야 하는 객체를 위한 스토리지 클래스, 최소 3개의 가용 영역(AZ)에 데이터 저장
S3 OneZone-IA : 자주 액세스하지 않는(Infrequent Access) 객체를 위한 스토리지 클래스, 단일 가용 영역에만 데이터 저장, 복원력이 없음
S3 Glacier : 데이터 아카이빙을 위한 백업 스토리지(자주 액세스하지 않는 객체를 저렴한 비용으로 보관하기 위한 스토리지 클래스)
객체의 라이프사이클에 따라 스토리지 클래스를 변경하여 비용 효율적으로 객체 보관 가능

S3 버킷 생성하기
S3에서는 리전을 선택할 필요가 없음 (버킷에 대한 리전만 지정)
버킷 이름은 DNS 형식으로 전 세계에서 유일해야 함 (중복 X)
퍼블릭 액세스 차단 시 외부에서 버킷에 있는 객체에 접근 불가




파일 업로드 및 다운로드
객체 URL(객체의 고유 주소)에는 버킷의 이름과 객체의 ID가 포함됨




폴더 생성
S3에서 폴더는 파일 이름의 Prefix 개념 (객체 스토리지에서는 모든 파일이 depth 1인 tree로 저장되기 때문)






Cyberduck으로 S3 다루기









S3 정적 웹사이트 호스팅
속성 탭


index.html 파일 업로드 후 최상위 경로에 업로드<html>
<head>
<title>S3 정적 웹 사이트 호스팅</title>
</head>
<body>
<h1>Hello, S3!</h1>
</body>
</html>

접속이 안 되는 이유는 버킷에 있는 객체에 접근 권한이 없기 때문임
모든 사용자가 접근할 수 있도록 wildcard(*)로 Principal 설정









S3 버킷 삭제하기
버킷이 비어있어야 삭제 가능
버킷 삭제 후 곧바로 같은 이름으로 버킷을 만들기는 어려울 수 있음




📢 세 줄로 정리해보기!
1️⃣ S3(Simple Storage Service)란 객체 기반의 파일 저장 스토리지로, 파일 기반 스토리지와 달리 데이터의 일부분만 수정이 불가능한 대신 확장성이 높고 안전하게 파일을 저장할 수 있다.
2️⃣ S3를 사용할 때는 먼저 Bucket(버킷)을 생성하고 파일을 업로드한 다음 Object(객체)의 권한을 설정하여 HTTP로 파일을 다운받을 수 있다.
3️⃣ S3를 사용하면 URL을 통해 파일을 공유하고 정적 웹사이트를 호스팅할 수 있으며 데이터 백업에도 적합하다.
참고 자료
└ 소플의 처음 만난 AWS
└ S3 개념 & 버킷 · 권한 설정 방법