본문 바로가기

Cloud/AWS

[AWS]S3서비스에 대하여...


안녕하세요!

 

두루뭉실 블로그의 주인장 두루뭉실 엔지니어입니다!

 

오늘은 본격적으로 AWS의 S3 서비스에 대해 알아보겠습니다!

우선, 오늘도 시작하기 전에

S3 서비스에 대한 공식 문서 링크로 남기겠습니다!

 

 

What is Amazon S3? - Amazon Simple Storage Service

What is Amazon S3? Amazon Simple Storage Service (Amazon S3) is an object storage service that offers industry-leading scalability, data availability, security, and performance. Customers of all sizes and industries can use Amazon S3 to store and protect a

docs.aws.amazon.com


1.  AWS S3란 무엇인가?

 

귀엽게 생긴 S3 로고,,,

 

AWS S3는 AWS Simple Storage Service를 줄여서 부르는 말입니다.

 

직역하면 간단한 스토리지 서비스인데, 일단 IaaS임을 알 수 있습니다.

 

AWS의 공홈에 어떻게 안내되어있는지 볼까요?

 

 

AWS S3는 업계 최고의 확장성, 데이터 가용성, 보안과 성능을 제공하는 객체 스토리지 서비스이다.

 


객체 스토리지 서비스, object storage service를 알기 위해

클라우드의 스토리지 종류에 대해 알아보겠습니다!

 

 

클라우드 스토리지의 3가지 유형
- 파일 스토리지, 오브젝트 스토리지, 블록 스토리지

1. 파일 스토리지

  • 가장 익숙한 형태의 스토리지입니다.
  • Window의 탐색기나 MacOS의 Finder에서 파일과 폴더 형태로 정리되는 계층적인 스토리지입니다.
  • 데이터 양이 늘어나면서 파일과 폴더를 지속적으로 추적 해야 하기 때문에 리소스에 대한 요구가 증가하여 성능이 떨어질 수 있습니다.
  • 하지만, 파일 스토리지는 PC와 서버에서 일상적인 작업을 수행하기에 적합하여 많이 사용됩니다.
  • 일반적으로, Network Attached Storage라고 불리는 NAS에 사용됩니다.

 

2. 오브젝트 스토리지

  • '오브젝트'라고 불리는 데이터 조각(단위)을 가져와서 객체로 지정하고, 개별 단위로 저장하는 유형입니다.
  • 이러한 오브젝트는 PDF, 비디오, 오디오, 텍스트, 웹사이트 데이터 등 기타 다른 파일 유형으로 사실상 거의 모든 데이터 유형이 될 수 있습니다. 
  • 구조화되지 않은 대량의 데이터를 저장하기 위한 데이터 스토리지 아키텍처입니다.
  • 각 데이터 조각을 하나의 객체로 개별 저장소에 보관하며 메타데이터와 고유 식별자를 함께 저장하므로 데이터 액세스와 검색이 용이한 스토리지 저장 방식입니다.
  • 즉, 오브젝트 스토리지에서는 객체의 키만 알고 있으면 빠르고 쉽게 대상을 검색할 수 있습니다.
  • 대리 주차 방식에 비유를 많이 하는데, 사용자는 주차 위치를 알 필요가 없고 키를 대리기사에게 주어 주차를 요청하거나 차를 가져와달라고 하는 형태입니다.

3. 블록 스토리지

  • 데이터를 블록이라는 고정된 단위로 나뉘어 스토리지에 저장하는 방식입니다.
  • 즉, 단일 스토리지 볼륨을 '블록'이라는 개별 단위로 분할하여 저장하는 방식입니다.
  • DB 혹은 ERP 시스템과 같은 엔터프라이즈 환경의 애플리케이션에 지연 시간이 짧다는 장점을 활용하여 사용됩니다.
  • 주차장에 비유하자면, 블록 스토리지는 주차장이고 블록은 주차장의 구분된 한 면으로 비유할 수 있습니다. 

다시 돌아와서,

S3는 스토리지의 3가지 종류 중 오브젝트 스토리지에 해당됩니다!

 

즉, 오브젝트 스토리지의 확장성과 메타 데이터의 특성을 활용하여

규모와 유연성이 필요한 최신 애플리케이션을 구축하는데 적합하며,

분석, 백업 또는 아카이브를 위해 기존 데이터 스토어를 가져오는 용도로 사용 가능합니다!


2.  AWS S3 구조

 

S3를 사용하기 전에 반드시 알아야 할 2개의 개념이 있습니다.

 

바로! 두구두구두구,,,,

 

Bucket(버킷)과 Object(오브젝트)입니다!

 

버킷하면 아이스버킷 챌린지 떠오르시지 않나요?

아이스 버킷 챌린지에서  버킷이 얼음을 담는 통이었죠!!

 

여기서 버킷도 같은 의미입니다!

 

다음 개념을 보시죠!

 

  • Bucket(버킷) : 데이터 저장소, 오브젝트를 저장하고 관리하는 역할
  • Object(객체) : 데이터와 메타데이터를 구성하고 있는 저장 단위

느낌적인 느낌으로

버킷과 오브젝트에 대해서 알게 되었는데

어떻게 사용하면 될까요????

 

맞습니다!

 

1. 버킷을 만든다.

2. 오브젝트에 버킷을 저장한다.

3. 접근 권한을 만들고 공개한다.

 

이러한 3단계의 큰 틀로 S3 서비스를 이용할 수 있습니다!


3.  AWS S3 요소

 

