[AWS SAA 스터디] S3
S3(Simple Sotrage Service)
- 오브젝트로써 데이터를 저장하는 스토리지.
구성
- S3 Object : 데이터를 담는 오브젝트
- key : object의 이름
- value : byte sequence로 이루어진 데이터
- version id
- Meta Data
- 0 ~ 5 TB 저장가능 (0bytes도 저장 가능하다는 부분이 시험에 많이 나옴)
- S3 Bucket : 오브젝트를 담는 것. S3는 글로벌하기 때문에 도메인처럼 이름이 유니크해야한다.
Storage Classes(먼저 설명된 클래스가 젤 빠름)
- standard : Fast, 99.99% Availability(가용성 : 언제나 정상적으로 사용 가능한가), 11 9's Durability(내구성 : 데이터 유실 얼마나 안되는지), 최소 세 개의 AZs에 걸쳐 복사
- Intelligent Tiering : 머신러닝으로 알맞은 클래스를 결정해줌
- Standard Infrequently Accessed(IA) : 여전히 빠름, 파일에 한 달에 한 번 접근하면 이득. 접근 비용 발생. 50% less than standard
- One Zone IA : 한 AZ에만 존재(99.5 Availiability). IA보다 20% 쌈. 접근 비용 발생
- Glacier : 오랫동안 사용안하는 데이터 저장용. 싸지만 데이터 가져오는데 분~시간이 소요될 수 있음
- Glacier Deep Archive : 젤쌈. 데이터 가져오는데 12시간 걸림
- key : object의 이름
- value : byte sequence로 이루어진 데이터
- version id
- Meta Data
- 0 ~ 5 TB 저장가능 (0bytes도 저장 가능하다는 부분이 시험에 많이 나옴)
- S3 Bucket : 오브젝트를 담는 것. S3는 글로벌하기 때문에 도메인처럼 이름이 유니크해야한다.
Security
- 새로 생성한 버킷의 기본 access는 private
- Access Controler Lists(ACL) : legacy, 간단
- Bucket Polices : json으로 access rule 설정
//Bucket Polices Example
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AddCannedAcl",
"Effect": "Allow",
"Principal": {
"AWS": [
"arn:aws:iam::111122223333:root",
"arn:aws:iam::444455556666:root"
]
},
"Action": [
"s3:PutObject",
"s3:PutObjectAcl"
],
"Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*",
"Condition": {
"StringEquals": {
"s3:x-amz-acl": [
"public-read"
]
}
}
}
]
}
Encryption
- Encryption in Transit(데이터 전송중 encryption) : ssl, tls
- Server Side Encryption(SSE) : 아마존에서 도와줌
- S3 Managed Keys : 아마존에서 키는
- SSE-AES : AWS 암호화 관리, 정기적으로 순환
- SSE-KMS : 사용자 마스터키를 이용하여 암호회
- SSE-C : Cusotmer provided key(내가 관리)
- Client-Side Encryption : S3에 저장전 알아서 암호화
- SES-KMS vs SSE-C
Data Consistency
- New Objects(PUT)
- Read After Write Consistency
- 쓴 직후 읽을 수 있다는 뜻
- Overwrite(PUT), Delete(DELETE)
- Eventual Consistency
- S3를 다른 AZ로 복사할 시간이 필요
- 따라서 바로 읽으면 이전 버전 데이터를 줄 수 있음
Cross-Region Replication(CRR)
- CRR이 켜져있으면 자동적으로 다른 리전에 저장된다
Versioning
- 모든 버전의 s3를 저장하는 방식
- 한번 enable되면 끌 수 없고 해당 버킷을 중지해야한다
LifeCycle Management
- objects를 다른 클래스로 옮기거나 delete하는 등의 과정을 자동화
- Versioning과 같이 사용 가능
Transfer Acceleration
- S3 bucket에서 멀리 있는 end User로 부터 빠르고 보안적으로 안전하게 파일을 받는 것
- CloudFront의 Edge Location기능 사용.
- 유저는 S3 bucket이 아닌 Edge Location url을 이용
- Edge location에 파일이 도착하면 optimize network path(Amazon Backbone Network)를 통해 자동으로 S3에 라우팅된다
Presigned URLs
- 특정 시간동안만 private objects에 접근할 수 있는 url
- AWS CLI와 AWS SDK를 통해 만들 수 있다
MFA Delete
- 유저가 MFA코드를 주지 않는 이상 DELETE 작업을 못하도록 함
- MFA Delete는 아래 두 조건이 있어야 가능
- AWS CLI를 사용
- 해당 버킷이 Versioning 사용
https://www.youtube.com/watch?v=Ia-UEYYR44s
Author And Source
이 문제에 관하여([AWS SAA 스터디] S3), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@201/AWS-SAA-스터디-S3저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)