S3 란 무엇인가?

JangUT·2025년 2월 25일

📌S3 (Simple Storage Service) 개념


  • Amazon S3는 아마존 웹 서비스가 제공하는 클라우드 스토리지 서비스입니다.
  • S3는 파일, 데이터 등 다양한 유형의 미디어를 저장하고 관리하는 데 사용되는 웹 기반 스토리지 시스템입니다.
  • 저장하는 데이터 양에 대한 비용도 저렴하고, 저장할 수 있는 데이터 양도 무한에 가깝습니다.

📌S3를 사용하는 이유


  • S3는 저장 용량이 무한대이고 파일 저장에 최적화되어 있다. 용량을 추가하거나 성능 작업 불필요
  • 비용은 EC2와 EBS로 구축하는 것보다 훨씬 저렴
  • S3 자체가 수천대 이상의 매우 성능이 좋은 웹 서버로 구성 -> Auto Scaling 이나 Load Balancing 에 신경쓰지 않아도 된다.
  • 웹하드 서비스와 비슷하지만 별도의 클라이언트 설치를 통하지 않고 HTTP 프로토콜로 파이리 업로드 및 다운로드 처리가 가능
  • S3 자체로 정적 웹서비스 가능

✅S3 사용예

- 클라우드 저장소 (구글 드라이브처럼 사용 가능)
- 서비스의 대용량 파일 저장소 - 이미지, 동영상, 빅데이터 (ex: 넷플릭스)
- 중요한 파일은 EC2의 SSD (EBS : Elastic Block Store)에 저장하지 않고 s3에 저장

📌s3 버킷 / 객체 개념


  • S3에는 Bucket과 Object라는 단위가 있다.

  • 객체는 데이터와 메타데이터를 구성하고 있는 저장 단위이며

  • 버킷은 이런한 객체를 저장하고 관리하는 역할을 한다.

  • 버킷은 디렉토리 개념으로 키는 파일명으로 이해해도 된다.

  • 만약 User라는 이름의 버킷에 profile.png 객체 파일을 저장하면
    http: //User.s3.amazonaws.com/profile.png URL이 생성된다.

  • S3을 구성할 때, 버킷이라는 컨테이너를 놓을 리전을 선택하고, 해당 컨테이너 내부에 객체라는 형태로 데이터를 저장하는 형태로 스토리지를 구축한다.

✅S3에 저장되는 데이터는 모두 객체라고 부른다.

  • 객체는 하나 당 1Byte에서 최대 5TB까지 저장이 가능하며 저장할 수 있는 객체의 수는 제한이 없다.

  • 각 객체는 데이터와 메타데이터를 지니는데 S3 버킷에 올리는 객체가 바로 데이터이고, 최종 수정일, 파일 타입 등의 데이터를 메타데이터라고 한다.

  • 객체는 키를 통해서 버킷에서 유일한 것으로 식별될 수 있으면 버킷에 존재하는 모든 객체는 단 하나의 키를 지니다.

  • 따라서 S3 내에서 버킷, 키, 버전 ID를 통해 특정 객체를 파악할 수 있다.

📌S3 리전(Region) 구성


  • S3가 생성한 버킷을 저장할 위치를 저장한다.
  • 리전 간 객체 공유는 불가능
  • 버킷 위치를 어디에 지정하냐에 따라 지연 시간, 비용 등이 결정되게 된다.

📌S3 버킷(Bucket) 구성


  • Amazon S3에서 생성되는 최상위의 디렉토리이며, Amazon S3에 저장된 객체의 컨테이너이다.
  • S3상의 모든 객체는 버킷에 포함된다.
  • 버킷의 이름은 S3에서 유일해야 한다.
  • 한 계정 당 최대 100개의 버킷 사용 가능
  • 버킷 주소는 https: //bucketname.s3.region.amazonaws.com 형태로 이루어진다.
  • 버킷을 생성하면 default로 private 상태이다.
  • 버킷 내부에 다른 버킷을 둘 수 없다.
  • 버킷 소유권은 이전할 수 없다.

s3를 사용하는 이유와 버킷과 리전에 대핸 알아봤습니다.

참고 자료

https://inpa.tistory.com/entry/AWS-%F0%9F%93%9A-S3-%EB%B2%84%ED%82%B7-%EC%83%9D%EC%84%B1-%EC%82%AC%EC%9A%A9%EB%B2%95-%EC%8B%A4%EC%A0%84-%EA%B5%AC%EC%B6%95

profile
평범한 개발자

0개의 댓글