S3를 운영하기 위해 4가지 요소를 알아두면 좋습니다!

 

Key, Value, Meta Data, Version ID

키, 값, 메타 데이터, 버전 아이디

 

  • Key(키) : 파일의 이름(aws_documetation.txt, profile_photo.jpeg 등)
  • Value(값) : 파일의 데이터
  • Meta Data(메타 데이터) : 저장된 파일에 대한 추가 정보
  • Version ID(버전 아이디) : 파일의 버전 관리를 위한 고유 아이디

4.  AWS S3 스토리지 클래스

 

S3 서비스는 저장 장소 형태가 고정된 것이 아니라,

내구성, 가격 및 용도별로 스토리지 클래스를 제공합니다.

 

  S3 Standard S3 Standard-IA S3 One-Zone-IA Glacier
가용 영역 >= 3 >= 3 1 >= 3
내구성 매우 높음(99.9999999999%)
용도 범용 접근성 낮음 유연한 Scale 조정 아카이브

 


스토리지 클래스 별 목적
  1. S3 Standard : 자주 액세스 하는 데이터(한 달에 한번 이상), 밀리초 단위의 액세스
  2. S3 Standard-IA : 밀리초 단위의 액세스로 한 달에 한 번 이따금 액세스하는 수명이 긴 데이터
  3. S3 Intelligent-Tiering : 알 수 없거나 변경되거나 예측할 수 없는 액세스 패턴이 있는 데이터
  4. S3 One Zone-IA : 재생성 가능하고 자주 액세스 하지 않는 데이터(한 달에 한 번), 밀리초 단위의 액세스
  5. S3 Glacier Instant Retrieval  : 밀리초 단위의 액세스로 분기에 한 번 액세스 하는 수명이 긴 아카이브 데이터
  6. S3 Glacier Flexible Retrieval : 몇 분에서 몇 시간의 검색 시간으로 1년에 한 번 액세스하는 수명이 긴 아카이브 데이터

* cf) S3 One Zone-IA는 재해로 인한 가용 영역의 물리적 손실로부터 복원할 수 없습니다!


5. AWS S3의 특징

 

위에서 살펴본, 스토리지 클래스를 이해했다면

대략적인 특징을 파악할 수 있습니다!

 

 

1) 높은 내구성

 

AWS S3 서비스는 중요한 데이터를 저장할 수 있으며,

99.9999999999%의 객체 내구성을 보장합니다.

 

1천억 개의 파일을 저장한다면,

단 하나의 파일 정도만 유실 가능성을 가진 것을 의미합니다.

 

즉, HDD/SDD를 가지고 직접 스토리지를 운영하는 것보다

훨씬 높은 내구성으로 스토리지를 운영할 수 있습니다.

 

 

2) 손쉬운 확장성

 

사용량 예측이 어려운 서비스에 효율적 대응이 가능합니다.

 

개별 파일 크기는 0~5Tb까지 저장 가능합니다.

 

파일 수의 제한이 없으며, 데이터를 무제한 저장할 수 있습니다.

 

또한, 서비스하는 제품이나 사용자의 트래픽에 대해

고려하지 않아도 원하는 만큼 확장 가능합니다!

 

 

3) 보안성과 편리성

 

AWS S3는 HTTPS 보안 프로토콜을 제공하며,

 IAM 사용자를 통해 인증된 사용자만 접근 가능하게 관리할 수 있습니다.

 

또한, 별도의 프로그램 설치나 개발을 하지 않아도

AWS 콘솔 창에서 바로 설정할 수 있습니다.

 

또한, 새로운 파일로 덮어쓸 때

기존 파일에 대한 정보를 유지시키고 싶다면,

버저닝(Versioning)을 활성화하여 백업본을 만들 수 있습니다.

 

* 버저닝(Versioning)이란?

S3는 특정 버킷의 객체들에 대하여 버전 관리 기능을 하는 버저닝 기능을 제공한다.

버저닝 기능을 사용하면 파일을 삭제 후 복원할 수 있고 이전으로 되돌릴 수도 있다.

하지만 버저닝 되는 객체도 그만큼 S3의 용량을 차지한다. 

 

 

4) 관리 유연성

 

스토리지 관리 및 관리 기능 세트를 제공합니다.

 

스토리지 관리자는 데이터 사용 추세를 분류, 보고 및 시각화하여

비용을 줄임으로써 서비스 수준을 높일 수 있습니다.

 

객체는 사용자 정의가 가능한 고유한 메타데이터 태그의 지정을 통해

워크로드에 대한 스토리지 사용, 비용 및 보안을

개별적으로 확인 및 제어가 가능합니다.

 

S3 인벤토리 기능은 유지 관리, 규정 준수 또는 분석 작업을 위해

객체 및 해당 메타 데이터에 대한 예약된 보고서를 제공합니다.


AWS S3 서비스, 대체 무엇인지

이번 게시물을 통해 알아보았습니다!

 

요약하자면,

 

1. AWS S3는 오브젝트 스토리지이다.

 

2. 버킷과 오브젝트로 구성되고, 오브젝트를 버킷에 저장하여 접근권한을 부여하여 공개한다.

 

3. 키, 값, 메타 데이터, 버전 아이디로 서비스를 운영할 수 있다

 

4. S3는 고가용성, 확장성, 보안성과 편리성, 관리 유연성을 가지나

"S3 One Zone-IA"의 경우 물리적 손실로부터 복원 불가능하다.

 

 

이상 두루뭉실 블로그의 주인장 두루뭉실 엔지니어였습니다!

 

감사합니다!