AWS - S3

조민철·2025년 2월 25일

AWS

목록 보기
4/21
post-thumbnail

AWS Storage

AWS에 여러가지 저장소(Storage) 서비스가 존재한다.

  • 블록 스토리지
    • EBS
  • 파일 스토리지
    • EFS
    • FSx
  • 객체 스토리지
    • S3

블록스토리지는 파일 시스템을 적용하기전 스토리지이다. SAN 스토리지 영역 네트워크와 유사하며 주로 대기 시간이 짧은 전용 스토리지가 필요한 경우 사용하게 된다.
파일스토리지는 말 그래로 파일 시스템이 존재하는 스토리지이며 NAS라고도 한다. 디렉토리를 공유하거나 저장하기도 한다.
객체스토리지는 조금 생소한 표현일 수 도있다. 블록스토리지나 파일스토리지는 많이 들어봤는데 객체스토리지는 처음 들어봐 당황했던적이 있다. 객체를 저장하는 스토리지로 대용량의 비정형 데이터를 저장하기에 적합하다. 또한 메타데이터를 들고 있으며 이러한 데이터를 통해 데이터를 찾을 수 있다. 또한 큰 특징으로 수평적으로 저장이 된다는 점이다.

S3

이번에는 많은 스토리지 서비스중에서도 객체스토리지인 S3를 알아보겠다.
S3는 객체 수준 스토리지 즉 파일 데이터, 메타 데이터, 고유 식별자가 포함된 스토리지이다. 다른 서비스와 비슷하듯이 비용 절감, 보안강화, 빠른 속도 등 많은 이점들을 제공한다.

사용되는 예?

S3는 다양한 곳에서 사용된다.

  • 백업 및 복원
    • 언제든지 원하는 양의 데이터를 저장하고 검색이 가능하다. 내구성 99%를 보장하고 우수한 백업 및 복원 프로세스를 위한 저장소로 사용된다.
  • 분석용 데이터 레이크
    • 빅 데이터, 인공지능, 기계 학습 등 많은 데이터를 저장하고 분석이 가능하다.
  • 미디어 저장 및 스트리밍
    • CloudFront(CDN)와 활용해서 비디오 스트리밍을 지원하여 시청자가 언제든지 콘텐츠를 즐길 수 있다.
  • 정적 웹 사이트
    • HTML파일을 저장하면 정적 웹사이트를 호스트하여 웹서버로도 사용할 수도 있다.
  • 아카이빙 및 규정 준수
    • 저렴한 백업 워크플로를 진행하거나 기업, 계약 및 규정준수 요규 사항도 준수할 수 있다.

버킷


S3에서는 모든 데이터가 버킷에 객체로 저장된다. 객체는 모든 메타데이터로 구성된다. 버킷은 계정당 100개의 버킷을 보유할 수 있다.

액세스 제어

기본적으로 모든 S3 리소스는 프라이빗으로 설정된다. 따라서 사용자만 해당 리소스에 액세스할 수 있다. 또한 정책을 수정하여 다른 사용자에게 액세스 권한을 부여할 수 있다. 퍼블릭으로 설정하면 누구나 해당 리소스에 액세스가 가능하여 보안에 취약해질 수 있다.

서버 측 암호화 키 유형

S3에서 데이터를 암호화하기 위해 다양한 암호화 키를 제공한다.

  • S3 관리형 키(SSE-S3)
    • SSE-S3를 사용하는 경우 각 객체가 고유 키로 암호화된다. S3에서 관리하는 키이다. 또한 키자체를 암호화하여 보안에 신경쓸수도 있다.
  • AWS KMS에 저장된 SSE-KMS를 사용
    • KMS는 AWS Key Management Service에 저장된 SSE-KMS 키는 키를 관리하는 서비스인 KMS에 저장되어 관리된다. 또한 KMS키 사용시에는 별도의 권한이 필요하다. 따라서 더욱 철저하게 관리가능하다.
  • AWS KMS키를 사용한 이중 계증 서버 측 암호화(DSSE-KMS)
    • DSSE-KMS를 사용하면 한 계층이 아닌 두 개의 개별 객체 수준 암호화 계층이 제공된다.
  • 고객 제공 키(SSE-C)를 사용하는 서버 측 암호화
    • SSE-C는 사용자가 암호화 키를 관리한다.

S3 스토리지 클래스

