[AWS SAA] 5. S3

Sunwu Park·2024년 11월 18일

AWS-SAA

목록 보기
5/12
post-thumbnail

Elastic Beanstalk – 개요

  • Elastic Beanstalk는 AWS에서 애플리케이션을 배포하는 개발자 중심의 서비스
  • EC2, ASG, ELB, RDS 등 다양한 AWS 구성 요소들을 활용
  • 관리형 서비스로, 용량 프로비저닝, 로드 밸런싱, 스케일링, 애플리케이션 상태 모니터링, 인스턴스 설정 등을 자동으로 처리
  • 개발자는 애플리케이션 코드만 작성하면 되고, 나머지는 Elastic Beanstalk이 관리
  • 여전히 모든 설정에 대해 완전한 제어권을 가짐
  • Elastic Beanstalk 자체는 무료지만, 실제로 사용되는 인프라 리소스(예: EC2 인스턴스) 비용은 청구

Elastic Beanstalk – 구성 요소

  • Application: Elastic Beanstalk의 모든 구성 요소(환경, 버전, 설정 등)의 모음
  • Application Version: 애플리케이션 코드의 특정 버전
  • Environment: 애플리케이션 버전을 실행하는 AWS 리소스들의 모음 (환경 하나당 하나의 애플리케이션 버전만 실행 가능)
  • Tiers (계층):
  • Web Server Environment Tier: 웹 서버 애플리케이션을 위한 계층
  • Worker Environment Tier: 작업 처리용 애플리케이션을 위한 계층
  • 환경을 여러 개 생성할 수 있습니다. (예: 개발, 테스트, 운영 환경)

Amazon S3

=> “무한 확장” 가능한 스토리지

Amazon S3 사용 사례

  • 백업 및 스토리지
  • 재해 복구
  • 아카이브
  • 하이브리드 클라우드 스토리지
  • 애플리케이션 호스팅
  • 미디어 호스팅
  • 데이터 레이크 및 빅데이터 분석
  • 소프트웨어 배포
  • 정적 웹사이트

Amazon S3 - 버킷(Buckets)

  • 객체(파일)는 “버킷”(디렉토리)에 저장
  • 버킷 이름은 전 세계적으로 고유
  • 버킷은 특정 리전(Region)에 생성 (리전 수준에서 정의됨)

Amazon S3 - Objects(객체)

  • 객체(파일)는 “키(Key)“를 가짐
    - 키(Key)는 전체 경로로 구성:
    - 키는 접두사(prefix) + 객체 이름으로 구성
    예: s3://my-bucket/my_folder1/another_folder/my_file.txt
  • 디렉토리의 개념은 없지만, UI에서 디렉토리처럼 보이게 처리
  • 객체 값은 본문(Content)
  • 최대 객체 크기는 5TB(5000GB)
  • 5GB를 초과하여 업로드할 경우 “멀티파트 업로드(Multi-Part Upload)“ 사용

Amazon S3 – Security

User-Based

  • IAM Policies (IAM 정책)
    : IAM Policies는 특정 사용자 또는 IAM 역할(Role)에 대해 어떤 API 호출을 허용 정의하는 정책
    : AWS 리소스에 대한 접근을 사용자 단위로 세부적으로 제어
    예: 특정 사용자가 S3 버킷에서 읽기(s3:GetObject)는 가능하지만 쓰기(s3:PutObject)는 불가능하도록 설정.

Resource-Based

  • Bucket Policies (버킷 정책)
    : S3 버킷 전체에 적용되는 규칙을 설정하는 정책
    : S3 콘솔 또는 AWS 정책 언어(JSON)를 사용하여 권한을 정의

교차 계정 접근 제어(Cross-Account Access)
: 다른 AWS 계정이나 외부 사용자에게 접근 권한을 부여할 수 있음

예: 특정 AWS 계정에만 읽기 또는 쓰기 권한을 부여.

