Search
Duplicate
📒

[AWS - SAA] 09-1. S3 개념 / 스토리지 클래스

상태
완료
수업
AWS - Solutions Architect
주제
AWS-DB
연관 노트
3 more properties
참고

S3 (Simple Storage Service)

NOTE
업계 최고의 확장성과 데이터 가용성 및 보안과 성능을 제공하는 온라인 오브젝트(객체) 스토리지 서비스이다!
데이터를 온라인으로 오브젝트 형태로 저장하는 서비스!
온라인이 붙는 이유는 데이터 조작에 HTTP/HTTPS를 통한 API가 사용되기 때문이다.
객체S3 버킷에 저장되는 하나의 데이터를 의미
또한 UI 인터페이스를 통해 어디서나 쉽게 데이터를 저장하고 불러올 수 있어 개발자가 쉽게 웹 규모컴퓨팅 작업을 수행할 수 있도록 한다.
데이터 양에 대한 비용도 저렴하고, 저장할 수 있는 데이터양이 무한에 가깝다.

S3 객체 스토리지 특징

NOTE
객체 스토리지 = 객체로 된 파일을 다루는 저장소!
반대개념으로 EBS가 있다.
OS나 게임 프로그램을 본체에 꽃혀있는 하드라는 스토리지에 저장하고 구동시킨다. 이는 매우 자연스러운 동작이지만 S3에서는 불가능하다. S3에 파일을 설치하는 행위는 불가능하고, 그냥 이미지나 영상 파일 등만 저장할 수 있음.
⇒ 파일 업로드, 삭제, 업데이트만 가능하다!

S3을 사용하는 이유

NOTE
S3저장 용량이 무한대이고 파일 저장에 최적화 되어있다. 용량을 추가하거나 성능을 높이는 작업이 필요없다.
비용은 EC2와 EBS로 구축하는 것보다 훨씬 저렴하다
S3 자체가 수천 대 이상의 매우 성능이 좋은 웹 서버로 구성되어 있어 EC2와 EBS로 구축했을 때 처럼 Auto Scaling이나 Load Balancing에 신경쓰지 않아도 된다.
S3 자체로 정적 웹서비스가 가능하다. (html 파일을 저장하고 접근시킨다.)
동적 웹페이지와 정적 웹페이지가 섞여 있다면, 동적 웹페이지만 EC2에서 서비스하고 정적 웹페이지를 S3로 한다면 성능도 높이고 비용도 줄일 수 있다.
이외에도 아카이브, 데이터 레이크를 보유한 빅데이터 분석, 하이브리드 클라우드 저장소로 사용

S3 버킷 / 객체 개념

NOTE
S3에는 BucketObject라는 개념이 있다!
Bucket안에 Objet들이 관리됨

Bucket

User라는 이름의 버킷에 profile.png를 저장한다. ⇒ http://User.s3.amazonws.com/profile.png url 생성
객체를 저장하고 관리하는 역할
디렉토리/폴더 개념으로 키는 파일명으로 이해해도 된다.

Object

데이터메타데이터를 구성하고 있는 저장 단위
메타데이터 ⇒ 최종 수정일, 파일 타입등을 의미한다.
S3에 저장되는 모든 데이터는 객체라고 부르면 된다.
객체는 키를 통해 버킷에서 유일한 것으로 식별도리 수 있으며, 버킷에 존재하는 모든 객체는 단 하나의 키를 가진다.

S3 보안

NOTE

사용자 기반

IAM으로 권한을 가지고 있음!
IAM 정책

리소스 기반

버킷 정책
Bucket에서 허용하는 계정에대해 설정!
{ "Version": "2012-10-17", "Id": "Policy1685336299656", "Statement": [ { "Sid": "Stmt1685336292683", "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::bohyeon-demo-s3/*" } ] }
JSON
복사
위의 정책은 S3 객체에 대해 모든사람이 접근하도록 해줌
S3 콘솔에서 직접 할당할 수 있는 전체 버킷 규칙으로 버킷의 보안을 관리하는 일반적인 방법
JSON으로 구성됨
객체 액세스 제어 목록
버킷 액세스 제어 목록

