Amazon S3

Siyun·2025년 2월 22일

AWS

목록 보기
14/37

Amazon S3 (Amazon Simple Storage Service)

  • 컴퓨팅에 연결되지 않은 독립형 스토리지 솔루션으로 설계되었다.
  • EC2 인스턴스에 탑재하지 않는다. 대신 웹 어디에서나 URL을 통해 데이터에 액세스할 수 있다.
  • 백업과 스토리지, 파일 아카이브, 정적 웹사이트 호스팅 등에 사용된다.
  • 객체 스토리지(플랫구조)로 각 파일을 단일 데이터 단위처럼 취급
  • 5TB의 개별 객체 크기 한도 내에서 원하는 만큼 객체를 저장
  • 파일이 5GB보다 크다면 멀티파일 업로드를 사용해 파일을 여러 부분으로 나눠 업로드 해야 한다. (5TB면 최소 1000개 부분으로 나눠 업로드. 파일 크기가 100MB가 넘는 경우에는 멀티파트 업로드가 권장됨.)
  • 요청 시 고유 식별자(버킷 이름, 키, 버전 ID가 조합)를 사용하여 객체를 조회함.
  • 메타데이터 (키-값 쌍 리스트), 태그(키-값 쌍 최대 10개. 보안과 수명 주기에 유용)을 사용할수 있다.
  • S3의 키는 파일의 전체 경로이다. (s3://my-bucket/ 이 버킷이름 다음에 오는 경로들이 전부 키임)
  • S3 자체는 디렉토리 개념이 없고 접두사와 객체이름으로 이루어진 키로 디렉토리처럼 활용됨.
  • 한 AWS 리전 내에서 여러 서로 다른 시설에 데이터가 저장됨.(높은 가용성, 내구성)
  • 버킷을 생성한 다음 객체를 버킷 안에 배치. 버킷 내부에 폴더 생성도 가능.
  • 전송 중(Amazon S3에서 송수신할 때) 및 저장 중 암호화를 강화. Amazon S3의 모든 버킷에 대한 기본적인 수준의 암호화로 비용 추가 없이 S3 관리형 키를 사용하여 서버 측 암호화를 적용한다.

Amazon S3 스토리지 등급

Amazon S3에 객체를 업로드할 때 스토리지 등급을 지정하지 않으면 기본 스토리지 등급(Standard 스토리지라고 함)에 업로드하게 된다.

Amazon S3 스토리지 등급을 통해 데이터 특징이 변경될 때 스토리지 티어를 변경할 수 있다. 예를 들어 오래된 사진에 가끔씩만 액세스하는 경우, 그 사진의 스토리지 등급을 변경하여 비용을 절감하는 것이 좋다. 수명주기 구성을 사용해 스토리지 클래스 간에 객체를 자동으로 이동할 수도 있다.

스토리지 등급특징사용 사례가용성
S3 Standard기본 스토리지, 자주 액세스되는 데이터에 적합. 지연 시간 짧고 처리량이 높음.웹사이트, 애플리케이션, 빅데이터 분석99.99%
S3 Intelligent-Tiering자동으로 액세스 패턴 분석 후 적절한 계층으로 이동액세스 패턴이 불규칙한 데이터
S3 Standard-IA (Infrequent Access)낮은 비용, 드물게 액세스되는 데이터에 적합, 검색 비용 발생. 최소 저장기간 30일백업, 재해 복구99.9%
S3 One Zone-IA단일 AZ(가용 영역)에서 운영, 비용 절감. 최소 저장기간 30일.재해 복구가 필요 없는 데이터99.5%
S3 Glacier저비용, 장기 아카이브 저장용, 검색 비용 발생규제 준수를 위한 데이터 보관
S3 Glacier Deep Archive최저 비용, 180일 이상 장기 보관에 최적규제 준수, 데이터 보관소
  • 스토리지별 비용은 링크 참조:
    https://aws.amazon.com/ko/s3/pricing
    프리티어 : 매달 5GB의 Amazon S3 스토리지(S3 Standard 스토리지 클래스), 20,000건의 GET 요청, 2,000건의 PUT, COPY, POST 또는 LIST 요청, 100GB의 데이터 송신 혜택

Glacier 스토리지 클래스

Glacier 스토리지에는 세 가지 클래스가 있다.

1) S3 Glacier Instant Retrieval

