본 포스팅은 유튜브 AWS 강의실 님의, 강의를 바탕으로 작성되었습니다.
https://www.youtube.com/watch?v=LazOCTfdSeQ&list=PLfth0bK2MgIan-SzGpHIbfnCnjj583K2m&index=21
S3
S3는 SIMPLE STORAGE SERVICE로, S 3개를 포함해서 S3라고 부릅니다. S3는 99.999999999%(eleven nine) 내구성을 제공합니다. 전 세계 기업의 수백만 애플리케이션을 위한 데이터를 저장합니다. 이는 객체 스토리지 서비스로, 파일을 저장하기 위해서 사용됩니다. 단 S3는 이런 특징을 가집니다.
- 애플리케이션 설치 불가능
- 글로벌 서비스 단, 데이터는 리전에 저장
- 데이터가 해당 리전을 나가지 않아야합니다.
- 무제한 용량
- 하나의 객체는 0BYTE에서 5TB의 용량
- 5TB가 넘으면 나눠서 저장하면 됩니다.
99.9% SLA 가용성(스토리지 클래스에 따라 다름)을 제공합니다. 즉 내가 원할 때 그 파일을 쓸 수 있는 확률이 99.9%에 달한다고 보시면 됩니다. 또 S3의 모든 버킷은 새로 생성시 기본적으로 PRIVATE이며, 따로 설정을 통해 불특정 다수에게 공개 할 수 있습니다(i.e. 웹 호스팅).
보안 설정은 객체 단위와 버킷 단위로 구성되는데
- BUCKET POLICY : 버킷 단위
- ACL(ACCESS CONTROL LIST) : 객체 단위 : 요즘은 잘 사용되지 않습니다.
MFA를 통한 삭제 또한 가능하며, Versioning을 통해서 복구, 이전 버전 롤백 등의 파일 관리 또한 가능합니다. 액세스 로그를 생성하고 전송할 수 있으며, 다른 버킷이나 다른 계정으로도 전송 가능합니다.
S3 - 버킷
- S3의 저장공간을 구분하는 단위. 디렉토리/폴더와 같은 개념으로 생각하시면 됩니다.
- 버킷이름은 전세계에서 고유값 : 리전에 관계없이 중복된 이름이 존재할 수 없습니다.
- S3 스태틱 호스팅 같은 것에서 굉장히 중요합니다.
S3 객체의 구성
- S3 객체의 구성
- OWNER ; 소유자
- KEY : 파일의 이름
- VALUE : 파일의 데이터
- VERSION ID : 파일의 버전 아이디
- METADATA : 파일의 정보를 담은 데이터(메타만 담아서 쓸 수 도 있다.)
- ACL : 파일의 권한을 담은 데이터
- TORRENTS : 토렌트 공유를 위한 데이터
S3 스토리지 클래스
S3는 다양한 스토리지 클래스를 적용할 수 있습니다. 클래스 별로 저장의 목적, 예산에 따라 다른 저장 방법을 적용할 수 있습니다. 총 8가지 클래스가 있는데 하나씩 알아보도록 하겠습니다.
S3 스탠다드
- 99.99% 가용성
- 99.999999999% 내구성
- 최소 3개 이상의 가용영역에 분산 보관
- 최소 보관기간 없음, 최소 보관 용량없음
- 파일 요청 비용 없음(전송 요금은 발생)
- 0.025/gb(Seoul Regin 기준) : s3에 저장을 많이 할수록 줄어듭니다.
S3 스탠다드 IA (Infrequently Accessed)
- 자주 액세스 되지 않는 오브젝트를 위한 클래스
- 자주 사용되지 않는 데이터를 저렴한 가격에 보관
- 최소 3개의 가용영역에 분산 보관
- 최소 저장 용량 128kb
- 최소 저장기간 : 30일
- 즉 1일만 저장해도 30일의 요금 발생
- 데이터 요청 비용 발생 : 데이터를 불러올 때마다 비용 지불(per GB)
- 사용 사례 : 자주 사용하지 않는 파일 중 중요한 파일
- $0.0138/GB
S3 one zone-IA
- 자주 사용하지 않고, 중요하지 않은 데이터를 저렴한 가격에 보관
- 단 한개의 가용영역에만 보관
- 최소 저장용량 : 128 kb
- 최소 저장 기간 30일
- 즉 1일만 저장해도 30일의 요금 발생
- 데이터 요청 비용 발생 : 데이터를 불러올 때마다 비용 지불(per gb)
- 사용 사례 : 자주 사용하지 않으며 쉽게 복구할 수 있는 파일
- $0.011/gb(seoul regin 기준)
S3 glacier instant retrieval
- 아카이브용 저장소
- 최소 저장 용량 : 128kb
- 최소 저장 기간 : 90일
- 바로 액세스 가능
- 사용 사례 : 의료 이미지 혹은 뉴스 아카이브 등(아카이브 시켜놨다고 하더라도, 바로바로 꺼내 쓸 수 있어야함)
- $0.005/gb
S3 Glacier Flexible Retrieval
- 아카이브용 저장소
- 최소 저장 용량 : 40kb
- 최소 저장 기간 : 90일
- 분~ 시간 단위 이후 액세스 가능
- 사용 사례 : 장애 복구용 데이터, 백업 데이터 등
- $ 0.0045/gb(seoul 기준)
S3 Glacier Deep Archive
- 아카이브용 저장소
- 최소 저장용량 : 40kb
- 최소 저장 기간 : 90일
- 데이터를 가져오는데 12시간 ~ 48시간 소요
- 사용 사례 : 오래된 로그 저장, 사용할 일이 거의 없지만 법적으로 보관해야하는 서류 등
- 0.002/gb
S3 intelligent-Tiering
- Devops로서, 솔루션즈 아키텍트로써
- 내가 신경 쓸 필요없이 알아서 파일들이 변경
- 머신러닝을 사용해 자동으로 클래스 변경
- 퍼포먼스 손해/ 오버헤드 없이 요금 최적화
S3 on outposts
- 온프레미스 환경에 s3 제공
- 내구성을 확보한 상태로 파일을 저장하도록 설계
- IAM, S3 SDK 등 사용가능
다음 포스팅에선 S3 프리티어를 활용해서, 버킷을 생성해보고 boto3 라이브러리를 활용해서 python에서 데이터를 S3로 업로드 해보겠습니다. 감사합니다;)
'AWS' 카테고리의 다른 글
[AWS REDSHIFT] AIRFLOW S3 → Redshift UPSERT 관련 에러('syntax error at or near "#"') (0) | 2023.06.17 |
---|---|
[AWS LAMBDA] DOCKER 활용 AWS LAMBDA 딥러닝 모델 적용 (1) | 2023.06.11 |
[S3] 버킷 생성 및 boto3 파일 업로드, 파일 읽기 실습 (0) | 2023.05.14 |
[EC2]AWS EC2 MOBAXTERM 연결 (0) | 2023.04.16 |
[EC2] AWS EC2 VSCODE 연결 (1) | 2023.04.16 |