More about S3
#1. S3 MFA-Delete
- Versioning이 활성화 되어있어야 함
- Root account에서 CLI로만 활성화/비활성화 가능
#2. S3 Access logs
- Logging용 버켓은 따로 마련할 것. 만일 모니터 하는 버킷과 Logging용 버킷이 같으면 Logging Loop이 발생하여 Bucket 사이즈가 어마무시하게 커질 수 있음
#3. S3 Replication (CRR, SRR)
- S3 MFA-Delete와 마찬가지로 Versioning이 활성화 되어있어야 함
- Cross Region Replication:
- Compliance
- Low-latency access - Same Region Replication:
- Log 통합
- Prod 환경과 In-house 환경의 실시간 동기화 - S3의 Properties → Server access logging 에서 Logging 활성화 여부 결정
- Replication 적용 후의 Object 부터 replica가 적용됨
- Replication이 되면 Version ID까지 완전 동일하게 replica 됨
- Default로 Delete에 대한 replica는 진행되지 않음 (Origin에서 삭제되어도 Replica에서는 삭제 안됨)
- S3 Management → Replication Rules에서 설정
#4. S3 Pre-signed URLs
- SDK(Upload 용)혹은 CLI(Download 용)로 생성 가능
- 사용 예시
- 특정 시간 동안만 사용자의 접근을 허용할 때
- 특정 사용자에게만 Objects (예를 들어 Premium Videos 같은거) 다운로드를 허용할 때 생성 예시) aws s3 presign s3://(my-bucket/myobject) --region (region) --expires-in 300
#5. S3 Storage Classes
- S3 Standard: General Purpose
- S3 Standard-Infrequent Access: Disaster recovery, backups…
- S3 One Zone-Infrequent Access: Storing secondary backup copies, Storing data you can recreate…
- S3 Intelligent Tiering: Move objects from S3 standard to IA
- Glacier
- Glacier Deep Archive
- Life cycle configuration을 통해 각 Classes 간 생명 주기 관리 가능
- Standard에서 Standard-IA로 Objects를 이동하는 주기를 어떻게 해야하는지 잘 모르겠다면 S3 Analytics 이용 가능
#6. S3 Performance
- 3,500 PUT/COPY/POST/DELETE (per second, per prefix in a bucket.)
- 5,500 GET/HEAD (per second, per prefix in a bucket.)
여기서 prefix란bucket/folder1/sub1/file --> /folder1/sub1
즉, Bucket과 Object 사이 - SSE-KMS를 사용하면 S3에서 KMS API를 호출하는 동작으로 인해 제한이 걸릴 수 있음
- (Write) Multi part upload 혹은 S3 Transfer Acceleration 으로 성능을 높힐 수 있다.
- (Read) S3 Byte Range Fetches를 통해 성능을 향상 시킬 수 있다.
#7. S3 Select / Glacier Select
- Server 측에서 Filtering을 하고 싶을 때 사용
- Low network transfer, less CPU cost client-side
#8. S3 관련 기타 features
- S3 Event Notifications: SNS, SQS, Lambda 사용 가능
- S3 Requester pays: Requester가 데이터를 받기 위해 사용하는 네트워크 비용 지불
- Athena: Serverless, S3로부터 직접적인 쿼리 실행
- Glacier Vault Lock
- S3 Object lock: Versioning이 활성화 되어있어야함