암호 키를 사용하여 객체 암호화

S3 버전관리

NOTE
파일에 버전 아이디를 붙임으로서, 버전관리를 사용해 S3 버킷에 저장된 모든 객체의 버전을 보존, 검색 및 복원할 수 있다!
기존 파일은 다른걸로 업데이트해도 버저닝으로 남아있음!
실제 index.html을 업데이트하고 버전관리로 확인한 결과
null 버전의 객체를 삭제하더라도 바로 삭제되는것이 아닌, 삭제 마커를 붙여 바로 복구할 수 있는 기능을 제공한다.
이전버전으로 쉽게 롤백 가능

S3 복제

NOTE
해당 버킷에 파일을 올리면 bucket v3에도 이제 파일이 같이 올라간다!
CRR (Cross Region Replication)
두 리전이 다를 때
SRR (Same Region Replication)
두 리전이 같을 때
복제를 활성화한 후에 새로운 업로드 된 객체만 복제 대상이 되고 기존 객체 복제를 위해선 S3 배치 복제 기능 사용
aws s3 sync 명령어를 사용해 소스 버킷에서 대상 버킷으로 복사가능

S3 스토리지 클래스

NOTE
간단하게 보는 전체 클래스
세부적으로 보기
내구성
99.999..%의 내구성 보장 ⇒ 천만 개의 객체 저장 시 10,000년에 한 번 객체 손실 예상
가용성
서비스가 얼마나 용이하게 제공되는지를 나타내며 스토리지 클래스에 따라 상이

Standard

NOTE
기본적으로 사용하는 스토리지 유형
99.99%의 가용성
자주 엑세스하는 데이터에 사용
지연 시간이 짧고, 처리량이 높으며 AWS에서 2개의 기능 장애를 동시에 버틸 수 있음

Standard-IA (Ifrequent Access)

NOTE
자주 액세스 하지는 않지만 필요할 때 빠르게 액세스 해야 하는 경우
Standard보다 비용이 적게 들지만 검색 비용이 발생
99.9%의 가용성
재해 복구와 백업 자료 보관등에 사용

One Zone-IA

NOTE
Standard-IA와 기능은 동일하지만 단일 AZ에만 저장
99.5%의 가용성
온프레미스 데이터를 2차 백업하거나 재생성 가능한 데이터 저장에 사용

Glacier

NOTE
아카이빙과 백업을 위한 저비용 객체 스토리지, 최소 보관 기간 90일
Glacier Instant Retrieval
밀리초 단위로 검색 가능하고 분기에 한 번 액세스 하는 데이터에 적합
최소 보관 기간이 90일
Glacier Flexible Retrieval
Expedited - 데이터 검색에 1~5분 소요
Standard - 데이터 검색에 3~5시간 소요
Bulk - 비용은 무료이지만 데이터 검색에 5~12시간 소요
Glicier Deep Archive
최소 보관 기간 180일
Standard - 데이터 검색에 12시간 소요
Bulk - 데이터 검색에 48시간 소요
오래 걸리지만 가장 저렴

Intelligent Tiering(지능형 계층화)

NOTE
사용 패턴에 따라 액세스 된 티어 간에 객체 이동 가능
소액의 월별 모니터링 비용과 티어링 비용이 발생하지만 검색 비용은 발생하지 않음
예측할 수 없는 패턴으로 거의 접근이 안되는 경우
Fequent Access 티어 - 기본 설정
Infrequent Access 티어 - 30일 동안 액세스 하지 않는 객체 전용 티어
Archive Instant Access 티어 - 90일동안 액세스 하지 않는 객체 전용 티어
Archive Access 티어 - 선택사항, 90~700일 이상사용하지 않는 객체에 구성 가능한 티어