밀리초 단위로 검색 가능. 분기에 한 번 액세스 하는 데이터에 적합.
최소 보관 기간이 90일이다.

2) S3 Glacier Flexible Retrieval

세가지 옵션

  • Expedited: 데이터를 1~5분 이내에 받을 수 있음.
  • Standard: 데이터를 3~5시간 이내 돌려받을 수 있음.
  • Bulk: 무료. 데이터를 돌려받는데 5~12시간이 소요됨. 최소 보관 기간은 90일.

3) S3 Glacier Deep Archive

두가지 검색 티어가 있음

  • Standard : 12시간
  • Bulk : 48시간
    데이터를 검색하는데 오래 걸리긴 하지만 비용이 가장 저렴하다.
    최소 보관 기간도 180일이다.

S3 Intelligent-Tiering

사용 패턴에 따라 액세스된 티어 간에 객체를 이동할 수 있게 해준다.
소액의 월별 모니터링 비용과 티어링 비용이 발생하지만 검색 비용이 없다.

  • FrequentAccess(자동) : 기본 티어
  • Infrequent Access : 30일 동안 엑세스하지 않는 객체 전용 티어
  • Archive Instant Access(자동) : 90일 동안 액세스하지 않는 티어 전용
  • Archive Access : 90일에서 700일 이상까지 구성 가능
  • Deep Archive Access : 180일에서 700일 이상 액세스하지 않은 객체에서 구성

S3 Analytics

어떤 객체를 다른 클래스로 이전할 최적의 일 수를 결정할 때 이를 사용하면 편리하다.
Standard나 Standard IA에 관한 추천사항을 제시한다.
One-Zone IA나 Glacier과는 호환되지 않는다.
S3 Analytics를 실행하면 .csv보고서를 생성하고 약간의 추천사항과 통계를 제공할 것이다. 보고서는 매일 업데이트 될 것이며 분석결과가 나오는 게 보일 때 까지 24시간 내지 48시간이 걸릴 수 있다.

S3 Select란?

S3 Select는 Amazon S3에 저장된 객체에서 특정 데이터만 필터링하여 검색할 수 있는 기능이다. 일반적으로 S3에 저장된 CSV, JSON, Parquet 같은 파일을 처리할 때, 전체 데이터를 다운로드하지 않고 필요한 부분만 쿼리하여 가져올 수 있다.

S3 Select의 주요 특징
✅ 부분 데이터 조회 → 전체 파일을 다운로드하지 않고 필요한 데이터만 가져올 수 있음
✅ 쿼리 성능 최적화 → 네트워크 트래픽 감소 및 쿼리 속도 향상
✅ SQL 지원 → ANSI SQL을 사용하여 데이터 필터링 가능
✅ 지원 파일 형식 → CSV, JSON, Parquet


S3 실습

1. 원하는 리전에서 S3 > Create bucket 선택하여 버킷 생성

버킷 이름은 모든 리전과 AWS 모든 계정을 통틀어 전역적으로 고유한 이름을 사용해야 함. 버킷을 생성하면 AWS가 이 이름을 사용해 URL을 만듦. HTTP나 HTTPS를 통해 연결할 수 있어야 함. 그렇기 때문에 특수 문자, 공백을 포함할 수 없음. 문자와 숫자 하이픈만 사용 가능.
버킷은 리전별로 생성함.

다른 버킷에서 세팅을 복사해올 수도 있음.

