ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • AWS S3 살펴보기
    Cloud 2021. 7. 22. 08:25
    반응형

    AWS Simple Storage Service (S3)는 2006년 3월 14일에 런칭된 AWS의 오브젝트 스토리지 서비스입니다. 이후 처음 릴리즈 된 S3와 상응한 여러 오브젝트 스토리지를 꾸준히 추가하여 왔습니다. 

     

    블록 스토리지에서는 물리적 저장 기기가 개별 블록으로 나뉘어 지고, 블록의 사용이 파일시스템에 의해 관리되는 반면에 S3와 같은 오브젝트 스토리지는 데이터를 저장할 수 있는 하나의 평평한 공간을 제공합니다. 이렇게 오브젝트 스토리지의 간단한 디자인은 블록 스토리지의 OS와 연관된 복잡도를 피하고 쉽게 스토리지에 접근할 수 있도록 해줍니다. 

     

    사용자가 S3에 파일들을  write하면, 파일들은 최대 2 KB의 메타데이터와 같이 저장됩니다. 그 메타데이터는 데이터 권한, nested된 버킷 안에서의 파일시스템 표기 등과 같은 시스템 상세사항을 구성하는 키들로 이뤄져 있습니다. 

     

    이 글에서는 S3와 관련해 아래와 같은 점들을 살펴보겠습니다:

     

    • S3 서비스 구조

     


    S3 서비스 구조

    사용자는 S3 파일들은 'bucket'에 넣어서 사용하게 됩니다. 디폴트로 AWS 계정 당 최대 100개의 버킷까지 생성 가능한데요. 다른 AWS 서비스와 같이 요청을 통해 제한을 올릴 수 있습니다. 

     

    S3 버킷은 비록 하나의 AWS 리젼에만 속하지만, 버킷의 이름은 글로벌적으로 유일해야 합니다. 이는 보통 운영 상으로 데이터가 특정 지역에 위치하길 원하는 동시에 리젼을 명시하지 않고 버킷이름만으로 접근하는 형태로 단순화 할 수 있기 때문입니다.

     

    아래와 같은 URL을 통해 버킷명, 파일명의 객체에 접근할 수 있습니다:

     

    s3.amazonaws.com/<bucketname>/<filename>

     

    Prefixes와 Delimiters

    위에서 살펴보았듯이, S3는 객체를 버킷 안에 별다른 (블록스토리지의 폴더구조와 같은) 수직관계 없이 '평평하게' 저장합니다. 그러나 접두어와 구분자를 통해 버킷이 '구조를 가진 것과 같이 표현'할 수 있습니다. 

     

    kaden과 같은 접두어와 구분자 /를 통해서 어떤 객체가 어떤 사람에게 속하는지와 같이 구분을 제공할 수 있습니다 (예로, s3://<bucketname>/kaden/myfile.txt 와 같이). S3는 이러한 구분자를 인식하여 마치 '수직구조를 가진 것처럼' 객체들을 보여주고 접근할 수 있도록 합니다.

     

    큰 객체의 처리

    버킷 내의 저장용량 제한은 없으나 각 객체와 한 번의 업로드에 대한 제한이 존재합니다 (각각 5 TB, 5 GB). 

     

    암호화

    Public하게 공유를 목적으로하는 것이 아니라면, S3의 데이터를 암호화하는 것을 권장합니다. 암호화는 크게 서버-사이드, 클라이언트-사이드 2가지로 제공됩니다. 

     

    로깅

    로깅은 디폴트로 disable되어 있으나, enable 시에는 대상 버킷과 로그를 저장할 버킷을 설정해주어야 합니다. 로그에는 요청자의 계정 및 IP, 대상 버킷명, 요청 액션(GET, PUT, POST, DELETE 등), 요청일시, 응답값 등이 기록되게 됩니다.

     

    견고성과 가용성

    S3는 견고성 및 가용성 - 비용 간의 역-상관관계 구조의 서비스를 제공합니다. 견고성과 관련해서는 99.99%, 99.999999999% (9가 11개)와 같은 형태로 제공되며, 가용성은 99.99%(Standard), 99.9%(Standard-IA, Intelligent-Tiering), 99.5%(One Zone-IA) 등이 있습니다.

     

    Eventual Consistency

     

    객체 라이프 사이클

    S3 사용 목적에는 백업 아카이브로의 사용이 대다수를 차지합니다. 그렇기에 S3는 아카이빙에 있어 중요한 '이전 버젼 저장', '오래된 버젼 또는 객체 자동 삭제' 등과 같은 목적을 위해 '버져닝'과 '라이프사이클 관리' 기능을 제공합니다.

     

    서비스 종류

    Standard

    Intelligent Tiering 

    Standard-IA

    One Zone-IA

    Glacier

    Glacier Deep Archive

     

     

     

     

     

     

    Reference

    [1] AWS Certified Solutions Architect Study Guide, 3E - Associate SAA-C02 Exam

    반응형
Kaden Sungbin Cho