ㆍS3(Simple Storage Service) : Web service 인터페이스를 통한 언제 어디서든 원하는 양의 데이터를 저장 및
검색 할 수 있는 AWS에서 제공하는 객체(Object) 스토리지 서비스
ㆍS3의 구조
- 버킷(Bucket) : 객체를 저장하고 관리(객체를 담는 바구니(Bucket)임)
* 한 계정 당 버킷은 최대 100개까지 사용이 가능
- 객체(Object) : 데이터와 메타데이터를 구성하는 저장 단위
* 객체는 하나 당 1Byte 에서 최대 5TB까지 저장 가능, 객체의 수는 제한이 없음
ㆍS3의 특징
- 확장성 : 무제한급의 확장성을 제공, 성능 또는 안정성의 저하 없이 원하는 수준의 어플리케이션 확장 가능
- 업계 최고 수준의 내구성과 가용성
- 보안 : 데이터를 보호하는 다양한 보안기능 제공
▪️ 데이터 암호화 : S3는 모든 버킷에 업로드 되는 모든 객체를 전부 자동으로 암호화(전송 중 암호화(SSL/TLS) 가능)
▪️ 액세스 관리 : IAM, ACL, 버킷 정책 등을 통한 사용자 액세스 권한 관리
▪️ 퍼블릭 액세스 차단 : 계정의 모든 버킷에 적용하여 객체에 대한 퍼블릭 액세스를 차단할 수 있음.
▪️ 객체 잠금(Object Lock) : 고객이 정의한 보존 기간 동안 객체 버전 삭제 차단
⮞ 리텐션 모드
- 규정 준수(Compliance) 모드: AWS 개정의 루트 사용자를 포함하여 그 어떤 사용자도 객체를 수정할 수 없음
- 거버넌스(Governance) 모드: 권한이 있는 사용자가 객체를 수정(삭제 및 덮어쓰기)할 수 있음
⮞ 객체 보관 관리 방법
- 보관 기간 : 객체 잠금 고정 기간 지정, 해당 기간 동안 WORM으로 보호되며 수정 불가능
- 법적 보존 : 보관 기관과 동일한 보호를 제공하나 만료날짜가 없음(영구적임)
그러나, PutObjectLegalHold IAM 권한이 있는 사용자는 설정/해지가 가능함.
▪️ 감사 로그 : S3 리소스에 대한 요청 목록을 표시하는 감사 로그를 지원
▪️ Amazon Macie : 기계학습과 패턴일치를 사용하여 민감한 데이터 및 데이터 보안위험에 대한 가시성 제공
Data를 S3 버킷에 저장, 요청 어플리케이션에 Data 반환 전 S3 객체 Lambda를 사용하여
데이터 처리 및 변환
(개인식별정보(PII) = Macie)
- 고성능의 스토리지
- 저렴한 비용
ㆍS3의 기능
- 멀티파트 업로드(Multi-part Upload)
▪️ 오브젝트를 조각내어 병렬 처리하여 처리량을 개선하는 방법
▪️ 객체 크기 100MB 이상일 경우 사용을 권고함, 최대 크기는 5TB
▪️ 최대 1만개까지 조각낼 수 있으며 조각의 크기는 5MB ~ 5GB 정도이다
- 버전 관리(Version Management)
▪️ 동일 객체에 여러 버전을 가질 수 있게하는 기능
(내용을 변경하여 업데이트시 기존 버전이 사라지지 않고 이전 버전으로 동시에 존재함)
▪️ 최신(현재) 버전과 이전 버전 모두 확인이 가능
▪️ 객체 삭제시 바로 삭제가 되지 않고 삭제 마커를 붙여 다시 복구할 수 있는 기능 제공(like 휴지통)
- 수명 주기 정책(Lifecycle Management)
▪️ S3에 있는 스토리지를 다른 타입으로 변경하는 기능
Standard에 저장한 데이터를 더이상 사용하지 않을 경우 Glacier Type으로 변경하여 저장할 수 있음
▪️ 현재 버전과 이전 버전에 대해 별도 설정이 가능
▪️ 미완료된 멀티파트 업로드와 버전관리가 적용된 객체의 삭제 마커를 정리할 수 있다.
▪️ 더 이상 사용하지 않는 객체에 만료기간 설정하여 일정 기간 이후 삭제 가능(만료기간 설정)
▪️ Standard-IA에서 One Zone-IA로 이전 시 최소 30일 기간 운용(저장) 후 가능함
▪️ 스토리지 간 이전 시 추가 비용 발생 등 특정 조건과 제약사항이 생길 수 있음.
- 정적 웹사이트 호스팅 : S3를 사용하여 정적 페이지를 제공하는 호스팅 기능 제공,
별도 서버 없이 S3만 사용하여 호스팅 가능하며 요청을 다른 버킷이나 도메인으로 리디렉션 가능
- CORS(Cross-Origin Resource Sharing)
▪️ 서로 다른 출처에서 리소스를 공유하는 방식으로, 클라이언트 웹 애플리케이션이
타 도메인의 리소스와 상호작용할 수 있도록 허용하는 것
▪️ CORS를 사용하면 클라이언트 브라우저에서 데이터 전송 전 3rd 파티 서버를 확인 후 요청 승인 여부를
확인할 수 있기 때문에 이를 통해 CSRF 공격을 방지할 수 있다.
- 암호화의 종류
▪️ 클라이언트 측 암호화(Client Side Encryption) : Client에서 S3로 전송될 때의 암호화를 의미
1. S3로 데이터를 보내기 전 AWS KMS에서 데이터 키를 생성하고 암호화하여 반환
2. 이 데이터키를 클라이언트 측에서 사용하여 암호화
→ S3 데이터 전송 전 KMS에서 저장한 고객 마스터키와 애플리케이션 내 마스터키를 사용하여 암호화 함.
▪️ 서버 측 암호화(SSE, Server Side Encryption) : S3에 저장될 때의 암호화
⮞SSE-S3 : S3 관리형 키를 사용하는 암호화, 가장 간단하며 강력한 암호화를 제공함.
* 사용하는 암호화 알고리즘 : AES-256
⮞SSE-KMS : AWS KMS에서 관리하는(저장된) 고객 마스터키를 사용하여 암호화,
S3에 비해 더 많은 유연성을 제공함.
* 사용하는 암호화 알고리즘 : KMS에서 사용 가능한 대부분의 암호화 알고리즘 지원
⮞SSE-C(Customer) : 고객이 제공하는 키를 사용하여 암호화,
S3에 비해 더 많은 제어권을 제공함.
* 사용하는 암호화 알고리즘 : 고객이 선택한 암호화 알고리즘을 사용함
- 전송 속도 향상(Transfer Acceleration)
▪️ Cloudfront의 Edge Location을 사용하여 파일업로드를 빠르게 하는 기능
▪️ S3로 업로드하지 않고 가장 가까운 Edge Location으로 전송한 후, 아마존의 백본 네트워크를 통해 S3로 전송
- S3 CRR(Cross Region Replication) / SRR(Same Region Replication)
: S3 버킷에 있는 데이터를 다른 S3 버킷으로 복제하는 기능
▪️ 타 계정의 버킷으로 복제가 가능함
▪️ 백그라운드에서 실행되며 비동기식 복제임
▪️ S3 버킷에 R/W IAM 권한이 있어야함
▪️ CRR : 다른 리전의 S3 버킷에 복제
▪️ SRR : 같은 리전의 S3 버킷에 복제
- S3 Select
▪️ S3 버킷 내 Object의 내용을 검색하기 위한 기능
▪️ SQL문을 사용하여 S3 Object의 콘텐츠를 필터링, 객체 내의 필요한 데이터의 하위 집합만을 검색하고
이를 통해 S3로 전송하는 데이터의 양과 검색하는데 드는 비용과 지연시간을 감소시킨다.
▪️ 현재 CSV, JSON과 Apache Parquet 형식의 데이터만 지원함.
- 요청자 지불 기능(S3 Requester Pays) : 데이터 다운로드 요청자가 요금을 지불, 모든 요청에 대해 인증이 필요하며,
요청자를 식별하여 요금을 부과하기 때문에 익명 요청자의 액세스는 미허용
* 일반적으로 S3 버킷의 데이터를 다운할 경우 해당 버킷의 소유자가 요금을 지불함.
- S3 Event Notification : S3 버킷의 특정 이벤트 발생 시, 알림을 수신하여 특정 서비스로 전송하는 기능
▪️ 새 객체 생성, 객체 제거, 복제, 수명 주기 만료ㆍ전환 이벤트 등
▪️ SNS, SQS, Lambda, Amazon EventBridge
* S3 Event Notification은 S3에서 일어나는 특정 이벤트에 대한것임.
EventBridge는 AWS서비스 뿐 아니라 SaaS나 개인 어플리케이션과 같은 이벤트도 사용이 가능함!
(S3 Event Notification ≠ EventBridge)
ㆍS3의 스토리지의 종류
- Standard Type : 자주 액세스하기 위한 데이터를 위한 높은 내구성, 가용성 및 성능을 가진 기본 스토리지
* 기본 설정되는 스토리지임
- Standard-IA : 자주 액세스하지 않으나 즉시 액세스 할 수 있는 데이터를 위한 스토리지
* 전환하기 위한 최소 기간 : 30일
- One Zone-IA : Standard_IA와 동일하지만 단일 가용 영역에 저장하는 스토리지
* 전환하기 위한 최소 기간 : 30일
- Glacier Instant Retrieval : 거의 액세스하지 않으나 밀리초 단위로 검색해야 하는 데이터를 위한 스토리지
* Standard-IA와 동일수준의 대기시간 및 처리량 성능을 가짐
- Glacier Flexible Retrieval : 즉각적인 액세스가 필요하지않고 거의 액세스하지 않는 장기데이터 보관을 위한 스토리지
* 최소 저장 기간 : 90일(기간 내 수정(삭제 및 덮어쓰기) 시 요금 발생)
- Glacier Deep Archive : 가장 저렴한 스토리지로 검색에 몇시간이 소요 될 수 있는
장기간 아카이브 및 디지털 보존을 위한 스토리지
* 최소 저장 기간 : 180일(기간 내 수정(삭제 및 덮어쓰기) 시 요금 발생)
- Intelligent-Tiering : 액세스패턴이 변화할 때(불규칙하여 빈도 가늠이 어려운) 사용되는 스토리지
'자격증 > SAA' 카테고리의 다른 글
AWS - DB service(RDS) (0) | 2024.01.16 |
---|---|
AWS - 스토리지(EBS와 EFS) (0) | 2024.01.16 |
AWS - 컴퓨팅 서비스(ELB) (0) | 2024.01.16 |
AWS - 컴퓨팅 서비스(ECS, EKS, Auto Scailing) (0) | 2024.01.16 |
AWS - 컴퓨팅 서비스(EC2) (0) | 2024.01.12 |