공개 엑세스를 차단할 지 말 지 선택할 수 있다.
버킷 버전 관리를 활성화, 비활성화 할 수 있고
태그를 설정할 수 있다.
지금은 모두 기본값으로 두고 Create bucket 클릭

버킷을 만들면 버킷 목록에 전 리전에서 만든 모든 버킷들을 콘솔에서 확인할 수 있다.

2. 만들어진 버킷 선택 > Upload 클릭하여 파일 업로드 가능


업로드 시 Properties에서 해당 객체에 선택 가능한 다양한 스토리지 클래스를 볼 수 있고 선택할 수 있다.
프리티어는 Standard만 가능하다.
이미 만들어진 객체의 스토리지를 변경하고 싶으면 객체의 Properties 메뉴에서 스토리지클래스를 변경할 수 있다.

3. 업로드한 객체를 누르면 객체의 URL 확인 가능.

URL을 클릭하면 접근 거부됨. S3의 모든 항목은 비공개가 기본값이다.
하지만 객체에서 Open을 누르면 확인할 수 있는데 이는 내 자격증명으로 미리 서명된 URL이기 때문에 Object URL과는 달라서 내 계정에서는 볼 수 있다.

3. 객체를 퍼블릭으로 설정하기

버킷의 Permissions에서 모든 퍼블릭 엑세스를 차단하는 기본 설정을 수정하여 모두 체크 해제

Object Ownership > Edit 선택하여 기본 ACLs disabled을 enable로 수정하고 변경사항을 저장한다.

그 뒤 객체 세부 페이지에서 Object actions > Make public using ACL 선택

객체 스토리지 자동으로 변경하기

1. 버킷 > Management > Lifecycle rules > Create lifecycle rule 선택

2. 규칙을 모든 객체에 적용할 지, 특정 객체들에 적용할 지 선택

접두어(prefix)를 사용하거나 태그를 통해 특정 객체들에 적용 가능.

3. Lifecycle rule actions에서 규칙 작업 선택

아래 다섯 가지 '규칙 작업' 중 선택.
1) 스토리지 클래스 간 최신 버전의 객체 이동
2) 스토리지 클래스 간 이전 버전 객체 이동
3) 객체의 최신 버전 만료
4) 최신 버전이 아닌 객체 영구 삭제
5) 만료된 객체 삭제 마커 또는 완료되지 않은 멀티파일 업로드 삭제

4. 몇일 뒤에 어떤 스토리지로 이동할 지 선택

Expirations Actions도 설정해서 일정 시간 뒤에 만료되어 객체 삭제(혹은 모든 파일 버전 삭제)를 설정할 수도 있음.
혹은 멀티파티 업로드가 2주 이상 되었는데 완전히 업로드가 되지 않으면 지울수도 있음.


버킷 엑세스

리소스에 대한 액세스 권한을 조금 더 세분화해서 제공하기를 원한다. 액세스 제어와 관련해서는 사용자, 그룹, 역할에 연결된 IAM 정책을 사용하여 S3 콘텐츠에 액세스할 수 있고 S3 버킷 정책이라는 기능을 사용할 수도 있다.
IAM 정책 내의 명시적인 부인(DENY)은 S3 버킷 정책보다 우선적으로 고려된다.

버킷 정책