세부 접근 제어 옵션

  • Object Access Control List (객체 ACL)
    : S3 객체(파일) 단위로 권한을 설정할 수 있는 세부적인 접근 제어 옵션
    : 각 객체별로 읽기/쓰기 권한을 설정할 수 있지만, 비활성화 가능

  • Bucket Access Control List (버킷 ACL)
    : S3 버킷 단위로 권한을 설정하는 제어 옵션
    : 과거에는 많이 사용되었지만, 현재는 잘 사용되지 않으며 비활성화 가능

  • Encryption
    : Amazon S3에서 저장된 객체(파일)를 암호화할 수 있는 기능
    : AWS 제공 암호화 키(Encryption Key)를 사용하여 데이터를 보호

Amazon S3 – Static Website Hosting

• S3는 정적 웹사이트를 호스팅할 수 있으며, 인터넷에서 접근 가능하도록 설정할 수 있음

  • 403 Forbidden 오류가 발생할 경우, 버킷 정책(Bucket Policy)이 공개 읽기(Public Read) 권한을 허용하는지 확인

Amazon S3 - Versioning

  • Amazon S3에서는 파일의 버전을 관리
  • 버킷 수준에서 활성화
  • 동일한 키(Key)로 파일을 덮어쓰면 버전 번호가 변경(예: 1, 2, 3…).
  • 버킷에 버전 관리를 활성화하는 것이 모범 사례
  • 의도하지 않은 삭제로부터 보호 가능 (이전 버전 복원 가능).
  • 이전 버전으로 손쉽게 롤백 가능.

Notes

  1. 버전 관리 활성화 전의 파일은 버전이 “null”로 설정
  2. 버전 관리를 중단(Suspend) 해도 기존 버전은 삭제되지 않음
  3. 삭제 마커(Delete Marker)를 사용하면 실제 파일을 삭제하지 않고 새 버전으로 덮어씌울 수 있음
    => 이 경우, 해당 파일에 접근 시 404 Not Found 오류가 표시

Amazon S3 – Replication (CRR & SRR)

기본 조건

  • 소스 버킷(Source)대상 버킷(Destination)버전 관리(Versioning)가 활성화

  • 복제 유형:

    • CRR (Cross-Region Replication): 리전 간 복제
    • SRR (Same-Region Replication): 동일 리전 내 복제
  • 버킷은 서로 다른 AWS 계정에 속할 수 있음.

  • 복제 작업은 비동기적으로 수행

  • S3에 적절한 IAM 권한을 부여

사용 사례

  • CRR (리전 간 복제):
    - 규정 준수(Compliance).
    - 더 낮은 지연 시간의 접근 제공.
    - 계정 간 복제.

  • SRR (동일 리전 내 복제):
    - 로그 통합(Log Aggregation).
    - 덕션과 테스트 계정 간 실시간 복제.

복제 작동 방식

  • 복제 활성화후 새로운 객체만 복제
  • 기존 객체를 복제하려면 S3 Batch Replication을 사용.
    - 기존 객체와 복제 실패한 객체를 복제 가능.

삭제(Delete) 작업

  1. 삭제 마커(Delete Marker):
  • 소스에서 생성된 삭제 마커를 대상으로 복제 가능 (옵션 설정).
  1. 버전 ID가 있는 삭제:
  • 복제되지 않음 (악의적인 삭제를 방지하기 위함).

복제 체인(Replication Chaining) 없음

  • 복제는 체인 형식으로 연결되지 않음

예:

  • 버킷 1에서 버킷 2로 복제, 버킷 2에서 버킷 3으로 복제가 설정된 경우,
  • 버킷 1에서 생성된 객체는 버킷 3으로 복제되지 않음.

S3 스토리지 클래스(S3 Storage Classes)

1. Amazon S3 Standard - 일반 목적

  • 가용성(Availability): 99.99%

특징:

  • 자주 접근하는 데이터에 사용.
  • 낮은 지연 시간(Low Latency)과 높은 처리량(High Throughput) 제공.
  • 동시에 2개의 시설 장애를 견딜 수 있음.

2. Amazon S3 Standard-Infrequent Access (IA)