EC2에도 여러 유형이 있듯이 S3에도 유형이 있다.

  • S3 Standard
    • 자주 액세스하는 데이터의 일반적인 스토리지용 등급이다.
  • S3 Standard-Infrequent Access
    • 장기간 사용하며 액세스 빈도는 낮은 데이터용 등급이다.
  • S3 One-Zone-Infrequent Access
    • 장기간 사용하고 액세스 빈도가 낮으며 가용 영역 하나에 저장할 수 있는 데이터용 등급이다.
  • S3 Glacier Instant Retrieval
    • 거의 액세스하지 않지만 복원 시간은 밀리초 단위여야하는 아카이브 데이터용 등급이다.
  • S3 Glacier Flexible Retrieval
    • 합리적인 비용에 가장 유동적인 검색 옵션을 제공하며 몇분 ~ 몇 시간 범위인 등급이다.
  • S3 Glacier Deep Archive
    • 장기간 보관해야 하는 스토리지 아카이브 와 디지털 콘텐츠 보존용 등급이다. 12 시간 이내 객체를 복원할 수 있다.
  • S3 Intelligent-Tiering
    • 액세스 패턴이 바뀌거나 알 수 없는 데이터에 유동적으로 활용 가능한 추가 스토리지 등급이다. 스토리지 등급 간에 객체를 자동으로 이동함으로써 비용을 최적화 할 수 있다.

S3 Intellingent-Tiering

S3의 데이터 액세스 패턴이 변경 될 때 자동으로 스토리지 비용을 절감할 수 있는 스토리지 등급이다. 주로 사용 패턴이 불규칙한 경우 스토리지 비용을 줄일 수 있다.
먼저 S3 Intellingent-Tiering 에 객체를 할당하면 Frequent Access 티어에 배치된다. 이 티어의 스토리지 비용은 S3 Standard와 동일하다. 30일 동안 액세스하지 않으면 Infrequent Access 티어로 이동한다. 이 티어는 Standard-IA와 동일하다. 90일 동안 액세스하지 않은 객체는 Archive Instant Access 티어로 이동한다. 이 티어는 S3 Glacier Instant Retrieval 과 동일하다.

S3 버전 관리

S3의 버전을 관리하는 버킷에서는 객체를 실수로 삭제하거나 덮어쓴 객체를 복구할 수 있다. S3에서 객체를 삭제하게 되면 영구적으로 제거되지 않으며 삭제 마커가 삽입된다. 그러면 해당 객체가 현재 객체 버전이 된다. 또한 객체를 덮어쓰면 버킷에 새 객체 버전이 생성된다.
객체를 보호하기 위해 잠슴을 사용할 수 있는데 WORM(Write Once, Read Many) 모델을 객체를 실수로 삭제하거나 덮어쓰는 일을 방지할 수 있다.

수명 주기 정책

S3 수명 주기 정책은 객체 생성 후 기간을 기준으로 객체를 기간후에 삭제 또는 이동할 수 있다. 이런 객체의 수명 주기를 자동화하여 데이터가 주기적으로 순환하도록 할 수 있다.
이러한 방식을 통해 중요도가 낮은 데이터를 정리할 수 있고 비용을 줄일 수 있어 많은 도움이된다.

S3 객체 복제

S3의 모든 스토리지 등급에 저장된 데이터는 최소 3개의 가용 영역에 걸쳐 저장된다. 하지만 OneZone-IA는 단일 영역에 저장된다.
복제시 다음과 같은 태스크를 수행가능하다.

  • 메타데이터를 유지하면서 객체 복제
  • 여러 스토리지 등급에 객체 복제
  • 소유권이 서로 다른 객체 복사본 유지
  • 여러 AWS 리전에 저장된 객체 유지

추가 기능

그외에도 여러가지 기능을 지원한다

S3 멀티파트 업로드

멀티파트 업로드를 사용하면 대용량 객체를 관리 가능한 파트로 분활하여 일관되게 업로드가 가능함
주요 장점으로는 병렬로 처리하여 빠른 처리량을 기대할 수 있다. 또한 빠른복구, 객체 업로드 일시중지 및 대용량 객체 업로드등 많은 장점을 가지고 있다.

S3 Transfer Acceleration

엣지 로케이션을 사용하여 버킷으로 데이터를 빠르게 쉽게 전송이 가능하다.

여기서 엣지 로케이션이란?
AWS 서비스 요청자에 가장 가까이 있는 지점이다. 만약 요청자 위치가 서울이라면 서울에 위치해있는 가장 가까운 AWS 데이터센터를 말하게된다. 엣지 로케이션은 전 세계 주요 도시에 있다. 또한 엣지 로케이션은 요청을 수신하고 더 빠른 전송을 위해 콘텐츠 사본을 캐시한다. CDN 서비스라고 보면 될거같다.

S3 Transfer Acceleration에서는 서버와 클라이언트 애플리케이션 간 거리를 줄일 수 있다. 또한 엣지 로케이션을 사용하는것 만큼 수백 개의 엣지 로케이션 네트워크를 통해 빠른 연결이 가능함.

S3 이벤트 알림

S3 이벤트 알림을 사용하여 버킷에서 특정 객체 이벤트가 발생될 때 알림을 받을 수 있다. 주로 AWS SNS, AWS SQS, Lambda 와 같이 사용한다.

profile
기록의 힘은 대단하다

0개의 댓글