S3의 버킷 정책(Bucket Policy)은 AWS S3 버킷에 대한 접근 권한을 정의하는 JSON 형식의 문서이다. 이 정책을 통해 특정 IAM 사용자, AWS 서비스, 또는 IP 주소 범위에 대해 버킷과 객체에 대한 접근을 허용하거나 거부할 수 있다. S3 버킷 정책은 버킷에 배치할 수 있으며 폴더 또는 객체에는 사용할 수 없다. 그러나 버킷에 배치된 정책은 해당 버킷의 모든 객체에 적용될 수 있다.

  • 특정 IAM 사용자에게 읽기 권한을 부여하는 버킷정책 예시
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::my-bucket/*",
      "Principal": {
        "AWS": "arn:aws:iam::123456789012:user/my-iam-user"
      }
    }
  ]
}

Statement: 정책의 본문으로, 각 Statement는 특정 행동(액션)에 대해 어떤 리소스(버킷, 객체)에 접근할 수 있는지를 정의한다.

각 Statement에는 다음 항목이 포함:

Effect: Allow 또는 Deny 중 하나를 선택하여 액션을 허용하거나 거부.
Action: 허용하거나 거부할 S3 작업(예: s3:GetObject, s3:PutObject 등).
Resource: 정책이 적용될 S3 리소스 (버킷 또는 객체).
Condition: 선택 사항으로, 특정 조건에 따라 액세스를 허용할지 결정.
Principal: 리소스에 접근할 수 있는 엔티티(IAM 사용자, IAM 역할, AWS 서비스 등)

버킷 정책 실습

1. 버킷을 선택 > Permissions > Bucket policy > Edit 선택

Json형식으로 정책 설정을 하거나 Policy generator로 생성.


Amazon S3 버전 관리

Amazon S3은 부분적으로 객체 이름을 사용하여 객체를 식별한다. 예를 들어 직원 사진을 Amazon S3에 업로드할 때 객체의 이름을 employee.jpg로 지정하고 employees라는 버킷에 저장할 수 있다. Amazon S3 버전 관리를 사용하지 않는 경우 employee.jpg라는 객체를 employees 버킷에 업로드할 때마다 원래 파일을 덮어쓰게 된다.
그러면 문제가 되는데, 그 이유는 다음과 같다.

👉🏻 일반적인 이름: employee.jpg라는 객체 이름은 직원 사진 객체에 흔한 이름이다. 버킷에 액세스할 수 있는 사람이 버킷을 덮어쓸 의도가 없었어도, 덮어쓴 경우에는 원래 객체에 액세스할 수 없다.

👉🏻 버전 보존: 여러 버전의 employee.jpg를 보존하고자 할 수 있다. 버전 관리를 사용하지 않고 새 버전의 employee.jpg를 만들려면 객체를 업로드하고 다른 이름을 선택해야 한다. 이름이 약간씩만 다른 객체가 여러 개 있으면 S3 버킷에서 혼동과 혼란을 야기할 수 있다.

Amazon S3의 버전 관리(Versioning)는 동일한 객체의 여러 버전을 저장하여 데이터 보호와 복구를 지원하는 기능이다.

버킷에 버전 관리를 활성화하면 Amazon S3은 객체의 고유한 버전 ID를 자동으로 생성한다. 한 버킷에 employeephoto.jpg(버전 111111)와 employeephoto.jpg(버전 121212) 같이 키는 동일하지만 버전 ID가 다른 2개의 객체가 있을 수 있다.

📌 S3 버전 관리의 주요 특징

  • 데이터 보호: 실수로 객체가 삭제되거나 덮어쓰여도 이전 버전을 복원 가능
  • 모든 버전 유지: 한 객체에 대한 변경 사항이 모두 저장됨
  • 삭제 마커 (Delete Marker): 객체를 삭제하면 실제 삭제가 아니라 삭제 마커가 추가됨
  • 비용 증가 가능성: 모든 버전이 저장되므로 비용이 증가할 수 있음. 이전 버전의 객체가 더 이상 필요 없어지면 삭제하는 것이 좋음.
  • MFA Delete 지원: 다중 요소 인증(MFA)을 활성화하여 삭제 보호 강화 가능

버전관리가 일시 중지되면 새로운 객체에 대해 버전 관리가 일시 중지된다. 버킷의 새 객체에는 모두 버전이 지정되지 않는다. 그러나 기존의 모든 객체는 객체 버전을 유지한다.

✅ S3 버전 관리 사용 사례

  • 중요 데이터 보호: 실수로 삭제된 데이터를 복원해야 하는 경우
  • 데이터 변경 이력 관리: 파일의 변경 사항을 추적하고 복원
  • 규제 준수를 위한 데이터 보관: 기업의 데이터 보호 정책 준수

🚀 S3 버전 관리 활성화 방법

1. AWS 콘솔에서 S3 버킷으로 이동

2. "속성" 탭에서 "버전 관리" 활성화

3.필요하면 MFA Delete 설정 추가

4. 특정 파일을 변경하고 다시 업로드하여 파일 갱신

파일이 덮어씌워졌으며 버킷의 객체 리스트에서 Show versions 토글을 눌러보면 각 파일의 버전 ID를 볼 수 있다.

👉🏻 Show versions 토글로 각 파일의 버전ID를 본 상태에서
갱신되기 전으로 돌아가고 싶으면 최신 버전의 파일 삭제
최신 버전의 버킷을 삭제 하면 되돌릴 수 없음. 파일은 이전 버전으로 돌아감.

👉🏻 각 파일의 버전ID를 보지 않는 상태에서
파일을 삭제하면 버전ID를 삭제하는 것이 아닌 삭제 마커를 부여해 삭제 처리를 한다.(=실제 객체를 지우는 게 아님)
이 상태에서 버전ID를 보면 삭제된 버전객체가 삭제마크를 단 채로 있는 것을 볼 수 있다. 해당 버전을 삭제하면 완벽하게 삭제되고 웹사이트에서도 반영된다.


스토리지 수명 주기 관리

객체를 한 스토리지 티어에서 다른 스토리지 티어로 계속해서 수동으로 변경하는 경우 Amazon S3 수명 주기 정책을 구성하여 이 프로세스를 자동화하는 것이 좋다.

객체 또는 객체 그룹에 수명 주기 구성을 정의할 때 전환과 만료라는 2가지 작업 유형 중 하나를 자동화하도록 선택할 수 있습니다.

  • 전환 작업은 객체가 다른 스토리지 등급으로 전환될 시기를 정의합니다.
  • 만료 작업은 객체가 만료되어 영구적으로 삭제되는 시점을 정의합니다.

S3로 정적 웹사이트 호스팅하기

  • 버킷에 HTML파일이나 이미지 파일 등이 있으면 이를 웹사이트로 호스팅할 수 있는데 그러기 위해 해당 버킷을 공개로 허용해야 URL로 엑세스가 가능하다.

실습

1. 웹사이트로 호스팅하고 싶은 버킷을 선택 > Properties > 스크롤 제일 아래로 내려 Static website hosting 을 활성화

2. 인덱스 문서 지정.


인덱스는 index.html로 입력한다. 이 파일이 버킷에 있어야 하며 이는 웹 사이트의 기본 페이지이다.

설정을 저장한다.

3. index.html을 올리고 다시 Properties로 가면 웹사이트 엔드포인트 URL을 확인할 수 있다.


S3 복제

  • CRR(교차 리전 복제)와 SRR(같은 리전 복제)이 있다.
  • 버킷간에 복제는 비동기식으로 이뤄진다.
  • 소스가 되는 버킷과 복제 대상이 되는 버킷 둘 다 버전 관리 기능이 활성화되어 있어야 한다. 버전ID도 복제된다.
  • 복제 기능이 정상적으로 실행되려면, S3에 올바른 IAM 권한(읽기,쓰기)을 S3에 부여해야 한다.
  • CRR은 법규나 내부 체제 관리, 데이터가 다른 리전에 있어 발생하는 지연시간을 줄일 경우에 사용
  • SRR은 다수 S3버킷간의 로그를 통합할 때, 개발 환경이 별도로 있어 운영 환경과 개발 환경간의 실시간 복제를 필요로 할 때 사용될 수 있다.

복제 참조

  • 복제를 활성화 한 후에 업로드 된 새로운 객체만 복제 대상이 된다.
  • 기존의 객체를 복제하려면 S3 배치 복제 기능을 사용해야 한다.
  • 작업을 삭제하려면 소스 버킷에서 대상 버킷으로 삭제 마커를 복제하면 된다.(옵션)
  • 버전 ID로 삭제한 경우 버전 ID는 복제되지 않고 영구적으로 삭제된다.
  • 체이닝 복제는 되지 않는다. (1번 버킷이 2번 버킷에 복제되어 있고, 2번 버킷이 3번 버킷에 복제돼 있다고 1번 버킷이 3번 버킷으로 복제되지 않는다.)

복제 실습

1. 소스 버킷 선택 > Management 탭에서 스크롤을 내려 Replication rules를 추가한다.

이름을 설정하고 상태는 활성화시킨다.

2. 소스 버킷을 설정한다.

제한된 범위만 복제할 것인지, 버킷 내 전체 객체를 복제할 것인지 선택한다.

3. 대상 버킷을 설정한다.

이 계정 혹은 다른 계정의 버킷을 지정할 수 있다.

4. IAM 역할을 생성한다.

5. 추가적인 복제 옵션에서 Delete marker replication을 체크하면 삭제 마커도 다른 버킷으로 복제된다.

6. 나머지는 일단 스킵하고 복제 활성화

그러면 기본 객체를 복제하겠냐고 프롬프트가 뜬다.
이때 YES를 하면 복제 활성화 전 객체도 복제하는 '배치 작업'이 처리된다.
No를 하면 복제 기능이 활성화 되어 그 시점 이후에 업로드된 객체만 복제된다.


S3 요청자 지불(Requester Pays)

  • 원래는 버킷 소유자가 스토리지 비용과 다운로드 비용(네트워킹 비용)을 모두 부담함.
  • 요청자 지불은 버킷 소유자가 아닌 요청자가 객체 데이터 다운로드 비용(다운로드와 관련된 네트워킹 비용)을 지불하는 것
  • 소유자는 여전히 버킷의 객체 스토리지 비용을 부담함
  • 요청자는 AWS에서 인증을 받아야 함.

S3 이벤트 알림(Evnet Notifications)

  • 이벤트는 객체 생성, 삭제, 복구, 복제 등을 말함.
  • 이벤트들을 필터링 할 수 있음. (ex. jpg로 끝나는 객체만 고려)
  • 이벤트 알림을 만들어 그걸 몇몇 대상에 전송할 수 있다 (SNS토픽, SQS Queue, 람다함수 등에 전송)
  • 이벤트들은 통상 몇 초 안에 전달되지만 간혹 몇 분이 걸릴 수 있음.
  • S3의 IAM 역할을 사용하지 않고 그대신 SNS 토픽, SQS Queue 혹은 람다 함수에서 리소스 액세스 정책을 정의해서 S3가 대상들에게 전송할 수 있는 권한을 제공해야 함
  • 모든 이벤트는 결국 Amazon EventBridge로 간다. EventBridge에서 규칙을 설정할 수 있고 그 규칙들 덕분에 그 이벤트들을 18가지 AWS 서비스에 전송할 수 있다.
  • EventBridge를 사용하면 훨씬 많은 고급 필터링 옵션을 사용할 수 있고 한번에 다수의 대상에 전송할 수 있다.

S3 이벤트 알림 실습

1. S3 > 버킷 선택 > Properties에서 Event notifications 확인


이벤트를 생성, 확인, 편집이 가능하고 아마존 이벤트브릿지에 통합하는 것을 활성화할 수도 있다. 통합하게되면 모든 이벤트를 EventBridge로 보내게 된다.

2. Create event notification을 눌러 이벤트 알림 생성

이벤트를 선택하고 이벤트를 보낼 대상을 선택해 생성하면 된다.
그 전에 해당 대상에서 S3가 이벤트를 보낼 수 있도록 승인해야한다.
해당 대상의 엑세스 정책에서 대상의 ARN을 리소스로 설정하고 Actions는 SendMessage로 설정하고 허용한다.

3. 대상 서비스로 이동해서 Send and receive message를 눌러 메세지 확인

S3에서 온 메세지를 확인할 수 있다.


S3 기준성능

  • S3는 기본적으로 매우 높은 요청 수로 자동으로 스케일링 된다.
  • S3에서 첫 번째 바이트를 가져오는 데 100~200밀리초의 매우 짧은 지연 시간을 가진다.
  • 버킷 내에서 prefix당 초당 3,500개의 PUT, COPY, POST, DELETE를 하거나 5,500개의 GET또는 HEAD요청을 가져온다.

S3 멀티파일 업로드

  • 멀티파일 업로드는 객체 하나가 100MB를 넘기면 사용하는게 좋고 5GB를 넘기면 반드시 사용해야 한다.
  • 멀티파일 업로드는 업로드를 병렬화하여 전송 속도를 높여 대역폭을 최대화하는 데 도움이 된다.
  • 모든 부분이 업로드 되면 이를 큰 파일로 다시 합칠 수 있다.

S3 전송 가속화(Transfer Acceleration)

  • 업로드, 다운로드 시에 파일을 AWS 엣지 위치로 전송하여 전송 속도를 높이고 데이터가 대상 지역의 S3버킷으로 전달되는 것이다.
  • 현재 200개가 넘는 엣지 위치가 있다.
  • 전송 가속화는 멀티파일 업로드와 호환된다.
  • 예를 들어 미국 버킷에서 호주 버킷으로 파일을 전송한다면 데이터는 아래 흐름과 같이 전송된다.
    미국 버킷 --공공 인터넷--> 미국의 엣지 로케이션 --프라이빗 AWS 네트워크--> 호주 버킷
    공공 인터넷의 사용량을 최소화하고 프리이빗 AWS 네트워크의 사용량을 최대화하기 때문에 전송 가속화라고 불린다.

S3 바이트 범위 가져오기 (Byte-Range Fetches)

파일의 특정 바이트 범위를 가져와 가져오기를 병렬화한다.
따라서 다운로드 속도를 높이는 데 사용할 수 있다.

  • 사용예시
    1 버킷에 매우 큰 용량의 파일이 있음. 우리는 이 파일을 5개로 쪼개서 순서대로 가져오고 싶다. 그럼 바이트 범위로 쪼개서 요청하면 되고 이 요청은 병렬처리되기 때문에 속도가 다운로드 속도가 높아진다.
    2
    파일의 일부만 가져오고 싶다. 파일의 처음 50바이트가 헤더라는 것을 알고 첫번째 50바이트를 사용헤 헤더에 대한 바이트 범위를 요청하면 해당 정보를 빠르게 얻을 수 있다.

S3 Batch Operations

  • 단일 요청으로 기존 S3객체에서 대량 작업을 수행하는 서비스
  • 한번에 많은 S3객체의 메타더이터와 프로퍼티를 수정할 수 있고 배치 작업으로 S3버킷 간에 객체를 복사할 수 있다.
  • S3 버킷 내 암호화되지 않은 모든 객체를 암호화할 수 있다.
  • ACL이나 태그를 수정할 수 있고 S3 Glacier에서 한번에 많은 객체를 복원할 수 있다.
  • 람다함수를 호출해 S3 Batch Operations의 모든 객체에서 사용자 지정 작업을 수행할 수도 있다.
  • 객체 목록에서 원하는 작업은 무엇이든지 수행할 수 있다.
  • 작업은 객체의 목록, 수행할 작업 옵션 매개 변수로 구성된다.

    직접 스크립팅 하지 않고 S3 Batch Operations를 사용하는 이유:
    재시도 관리, 진행사항 추적, 작업 완료 알림 전송, 보고서 생성 등이 가능하기 때문

  • S3 Inventory 기능으로 객체 목록 가져오기 -> S3 Select를 사용해 객체 필터링 -> 얻은 객체 목록을 S3 Batch Operations에 수행할 작업, 매개변수와 함께 전달 -> S3 배치가 작업을 수행하고 객체를 처리함

S3 스토리지 렌즈(Storage Lens)

  • 조직에서 스토리지를 이해, 분석, 최적화하는데 도움이 되는 서비스
  • 이상징후 발견, 비용 효율성 파악, 보호 모범 사례 적용 가능
  • 30일 사용량 및 활동 메트릭이 제공된다.
  • 조직 수준에서 혹은 특정 계정, 지역, 버킷 또는 접두사별로도 데이터를 집계할 수 있다.
  • 나만의 대시보드를 만들거나 스토리지 렌즈 서비스에서 제공하는 기본 대시보드를 사용할 수 있다.
  • 기본 대시보드는 삭제할 수 없지만 원하는 경우 비활성화할 수 있다.
  • 모든 메트릭과 모든 리포트를 CSV혹은 parquet형식으로 S3버킷으로 내보낼 수 있다.

스토리지 렌즈의 메트릭

- 요약 메트릭 : 일반적인 인사이트 제공(스토리지 바이트, 객체 크기...)
사용 사례: 가장 빠르게 성장하거나 사용하지 않는 버킷과 접두사 식별
- 비용 최적화 메트릭: 스토리지 비용을 관리하고 최적화할 수 있는 인사이트 제공.
사용 사례: 이전 버전 혹은 불완전한 멀티파트 업로드 스토리지 바이트 수에 대한 정보로 데이터를 정리하거나 스토리지 클래스 전환
- 데이터 보호 메트릭: 데이터 보호기능에 대한 인사이트 제공. 모든 버킷이 버전 관리 등을 통해 활성화되었는지 확인할 수 있다.
사용 사례: 데이터 보호 모범 사례를 따르지 않는 버킷 식별
- 엑세스 관리 메트릭: S3 버킷 소유권에 대한 인사이트 제공
사용 사례: 버킷이 현재 어떤 객체 소유권 설정을 사용하고 있는지 식별
- 이벤트 메트릭: S3 이벤트 알림에 대한 인사이트를 얻고 S3 이벤트 알림이 구성된 버킷의 수를 파악할 수 있음
- 퍼포먼스 메트릭 : S3 전송 가속에 대한 인사이트를 얻고 S3 전송 가속이 활성화 된 버킷의 수를 확인할 수 있음
- 액티비티 메트릭 : 스토리지 요청(Get,Put,List,BytesDownloaded 등 요청)에 대한 인사이트를 제공
- Detail Status Code 메트릭 : HTTP 상태 코드에 대한 인사이트를 제공함. 200, 403 상태 등으로 버킷의 사용 유형을 파악한다.

스토리지 렌즈의 무료 vs 유료 메트릭

메트릭을 선택할때 무료와 고급 메트릭 중 선택할 수 있다.

- 무료 지표(Free Metrics): 모든 고객에게 자동으로 제공되고 약 28개의 사용량 지표가 포함되어 있고 쿼리에 대한 데이터는 14일 동안 조회할 수 있다.

- 고급 지표 및 권장 사항(Advanced Metrics and Recommendations): 활동, 고급 비용 최적화, 고급 데이터 보호 및 상태 코드와 같은 추가 유료 지표 및 기능을 사용할 수 있는데 이러한 메트릭은 CloudWatch에 퍼블리쉬 되어 추가 비용 없이 액세스 할 수 있다. S3 버킷 내의 접두사 수준에서 메트릭을 수집할 수 있다. 결제 시 데이터는 15개월 동안 사용할 수 있다.

profile
공부 기록

0개의 댓글