본문 바로가기

MLOps/클라우드

[CLOUD] Amazon S3?

Amazon S3?

갑자기 s3 타령?

  • MLops 하려면, 언젠가는 필요할 거라고 생각하기 때문..

Reference

AWS 공식 문서의 Aws S3란?


Amazon S3

S3?
  • 3개의 S(Simple Storage Service), 즉 Amazon Simple Storage Service
S3 기능

스토리지 클래스

  • S3는 여러 사용 사례에 맞춰 설계된 다양한 스토리지 클래스. S3의 각 객체는 그와 연결된 스토리지 클래스가 있음
  • 쉽게 말하면, 자주 액세스 하냐 안 하냐?, 밀리초 단위마다 액세스 하냐? 와 같은 상황 별 클래스들이 존재하는데, 각 클래스는 비용이 다르기 때문에 쓸 용도에 맞게 선택해서 쓸 것(외울 필요는 없고 스토리지 존재 여부만 알자)

데이터 처리

  • 데이터를 변환하고 워크플로를 트리거하여 다양한 처리작업을 자동화 할 수 있음
  • 쉽게 말해, AWS Lambda를 사용해서 S3에 이미지가 들어오는 걸 이벤트로 특정 워크플로를 실행
  • 기본적으로 AWS Lambda에서는 다양한 프로그래밍 언어를 사용할 수 있고 파이썬의 경우 Boto3을 내장하고 있음

Amazon S3 작동 방식
  1. S3에 데이터를 저장하기 위해서는 버킷(Bucket)을 생성
  2. 버킷 이름 및 AWS 리전을 지정 후  Amazon S3에서 객체로 해당 버킷에 데이터를 업로드

버킷(Bucket)?

  • S3에서 생성하는 최상위 디렉토리 개념
  • 버킷에 객체(Object)를 저장할 수 있음

객체(Object)?

  • S3에 저장되는 기본 개체(단위)
  • 객체는 객체 데이터와 메타 데이터로 구성(예: 사진 객체 = 이미지 + 사진 촬영 시간)

리전(Region)?

  • 서울, 도쿄, 유럽, 미국같은 지역을 선택하는 것을 말하는데 사용자가 명시적으로 다른 리전으로 복제하는 행위를 하지 않으면 다른 리전으로 객체가 이동할 수 없음.(한국 리전에 저장된 객체가 도쿄 리전으로 이동할 수 없음)

그래서 왜 S3를 사용하는 가?
  • 클라우드 서비스 장점 중 하나인, 사용한 스토리지만큼 비용을 지불 하기 때문
  • 버킷에 저장되는 객체수는 무한대이고 사전에 스토리지 요구 사항을 정의 할 필요가 없어서 자동 축소/확장
  • 그 외 데이터를 보관 및 관리하는데 많은 기능을 지원하기 때문