특징:

  • 덜 자주 접근하지만, 필요할 때 빠른 접근이 필요한 데이터에 사용.
  • S3 Standard보다 비용이 저렴.

3. Amazon S3 One Zone-Infrequent Access (S3 One Zone-IA)

특징:

  • 단일 가용 영역(AZ)에서 높은 내구성(99.999999999%) 제공.
  • 가용성(Availability): 99.5%.
  • AZ가 파괴되면 데이터 손실 위험 존재.

4. Amazon S3 Glacier Instant Retrieval

특징:

  • 저비용 객체 스토리지, 아카이빙 및 백업에 적합.
  • 밀리초 단위의 검색 시간 제공.
  • 데이터는 분기별로 한 번 정도 접근하는 경우에 사용.
  • 최소 저장 기간: 90일.

5. Amazon S3 Glacier Flexible Retrieval

특징:

  • 아카이빙 데이터 저장용.
  • 검색 속도:
    - Expedited: 1~5분.
    - Standard: 3~5시간.
    - Bulk: 5~12시간 (무료).
  • 최소 저장 기간: 90일.

6. Amazon S3 Glacier Deep Archive

특징:

  • 장기 아카이빙에 적합.
  • 검색 속도:
    - Standard: 12시간.
    - Bulk: 48시간.
  • 최소 저장 기간: 180일.

7. Amazon S3 Intelligent Tiering

특징:

  • 자동 티어링(Auto-Tiering): 데이터를 사용량에 따라 접근 티어 간 자동 이동.
  • 소규모 월간 모니터링 및 자동 티어링 요금 발생.
  • 검색 요금 없음.

8. 클래스 간 이동

  • 수동으로 이동하거나, S3 Lifecycle 설정을 통해 자동으로 이동 가능.
  • 예:
    - 30일 후 S3 Standard에서 IA로 이동.
    - 60일 후 Glacier로 이동.
    - 180일 후 Deep Archive로 이동.

요약

  • S3 Standard: 자주 접근하는 데이터에 적합.
  • IA 및 One Zone-IA: 덜 자주 접근하지만 빠른 접근이 필요한 경우.
  • Glacier 시리즈: 아카이브 및 백업용, 검색 속도와 저장 기간에 따라 선택.
  • Intelligent Tiering: 사용량에 따라 자동으로 티어를 조정, 효율적인 비용 관리.
  • Lifecycle 구성으로 클래스 간 데이터 이동 자동화 가능.

Amazon S3 - Lifecycle Rules

1. 전환 작업(Transition Actions)

  • 객체를 다른 스토리지 클래스로 전환하도록 구성할 수 있습니다.
  • 예시:
    - 객체 생성 후 60일 뒤, Standard IA 클래스로 이동.
    - 6개월 후, Glacier 클래스로 아카이빙.

2. 만료 작업(Expiration Actions)

  • 특정 시간이 지난 후 객체를 만료(삭제)하도록 구성할 수 있습니다.
  • 예시:
    - 접근 로그 파일을 365일 후 삭제.
    - 버전 관리가 활성화된 경우, 오래된 객체 버전 삭제.
    - 미완성 멀티파트 업로드 삭제.

3. S3 수명 주기 규칙 – 시나리오 1

요구 사항:

  • 프로필 사진 업로드 시 생성된 이미지 썸네일은 60일 동안만 유지.
  • 소스 이미지는 60일 동안 즉시 검색 가능해야 하며, 이후 최대 6시간 대기 가능.

구성:
1. 소스 이미지:

  • S3 Standard 클래스에 저장.
  • 수명 주기 규칙을 사용해 60일 후 Glacier로 전환.
  1. 썸네일:
  • S3 One-Zone IA 클래스에 저장.
  • 수명 주기 규칙을 사용해 60일 후 만료(삭제).

S3 수명 주기 규칙 – 시나리오 2

요구 사항:

  • 삭제된 S3 객체를 30일 동안 즉시 복구 가능해야 함.
  • 30일 이후에는 최대 365일 동안 48시간 내 복구 가능해야 함.

