[이론] AWS S3

조민수·2024년 7월 24일
0

개발 이론

목록 보기
3/8

이번엔, 현재 진행중인 프로젝트 'YACHT DICE'에 도입 예정인 AWS S3에 대해
알아보고자 한다.

아직 한 번도 안써봐서 이론적 개념을 잡고 쓰는게 도움이 훨씬 될거라고 생각이 들었다.


AWS S3 란?

Amazon S3(Simple Storage Service) 는 AWS가 제공하는 클라우드 스토리지 서비스로
S3는 파일, 데이터 및 다양한 유형의 미디어 등을 저장, 관리에 사용되는 웹 기반 스토리지이다.

저장하는 데이터 양에 대한 저렴한 비용 및 무한에 가까운 저장할 수 있는 데이터 양이 특장점이다.

S3 주요 개념

1. 버킷 : Bucket

  • 버킷은 S3에서 데이터를 저장하는 컨테이너이다.
    모든 S3 객체는 버킷에 저장된다.
  • 버킷은 Unique한 이름(id)를 가져야 하며, 특정 AWS Region에 located 된다.

2. 객체 : Object

  • S3 버킷에 저장되는 실제 데이터 단위, 파일 데이터 + 메타데이터로 구성된다.
  • 각 객체는 key를 통해 접근할 수 있다.
  • 크기는 1Byte ~ 5TB, 저장 가능 객체 수는 무제한

3. 키 : Key

  • 객체의 고유 식별자

4. 리전 : Region

  • S3 버킷이 위치하는 지역
  • 데이터 접근 속도, 규제 요건을 고려해 리전을 선택해야한다.

5. S3 Glacier

  • 장기 보관, 아카이빙을 위해 설계된 매우 저렴한 스토리지
  • 자주 접근하지 않는 데이터를 안전하게 저장할 때 사용되는 스토리지

※ S3의 객체를 Upload/Download 하는 데에는 HTTP/HTTPS를 통한 API, 즉 REST API 형태가 사용된다.


S3 주요 기능

1. 확장성

  • 자동 확장, 대규모 데이터 처리 가능, 초기 설정 없이 필요한 만큼의 데이터 저장 가능

2. 내구성 및 가용성

  • 데이터 손실 방지를 위해 데이터를 복제해 저장한다.

3. 보안

  • 다양한 보안 기능을 제공한다.
    각 버킷, 객체마다 다른 접근 권한을 부여할 수 있다.
  • 서버 측 암호화, 전송 중 암호화를 지원한다.

4. 버전 관리

  • 객체의 버전 관리를 통해 실수로 삭제하거나, 덮어쓰는 것을 방지할 수 있다.
  • 이전 버전 유지를 통해 필요 시, 복구할 수 있다.

5. 수명 주기 관리

  • 객체의 수명 주기를 정의해 객체를 다른 스토리지 클래스로 이동/삭제 할 수 있다.
  • 비용 절감 및 스토리지 효율성의 장점을 가진다.

6. 이벤트 알림

  • S3 event를 통해 객체의 생성, 삭제, 복사 등의 작업 알림을 받을 수 있다.
  • 이를 통한 자동화 서비스 구축이 가능하다.

Next step

다음 글에서는 AWS S3.img, .mp3 와 같은 정적 파일을 업로드하고
이를 React TypeScript 환경에서 사용하는 과정을 포스팅하겠다.


[참고자료]

profile
사람을 좋아하는 Front-End 개발자

0개의 댓글