AWS/Service

Amazon S3

jih0ssang 2023. 12. 2. 13:03

스토리지 클래스

Standard 클래스

  • 데이터 액세스 속도 빠름
  • 요청 처리 빠름
  • 데이터 검색 요금 X, 최소 용량 요금 X
  • 쉽게 사용하기 좋은 클래스

 

Intelligent-Tiering

  • 액세스 패턴 분석 및 클래스 이동으로 데이터 저장 비용 절약
  • 데이터 검색 요금 X, 최소 용량 요금 O
  • 계층 간 이동 요금 부과되지 않음

기본적으로 빈번한 액세스와 간헐적 액세스하는 계층에 객체(파일)를 저장한다.

예를 들어 30일간 연속으로 액세스가 없는 객체는 간헐적 액세스 계층으로 이동하고,

이 객체에 대한 액세스가 늘어나면 다시 빈번한 액세스 계층으로 이동한다.

 

Frequent Access 계층(자동)

  • S3 Intelligent-Tiering에서 생성하거나 전환한 객체가 수명 주기를 시작하는 기본 액세스 계층
  • 짧은 지연 시간 및 높은 처리량 성능

Infrequent Access 계층(자동)

  • 30일 연속으로 객체에 액세스하지 않으면 객체가 Infrequent Access 계층으로 이동
  • 짧은 지연 시간 및 높은 처리량 성능

Archive Instant Access 계층(자동)

  • 90일 연속으로 객체에 액세스하지 않으면 객체가 Archive Instant Access 계층으로 이동
  • 짧은 대기 시간과 높은 처리량 성능

Archive Access 계층(선택 사항)

  • 비동기식으로 액세스할 수 있는 데이터에 대해 Archive Access 계층 활성화 옵션 제공
  • 최소 연속 90일 동안 액세스하지 않은 객체를 자동으로 아카이브
  • 아카이브에 대한 마지막 액세스 시간을 최대 730일로 연장 가능
  • S3 Glacier Flexible Retrieval 스토리지 클래스와 동일
  • 표준 검색 시간은 3~5시간

Deep Archive Access 계층(선택 사항)

  • 비동기식으로 액세스할 수 있는 데이터에 대해 Deep Archive Access 계층을 활성화 옵션 제공
  • 최소 연속 180일 동안 액세스하지 않은 객체를 자동으로 아카이브
  • 아카이브에 대한 마지막 액세스 시간을 최대 730일로 연장 가능
  • S3 Glacier Deep Archive 스토리지 클래스와 동일
  • 표준 검색은 12시간 이내에 발생

 

Glacier 클래스

  • 장기 보관 및 비용 절감 목적
  • 업로드, 검색에 대한 UI 제공 안해줌
  • 아카이빙된 데이터 다운로드시 3~5시간 소요
  • 데이터 검색 요금 O  
  • 데이터 액세스 속도 느림

 

IA(Infrequently Accessed)

- 비교적 사용량이 적지만 빠른 전송 속도를 필요로 한 경우 사용

 

 객체 = 파일 + 파일의 메타데이터(key-value)

S3 prefix 나눌수록 부하분산으로 병목현상 줄어듦.

100MB 이상 대용량 파일은 멀티파트 업로드 권장

객체크기 최대 5TiB라고 하지만 되도록 작게 나누는것 권장

MFA 지원 버킷의 수명주기 구성은 지원되지 않음

S3 수명주기 작업은 CloudTrail에 캡처되지 않음. S3 서버 액세스 로그에서 해야함

 

버킷 제한(restriction)

prefix 기준

읽기 요청: 초당 3500회

생성/수정/삭제 요청: 초당 5500회

 

EC2 연동 방법

1. EC2의 aws sdk

GetObject 권한 부여 

S3에 파일을 올려두고 해당 파일이 필요한 EC2(IAM User/Role)에 GetObject 권한을 부여하면

별도의 네트워크 작업없이 EC2에서 aws sdk를 통해 다운로드 가능

 

SDK란?

shell에서는 AWS CLI, python은 boto3, C++, JavaScript, PHP 등 언어 지원하는

AWS에서 자체적으로 제공해주는 SDK 존재

참고 문서: https://aws.amazon.com/ko/tools/

 

2. Endpoint

Gateway Endpoint (퍼블릭 ip로 접근)와 Interface Endpoint (프라이빗 ip로 접근)이 있다.

둘의 차이점은 Gateway Endpoint를 사용하면 비용이 들지 않지만, Interface Endpoint는 비용이 든다.

 

 

강제 https 적용

{
            "Sid": "ForceSSLOnlyAccess",
            "Effect": "Deny",
            "Principal": {
                "AWS": "*"
            },
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::[Bucket명]/*",
            "Condition": {
                "Bool": {
                    "aws:SecureTransport": "false"
                }
            }
}

 

수명 주기 규칙

  • 객체의 현재버전 만료
  • 객체의 이전 버전 영구 삭제
  • 만료된 객체 삭제 마커 또는 완료되지 않은 멀티파트 업로드 삭제

버전 관리

  • 버전 관리를 활성화하면 굳이 S3 백업 불필요

 S3 액세스 로깅 활성화

  • 주의사항 경로 뒤에 / 붙여야 폴더 내에 쌓임

 

'AWS > Service' 카테고리의 다른 글

Route53 Resolver  (0) 2023.12.02
S3 업로드 방식 및 웹 사이트용 주의사항  (0) 2023.12.02
라우팅 테이블  (1) 2023.11.26
Terraform vs CloudFormation  (1) 2023.11.25
AWS VIF(가상 인터페이스)  (0) 2023.11.25