구성:
1. S3 버전 관리 활성화:

  • 객체를 삭제해도 실제 삭제되지 않고 삭제 마커(Delete Marker)로 숨겨짐.
  1. 수명 주기 규칙 설정:
  • 30일 이후, 객체의 “이전 버전(Noncurrent Versions)“을 Standard IA 클래스로 전환.
  • 이후, “이전 버전”을 Glacier Deep Archive 클래스로 전환.

Amazon S3 Analytics – Storage Class Analysis

  • 올바른 스토리지 클래스로 객체를 전환할 시점을 결정하는 데 도움을 줌.

  • Standard와 Standard IA 클래스에 대한 전환 권장 사항 제공.

  • 제한 사항:
    - One-Zone IA 또는 Glacier 계열에는 적용되지 않음.

  • 리포트 업데이트 주기:
    - 매일 업데이트.
    - 데이터 분석 결과가 나타나기까지 24~48시간 소요.

S3 – Requester Pays (요청자 부담)

  • 기본적으로 버킷 소유자가 모든 S3 저장 및 데이터 전송 비용을 부담.
  • Requester Pays 버킷:
    - 요청자가 요청 및 데이터 다운로드 비용을 부담.
    - 대규모 데이터셋을 다른 계정과 공유할 때 유용.

주의사항:

  • 요청자는 반드시 AWS에서 인증된 사용자여야 함(익명 요청 불가).

S3 Event Notifications (S3 이벤트 알림)

  1. 지원되는 이벤트 유형
  • S3:ObjectCreated: 객체가 생성될 때.
  • S3:ObjectRemoved: 객체가 삭제될 때.
  • S3:ObjectRestore: 객체가 복원될 때.
  • S3:Replication: 객체가 복제될 때.
  1. 기능
  • 객체 이름 필터링 가능:
    - 특정 파일 형식에만 이벤트를 트리거할 수 있음 (예: *.jpg).
  • 사용 사례:
    - S3에 업로드된 이미지에 대해 썸네일을 자동 생성.
  1. 알림 전달
  • Amazon S3는 이벤트를 아래와 같은 서비스로 전달할 수 있음:
    - SNS: 여러 구독자에게 알림 전송.
    - SQS: 큐를 통해 이벤트 전달.
    - AWS Lambda: 이벤트를 트리거하여 코드를 실행.
  1. 성능
  • S3 이벤트 알림은 몇 초 내에 이벤트를 전달하지만, 경우에 따라 최대 1분 이상 소요될 수 있음.

S3 – Baseline Performance

  1. 고성능 요청 처리
  • Amazon S3는 자동으로 고속 요청 처리를 지원, 지연 시간(latency)은 100-200ms 수준 유지
  • 각 접두사(prefix) 당 아래와 같은 초당 요청 처리 성능을 제공:
    - 3,500 PUT/COPY/POST/DELETE 요청/초.
    - 5,500 GET/HEAD 요청/초.
  • 버킷의 접두사(prefix) 수에는 제한이 없으므로, 접두사를 나눠서 요청 분산 가능.
  1. 접두사(prefix)의 개념
  • 객체의 경로를 기준으로 접두사를 나눔

예:

  • bucket/folder1/sub1/file → /folder1/sub1/
  • bucket/folder1/sub2/file → /folder1/sub2/
  • bucket/1/file → /1/
  • bucket/2/file → /2/
  1. 접두사를 나누어 요청을 분산하면 성능이 향상
  • 예: 4개의 접두사(/folder1/sub1/, /folder1/sub2/, /1/, /2/)로 요청을 균등히 분산하면,
  • 초당 22,000개의 GET/HEAD 요청을 처리 가능.

