aws

AWS 스토리지(1)

하리하링웹 2024. 6. 28. 20:41

S3 개요

AWS S3(Simple Storage Service)는 다양한 용도로 활용 가능한 객체 스토리지 서비스이다. 아카이브, 로그 파일, 재난 복구 이미지 등의 백업 관리는 물론, 저장된 빅데이터의 분석 작업에도 활용할 수 있다. 또한, 정적 웹사이트 호스팅에도 사용할 수 있다.

객체 스토리지와 블록 스토리지의 차이

  • 블록 스토리지: NTFS, Btrfs, ext4와 같은 파일 시스템을 위해 물리적 저장 장치를 블록 단위로 나누는 저장 방식이다. EC2 인스턴스의 OS 볼륨은 블록 스토리지에 속한다.
  • 객체 스토리지: 어떤 형식의 데이터든 저장할 수 있는 공간으로, 복잡한 규칙 없이 누구나 접속하여 어떤 데이터든 어떤 용량이든 저장할 수 있다. S3는 객체 스토리지이다.

 

S3 서비스 아키텍처

  • 버킷 생성: 기본적으로 최대 100개의 버킷을 생성할 수 있으며, 요청 시 더 많은 버킷을 생성할 수 있다. 버킷은 단일 AWS 리전에만 존재할 수 있으며, 이름은 모든 리전을 통합하여 유일해야 한다.
  • 접두사 및 구분문자: 구분문자 '/'를 사용하여 파일을 그룹화할 수 있다. 예를 들어, 'test/testfile.pdf'와 같이 계층 구조를 만들어 파일을 업로드할 수 있다.
  • 대용량 객체 저장: 객체 하나의 최대 용량은 5TB까지 가능하며, 한 번의 업로드 작업은 5GB까지 가능하다. 100MB를 초과하는 객체는 Multipart Upload를 권장한다. 대용량 파일 전송 시 S3 Transfer Acceleration을 사용하면 전송 속도를 높일 수 있다.
  • 암호화: S3에 저장하는 데이터는 기본적으로 암호화하는 것이 좋다. 서버측 암호화와 클라이언트측 암호화 방식을 선택할 수 있다.
    서버측 암호화: 서버측 암호화는 S3 플랫폼 내에서 진행된다. 아래의 옵션중 하나를 택할 수 있다.
    • 기업용 표준 키
    • envelope key 기법 사용
    • 커스텀 키

      클라이언트측 암호화: AWS KMS - Managed Customer Master Key(CMK)를 사용해 S3에 전송하기 전에 데이터 암호        화가 가능하다

로그 관리

기본적으로 로깅은 비활성화되어 있지만, 소스 버킷과 타겟 버킷을 설정하여 타겟 버킷에 로깅을 할 수 있다. 다만 약간의 지연이 발생할 수 있다.

 

 

S3의 내구성 및 가용성

데이터 유지 여부(내구성), 신속한 데이터 인출(가용성), 비용 절약(비용효율성)에 따라 S3 스토리지 클래스를 선택할 수 있다.

종국적 일관성 데이터

S3는 다수의 지역에 데이터를 복제하므로, 기존 객체 업데이트 이후 전파까지 시간이 걸릴 수 있다. 이를 종국적 일관성 표준에 따라 관리하며, 데이터 상태 변경에 1~2초의 지연을 감안하여 작업을 수행해야 한다.

 

 

S3 객체 라이프사이클

  • 버전 관리: 버킷 레벨에서 버전 관리 기능을 활성화하여 구 버전을 저장하고 필요 시 사용할 수 있다.
  • 라이프사이클 관리: 버킷 레벨의 라이프사이클 규칙을 작성하여 지정된 일수에 따라 자동으로 스토리지 클래스를 변경할 수 있다.

 

 

'aws' 카테고리의 다른 글

[AWS]Compute Service(2)  (0) 2024.06.23
[AWS]Compute Service(1)  (0) 2024.06.20