Cloud/AWS

S3 기초

Debin 2023. 7. 5.
반응형

S3

  • S3는 파일을 버킷에 저장한다.
  • 버킷은 상위 레벨 디렉토리로 표시된다. 사실 S3 그 자체는 디렉토리의 개념은 없다
  • S3 버킷의 파일은 객체라고 하며, 이 버킷은 계정 안에 생성된다. 즉 객체란 S3 저장소에 저장되는 데이터를 의미한다.
  • 버킷 이름은 계정에 있는 모든 리전과 AWS에 존재하는 모든 계정에서 유니크해야 한다.
  • 버킷은 리전 수준에서 정의되므로, 반드시 특정 AWS 리전에서 정의되어야 한다.
  • 객체나 파일에는 키가 있으며, 키는 Amazon S3 키는 파일의 전체 경로입니다.
  • 키는 접두사와 객체 이름으로 구성되며, 키는 길이가 굉장히 긴 이름으로 슬래시를 포함하며, 키는 접두사와 객체 이름으로 만들어진다.
  • 파일 등 원하는 것은 뭐든지 업로드 가능하며, 최대 객체 크기는 5TB이다.
  • 업로드하는 것이 5TB 보다 크다면 이때는 멀티 파트 업로드를 사용해서 해당 파일을 여러 부분으로 나눠 업로드한다.
  • 보통 100MB가 넘는 경우에는 멀티파트 업로드를 권장한다.
  • 객체에는 메타 데이터가 있는데, 객체의 카-값 쌍 리스트를 말한다.
  • 메타데이터 시스템이나 사용자에 의해 설정되어 파일에 관한 요소나 메타데이터를 나타낼 수 있다.
  • 태그는 가령 유니코드 키-값 쌍은 최대 10개까지 가능하며, 태그는 보안과 수명 주기에 유용하다.
  • 때때로 객체는 버전 ID를 갖기도 합니다

S3 사용처

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

S3 보안

사용자 기반

  • 사용자에게 IAM 정책이 주어진다.
  • 참고로 IAM 정책 내의 명시적인 부인(DENY)은 S3 버킷 정책보다 우선적으로 고려된다.

리소스 기반

  • S3 버킷 정책
    • 이 정책은 S3 콘솔에서 직접 할당할 수 있는 전체 버킷 규칙이다.
    • 특정 사용자가 들어올 수 있게 하거나 다른 계정의 사용자를 허용할 수 있다.
    • 이를 S3 버킷에 액세스할 수 있는 교차 계정이라고 한다.
  • 객체 액세스 제어 목록(ACL)
    • 이 목록은 보다 세밀한 보안이며 비활성화할 수 있다.
  • 버킷 액세스 제어 목록
    • 버킷 수준에서 살펴보면 버킷 ACL이 있는데, 훨씬 덜 일반적. 비활성화가 가능하다.

암호 키를 사용해 객체를 암호화

S3 버전 관리

  • Amazon S3에서는 파일을 버전 관리할 수 있다.(버킷 수준 설정)
  • 사용자가 파일을 업로드할 때마다 선택 키에서 해당 파일의 버전이 생성된다.
  • 동일한 키를 업로드하고 해당 파일을 덮어쓰는 경우 버전 2, 버전 3 등을 생성하게 된다.
  • 버킷을 버전 관리하는 것이 좋다. 이 방법은 의도하지 않게 삭제하지 않도록 보호해주기 때문이다.
  • 이전 버전으로 복구 가능, 이전 버전으로 롤백도 가능하다.
  • 버전 관리를 활성화하기 전에 버전 관리가 적용되지 않은 모든 파일은 널(null) 버전을 갖게 된다.
  • 버전 관리를 중단해도 이전 버전을 삭제하지 않는다.
  • 삭제 마커를 붙여서 삭제를 하면 객체를 복구를 할 수 있다. 소프트 딜리트 느낌과 비슷하다.

S3 복제

  • 교차 리전 복제 CPR: 두 리전이 다를 때 사용한다.
  • 같은 리전 복제 SRR: 두 리전이 같을 때 사용한다.
  • 버킷은 서로 다른 AWS 계정간에도 사용할 수 있다. 복제는 비동기식으로 이루어진다. 복제 과정은 백그라운드에서 이루어진다.
  • 복제 기능이 정상적으로 실행되려면, S3에 올바른 IAM 권한, 즉 읽기, 쓰기 권한을 S3에 부여해야 한다.
  • 복제를 활성화한 후에는 보셨다시피 새로운 객체만 복제 대상이 된다.
  • 기존의 객체를 복제하려면 S3 배치 복제 기능을 사용해야 한다.
  • 기존 객체부터 복제에 실패한 객체까지 복제할 수 있는 기능이다.
  • 체이닝 복제는 불가능하다.

스토리지 클래스

s3는 매우 뛰어나 내구성을 보장한다. 이건 모든 클래스가 동일하다.

가용성도 매우 뛰어나지만 클래스마다 차이가 있다.

S3 standard - General Purpose

  • 99.99% 가용성
  • 자주 액세스하는 데이터에 사용한다.
  • 제일 기본 클래스
  • 지연 시간이 짧고 처리량이 높다.
  • AWS에서 두 개의 기능 장애를 동시에 버틸 수 있다.
  • 사용 사례는 빅데이터 분삭, 모바일, 게임 애플리케이션, 그리고 콘텐츠 배포다.

S3 standard-Infrequent Access (IA)

  • 자주 액세스하지는 않지만 필요한 경우 빠르게 액세스해야하는 데이터에서 사용한다.
  • 스탠다드보다는 비용이 적게 들지만 검색 비용이 발생한다.
  • 99.9% 가용성
  • 재해 복구와 백업에서 많이 사용한다.

S3 One Zone-Infrequent Access

  • 단일 AZ 내에서는 높은 내구성을 갖지만 AZ가 파괴된 경우 데이터를 잃는다.
  • 가용성은 99.5%
  • 사용 사례는 온프레미스 데이터를 2차 백업하거나 재생성 가능한 데이터를 저장하는데 사용한다.

s3 Glacier Instant Retrieval

  • 밀리초 단위로 검색이 가능하다.
  • 분기에 한 번 액세스하는 데이터에 아주 적합하다.
  • 최소 보관기간이 90일. 백업이지만 밀리초 이내에 액세스해야하는 경우 적합하다.

s3 Glacier Flexible Retrieval

  • Flexible는 데이터를 검색하는 데 최대 12시간까지 기다려야 한다는 의미다.
  • 3가지 옵션이 있다. 최소 보관 기간은 역시 90일
  • Expedited: 데이터를 1 ~ 5분 이내에 받을 수 있다.
  • Standard: 데이터를 돌려 받는데 3 ~ 5시간이 걸린다.
  • Bulk: 무료지만 5 ~ 12시간이 소요된다.

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 Intelligent Tiering은 알아서 객체를 이동시켜 주기 때문에 편하게 스토리지를 관리할 수 있다.

객체의 스토리지 클래스 변경을 자동화하는 방법 → 라이프 사이클(생명 주기) 룰을 정의하고 이를 적용한다.

반응형

댓글