S3 Performance

  1. 멀티파트 업로드(Multi-Part Upload)
  • 권장 조건:
    - 파일 크기가 100MB 이상일 경우 멀티파트 업로드 사용 권장.
    - 파일 크기가 5GB를 초과할 경우 멀티파트 업로드 사용 필수.
  • 이점:
    - 파일을 여러 부분으로 나누어 병렬 업로드 가능.
    - 업로드 속도가 크게 향상되며, 실패한 부분만 다시 업로드 가능.

  1. S3 Transfer Acceleration
  • 주요 특징
    - 전송 속도 향상:
    - 파일 업로드를 AWS 엣지 로케이션(Edge Location)으로 전달한 뒤, 해당 데이터를 S3 버킷이 위치한 타겟 리전으로 전송.
    - 글로벌 네트워크 경로를 최적화하여 전송 속도를 높임.

  • 동작 방식
    2-1) 사용자가 데이터를 업로드하면, 가까운 AWS 엣지 로케이션으로 데이터가 전송
    2-2) 이후, 엣지 로케이션에서 AWS 네트워크를 통해 최적화된 경로로 S3 버킷까지 데이터를 전달
    2-3) 특히 인터넷 연결이 느리거나, 리전 간 전송 지연(latency)이 발생하는 경우 효과적

  • 멀티파트 업로드와의 호환성
    - S3 Transfer Acceleration은 멀티파트 업로드(Multi-Part Upload)를 지원.
    - 데이터를 여러 부분으로 나누어 전송하기 때문에, 대규모 파일의 업로드 속도를 더욱 효과적으로 향상

  • 사용 사례
    - 글로벌 사용자가 S3에 데이터를 빠르게 업로드해야 하는 경우.
    - 대용량 파일 업로드: 예를 들어, 미디어 파일, 백업 데이터, 로그 파일 등을 S3에 저장할 때.

  1. S3 Byte-Range Fetches
  • 특정 바이트 범위를 요청하여 GET 작업 병렬 처리 가능.
  • 실패 시에도 더 나은 복원력을 제공.
  • 다운로드 속도 향상: 큰 파일을 병렬로 나누어 빠르게 다운로드.
  • 부분 데이터만 가져오기 가능 (예: 파일의 헤더 부분만 읽기).

S3 Select & Glacier Select

  • S3 Select:
    - S3 객체에서 필요한 데이터만 추출하여 처리 성능과 비용 절감.
    - 예: CSV, JSON, Parquet 파일에서 특정 열이나 행만 선택.
  • Glacier Select:
    - Glacier에 저장된 데이터에서도 필요한 데이터만 추출 가능.
    - 데이터를 복원하지 않고 직접 필터링하여 비용과 시간을 절약.

S3 Batch Operations

  • 대량 작업을 단일 요청으로 실행 가능.

  • 가능한 작업 예시:
    - 객체 메타데이터 및 속성 수정.
    - S3 버킷 간 객체 복사.
    - 암호화되지 않은 객체 암호화.
    - 객체 ACL 및 태그 수정.
    - S3 Glacier에서 객체 복원.
    - Lambda 함수 호출로 사용자 지정 작업 수행.

  • 작업 구성 요소:
    - 작업할 객체 목록.
    - 수행할 작업.
    - 선택적인 매개변수.

  • 기능:
    - 자동 재시도 및 작업 진행 상황 관리.
    - 완료 알림 발송 및 보고서 생성.

  • 활용 예시:
    - S3 Inventory를 사용해 객체 목록을 생성하고,
    - S3 Select를 사용해 필요한 객체만 필터링 후 작업 수행.

