📌 S3 생애 주기 규칙
💡 Amazon S3 – 스토리지 클래스 개요
S3 스토리지 클래스는 사용 패턴에 따라 데이터를 최적화하여 저장할 수 있는 다양한 옵션을 제공한다 !!
- Standard: 기본 클래스, 자주 액세스되는 데이터에 적합.
- Standard-IA (Infrequent Access): 가끔 액세스되는 데이터에 적합. 비용 절감 가능.
- One-Zone IA: 저비용으로 가끔 액세스되는 데이터, 단일 가용영역에 저장.
- Glacier: 장기 보관용, 느린 접근 시간.
- Glacier Deep Archive: 매우 저렴한 장기 보관용, 복구 시간이 길어도 괜찮은 데이터.
🔃 Amazon S3 – 스토리지 클래스 전환
- 데이터를 사용 패턴에 맞춰 스토리지 클래스를 전환 가능.
- 자주 사용되지 않는 데이터는 Standard-IA로 이동.
- 장기 보관이 필요한 데이터는 Glacier 또는 Deep Archive로 이동.
- 전환 이유 : 데이터 접근 빈도에 따라 저장 비용을 최적화하기 위해
- 수명 주기 규칙을 통한 자동화 : 시간이 지남에 따라 객체를 자동으로 다른 스토리지 클래스로 이동시키는 규칙을 설정해 데이터를 자동으로 이동시킬 수 있따.
♻️ Amazon S3 – 수명 주기 규칙 (Lifecycle Rules)
데이터를 자동으로 관리하는 두 가지 규칙
- 전환 작업 (Transition Actions)
- 일정 기간이 지나면 객체를 다른 스토리지 클래스로 이동.
- 예시:
- 60일 후, 데이터를 Standard IA로 전환.
- 6개월 후, Glacier로 이동하여 비용 절감.
- 만료 작업 (Expiration Actions)
- 데이터를 자동으로 삭제하는 규칙.
- 예시:
- 로그 파일을 365일 후 자동 삭제.
- 버전 관리 활성화 시, 오래된 파일 버전을 삭제.
<수명 주기 규칙 적용 범위>
- 접두사(Prefix): S3 버킷 내 특정 경로에 규칙 적용 가능
- (예: s3://mybucket/mp3/*).
- 태그(Tag): 특정 태그가 지정된 객체에만 규칙 적용 가능 (예: "부서: 재무")
🧐 Amazon S3 – 수명 주기 규칙 예시
시나리오 1 – 프로필 이미지 관리
- 상황 :
- EC2 애플리케이션이 프로필 사진을 Amazon S3에 업로드한 후, 썸네일을 생성한다. 이 썸네일은 쉽게 다시 만들 수 있고 60일 동안만 보관하면 되는 경우
- 설계 :
- 원본 이미지는 Standard 클래스로 설정 후, 60일 후 Glacier로 전환.썸네일은 One-Zone IA 클래스로 설정 후, 60일 후 만료(삭제).
시나리오 2 – 삭제된 객체 복구
- 상황 :
- 삭제된 S3 객체를 30일 동안 즉시 복구할 수 있어야 하며, 365일 동안 복구 가능해야 한다고 가정한다.
- 설계 :
- S3 버전 관리(S3 Versioning) 활성화로 삭제된 객체 복구 가능.
- 최신 버전이 아닌 객체는 Standard IA로 전환하고, 이후 Glacier Deep Archive로 이동.
📊 Amazon S3 – 스토리지 클래스 분석 (Storage Class Analysis)
S3 분석 도구: 언제 스토리지 클래스를 전환해야 할지 도와주는 도구.
- 추천 스토리지 클래스: Standard 및 Standard IA.
- 보고서 제공: 데이터 분석 결과는 24~48시간 내 확인 가능. 매일 업데이트.
활용 방법: 스토리지 비용 최적화와 수명 주기 규칙 설정에 유용한 데이터 제공.
📌 S3 이벤트 알림
💡 S3 이벤트 알림 개요
S3 이벤트 알림은 S3에서 발생하는 특정 이벤트(예: 객체 생성, 삭제, 복원 등)를 기반으로 트리거된다.
- S3 이벤트 유형: S3:ObjectCreated, S3:ObjectRemoved, S3:ObjectRestore 등.
- 이벤트 알림은 다양한 AWS 서비스(SNS, SQS, Lambda)로 전달될 수 있다.
- 알림은 보통 몇 초 내로 처리되지만 때로는 시간이 더 걸릴 수 있다.
- 원하는 만큼의 이벤트를 생성하여 특정 작업을 자동화할 수 있다.
- 예시: 특정 파일 확장자(.jpg)를 필터링해 썸네일을 자동 생성하는 작업.
⚙️ S3 이벤트 알림과 IAM 권한 설정
- S3 이벤트 알림이 작동하려면 IAM 권한이 필요하다.
- 각 서비스에 맞는 리소스 접근 정책이 필요하다. 예를 들어, S3에서 SNS로 데이터를 보내려면 SNS 리소스 접근 정책을 설정해야 한다.
- SQS와 Lambda의 경우에도 각각의 리소스 정책을 설정하여 S3가 데이터를 보낼 수 있도록 해야한다.
⏰ S3 이벤트 알림과 EventBridge
- 모든 S3 이벤트는 Amazon EventBridge로 전달될 수 있다.
- EventBridge는 고급 필터링 옵션을 제공하며, 여러 개의 AWS 서비스로 이벤트를 전달할 수 있다.
-
- 예시: Step Functions, Kinesis Streams, Firehose 등으로 전달 가능.
- EventBridge의 기능: 이벤트 보관, 이벤트 재현, 안정적인 전달.
📌 S3 퍼포먼스
S3 기본 성능
- S3는 초당 수천 건의 요청을 처리할 수 있도록 자동으로 확장된다.
- (지연 시간: 100~200ms)
- 버킷 내 접두사당 처리 가능한 요청 수
- PUT/COPY/POST/DELETE: 초당 3,500건
- GET/HEAD: 초당 5,500건
- 접두사의 개수에는 제한이 없으므로 여러 접두사를 사용할수록 더 많은 요청을 처리할 수 있다.
- 예시: 파일 경로마다 접두사를 다르게 설정하여 각 접두사당 요청을 분산.
- 접두사별 요청 처리 방식
- bucket/folder1/sub1/file => /folder1/sub1/
- bucket/folder1/sub2/file => /folder1/sub2/
- bucket/1/file => /1/
- bucket/2/file => /2/
↖️ S3 성능 최적화 – 멀티파트 업로드
- 멀티파트 업로드는 파일 크기가 100MB 이상일 때 추천되며, 5GB 이상인 경우 필수적으로 사용해야 한다.
- 파일을 여러 부분으로 나누어 병렬 업로드함으로써 전송 속도를 크게 향상시킨다.
>> 각 부분이 병렬로 처리되므로 업로드 시간이 줄어든다.
🏎️ S3 전송 가속화
- S3 전송 가속화는 파일을 AWS 엣지 위치로 먼저 전송한 뒤, 이를 대상 지역의 S3 버킷으로 전달하여 전송 속도를 높인다.
❓ 엣지 위치란 ❓
엣지 위치는 AWS가 전 세계에 설치한 네트워크 엣지 서버
엣지 위치는 사용자의 위치와 가까운 곳에 있기 때문에, 파일을 먼저 엣지 위치로 전송한 뒤, 이 엣지 위치에서 AWS의 프라이빗 네트워크를 사용하여 S3 버킷으로 전달한다.
이렇게 하면, 공공 인터넷을 사용하는 구간을 줄이고 AWS의 빠르고 안전한 네트워크를 활용하여 전송 시간을 대폭 단축시킬 수 있다.
- 전송 가속화는 멀티파트 업로드와 호환되며, 공공 인터넷을 최소화하고 AWS의 프라이빗 네트워크를 최대한 활용한다.
- 엣지 위치는 전 세계에 200개 이상 존재하며, 이는 전송 시간을 대폭 줄여준니다.
🔶 S3 성능 최적화 – 바이트 범위 가져오기
- 바이트 범위 가져오기(Byte-Range Fetches)는 파일의 특정 바이트 범위를 병렬로 요청함으로써 GET 요청을 최적화한다.
- 다운로드 속도를 높일 수 있으며, 실패 시 더 작은 범위를 다시 요청하는 방식으로 복원력이 강화된다.
병렬 다운로드
- 파일의 특정 부분(예: 처음 몇 바이트)을 병렬로 다운로드하여 속도를 향상시킨다.
부분 데이터 요청
- 파일의 헤더와 같은 특정 부분만 요청하여 빠르게 필요한 정보를 가져온다.
📌 S3 Select & Glacier Select
💡 S3 Select & Glacier Select 개요
- S3 Select와 Glacier Select는 서버 측 필터링을 통해 데이터를 검색하여, 클라이언트 측의 처리 부담을 줄인다.
- SQL 명령어를 사용하여 행과 열을 기준으로 데이터를 필터링할 수 있다.
- 이를 통해 네트워크 전송량을 줄이고 클라이언트 측 CPU 비용을 절감할 수 있다.
🆚 S3 Select 이전과 이후 비교
- S3 Select 사용 전
- 데이터를 전체적으로 가져온 후 클라이언트 측에서 필요한 데이터를 필터링해야 했음. 이로 인해 불필요한 대용량 데이터 전송 및 클라이언트 측 CPU 부담이 발생
- S3 Select 사용 후
- Amazon S3 서버 측에서 미리 필터링된 데이터를 받아볼 수 있어, 더 적은 데이터 전송량과 빠른 응답 속도를 얻을 수 있다.
- 성능 개선
- 최대 400% 더 빠르게, 비용은 최대 80% 절감 !!
🧐 S3 Select 필터링 예시
- 필터링 사용 사례
- CSV 파일에서 특정 행이나 열을 SQL 쿼리로 필터링하여, 필요한 데이터만 추출할 수 있다.
- 이 방식은 클라이언트로 전달되는 데이터 양을 줄이고, 전송 및 처리 속도를 개선할 수 있다.
- S3 Select와 Glacier Select는 대용량 데이터 분석 작업에 적합하다.
📌 S3 객체 태그 및 메타데이터
💡 S3 User-Defined Object Metadata 개요
- 객체를 업로드할 때, 메타데이터(키-값 쌍)를 함께 추가할 수 있다.
- 사용자 정의 메타데이터는 항상 x-amz-meta-로 시작해야 하며, AWS가 제공하는 기본 메타데이터와 혼동되지 않도록 해야 한다.
- 객체를 검색할 때 메타데이터를 통해 해당 객체에 대한 정보를 확인할 수 있다. 예를 들어, 콘텐츠 길이, 유형 등을 메타데이터로 저장할 수 있다.
- 메타데이터는 객체 검색 시 함께 조회되며 유용한 정보를 제공힌다.
💡 S3 Object Tags 개요
- S3 객체 태그는 객체에 대한 추가적인 키-값 쌍으로, 객체 관리 및 분석에 사용된다.
- 태그는 권한 설정이나 세분화된 액세스를 설정할 때 유용하다. 예를 들어, 특정 태그를 기준으로 객체에 대한 접근을 제어할 수 있다.
- S3 분석 도구에서는 객체 태그를 기준으로 그룹화하여 분석할 수 있다. 예를 들어, "Project: Blue"나 "PHI: True"와 같은 태그가 사용될 수 있다.
⛔ 메타데이터와 태그 검색의 한계
- 중요한 점은 S3에서는 메타데이터나 태그로 객체를 직접 검색할 수 없다는 것🌟🌟
- 메타데이터와 태그로 객체를 필터링하려면 외부 데이터베이스를 사용해야 한다.
- 예를 들어, DynamoDB에 메타데이터와 태그를 저장한 후, 이 데이터를 검색하고 해당 검색 결과로 S3 객체를 찾을 수 있다.'
반응형
'AWS' 카테고리의 다른 글
AWS Section 15. CloudFront (0) | 2024.10.26 |
---|---|
AWS Section 14. Amazon S3 보안 (0) | 2024.09.27 |
AWS Section 12. AWS CLI, SDK, IAM 역할 및 정책 (0) | 2024.09.27 |
AWS Section 11. Amazon S3 (0) | 2024.09.27 |
AWS Section 10. VPC 기초 (0) | 2024.09.27 |