S3 - Storage Lens

  1. 개요
  • AWS 전체 조직에 걸쳐 스토리지 사용을 이해, 분석, 최적화할 수 있도록 지원.
  • 이상 탐지, 비용 효율성 분석, 데이터 보호 모범 사례 적용 가능.
  • 30일간의 사용량 및 활동 지표를 기반으로 데이터 분석.
  • 데이터 집계: 조직 전체, 특정 계정, 리전, 버킷, 또는 접두사(prefix) 수준에서 가능.
  • 대시보드:
    - 기본 대시보드 제공 또는 사용자 정의 대시보드 생성 가능.
    - 메트릭 데이터를 S3 버킷으로 일일 내보내기 지원 (CSV, Parquet 형식).
  1. Storage Lens – 기본 대시보드
  • 요약된 인사이트 및 트렌드 시각화 제공 (무료 및 고급 메트릭 모두 포함).
  • 다중 리전 및 다중 계정 데이터를 보여줌.
  • Amazon S3에서 사전 구성되어 제공.
  • 삭제할 수는 없지만, 비활성화 가능.
  1. Storage Lens – 메트릭 종류
    1) 요약 메트릭(Summary Metrics)
  • 스토리지 전반에 대한 일반적인 인사이트 제공.
  • 예: StorageBytes, ObjectCount
  • 사용 사례:
  • 가장 빠르게 성장하거나 사용되지 않는 버킷/접두사 식별.

2) 비용 최적화 메트릭(Cost-Optimization Metrics)

  • 스토리지 비용 관리 및 최적화 인사이트 제공.
  • 예: NonCurrentVersionStorageBytes, IncompleteMultipartUploadStorageBytes
  • 사용 사례:
    - 7일 이상 된 미완성 멀티파트 업로드가 있는 버킷 식별.
    - 더 저렴한 스토리지 클래스로 전환할 객체 식별.

3) 데이터 보호 메트릭(Data-Protection Metrics)

  • 데이터 보호 기능에 대한 인사이트 제공.
  • 예: VersioningEnabledBucketCount, MFADeleteEnabledBucketCount
  • 사용 사례:
    - 데이터 보호 모범 사례를 따르지 않는 버킷 식별.

4) 접근 관리 메트릭(Access-management Metrics)

  • S3 객체 소유권(Object Ownership)에 대한 인사이트 제공.
  • 예: ObjectOwnershipBucketOwnerEnforcedBucketCount
  • 사용 사례:
    - 각 버킷의 객체 소유권 설정 확인.

5) 이벤트 메트릭(Event Metrics)

  • S3 이벤트 알림 설정에 대한 인사이트 제공.
  • 예: EventNotificationEnabledBucketCount
  • 사용 사례:
    - 이벤트 알림이 설정된 버킷 식별.

6) 성능 메트릭(Performance Metrics)

  • S3 전송 가속(S3 Transfer Acceleration)에 대한 인사이트 제공.
  • 예: TransferAccelerationEnabledBucketCount
  • 사용 사례:
    - 전송 가속이 활성화된 버킷 식별.

7) 활동 메트릭(Activity Metrics)

  • 스토리지 요청 활동에 대한 인사이트 제공.
  • 예: AllRequests, GetRequests, PutRequests, BytesDownloaded

8) 상태 코드 메트릭(Detailed Status Code Metrics)

  • HTTP 상태 코드에 대한 인사이트 제공.
  • 예: 200OKStatusCount, 403ForbiddenErrorCount, 404NotFoundErrorCount.
  1. 무료 vs 유료 메트릭
    무료 메트릭(Free Metrics)
  • 모든 고객에게 자동 제공.
  • 약 28개의 사용량 메트릭 포함.
  • 데이터는 14일간 조회 가능.

고급 메트릭 및 권장 사항(Advanced Metrics and Recommendations)

  • 추가 비용이 발생하는 고급 메트릭 및 기능 제공.
  • 포함 항목:
  • 고급 활동(Activity), 비용 최적화, 데이터 보호, 상태 코드 메트릭.
  • CloudWatch 연동: 추가 비용 없이 CloudWatch에서 메트릭 조회 가능.
  • 접두사 집계(Prefix Aggregation): 접두사 수준에서 메트릭 수집 가능.
  • 데이터는 15개월간 조회 가능.

요약
1. Amazon S3 Storage Lens는 AWS 조직 전반의 스토리지 사용을 분석 및 최적화하는 도구.
2. 대시보드와 메트릭을 통해 사용량, 비용, 데이터 보호, 활동 상태 등을 시각화.
3. 무료 메트릭은 기본 제공되며, 유료 메트릭은 고급 기능과 장기 데이터 조회를 지원.

0개의 댓글