본문 바로가기
Tech Story/AWS

[AWS] 스토리지 서비스 - Amazon S3

by 다온(都来) 2022. 10. 23.

Amazon Simple Storage Service(Amazon S3)

인터넷상 어디서나 원하는 양의 데이터를 저장하고 검색할 수 있도록 구축된객체 스토리지

★ 여기서 잠깐!객체 스토리지 :데이터, 메타데이터, 키로 구성되어 있음 /파일 수정 시, 전체 객체가 업데이트 됨/데이터 :이미지, 동영상, 텍스트 문서, 기타 유형의 파일/메타 데이터 :데이터의 내용, 사용 방법, 객체 크기 등에 대한 정보/키 :고유한 식별자


Amazon S3 Icon
이미지출처 : AWS

 

 

Amazon S3 특징

1. 높은 내구성 : 연간 객체에 대해 99.99999999999%의 내구성을 제공하도록 설계되어 있다.
이 숫자는 Amazon S3에 10,000,000개의 객체를 저장할 경우 1만 년 동안 객체 1개가 손실될 확률이다.
기본적으로 S3에 하나의 객체를 업로드하면 AWS에서 Amazon S3 리전 내 최소 3개의 AZ에 걸쳐 여러 디바이스에 객체를
중복 저장한다. 이러한 이유로 높은 가용성과 내구성을 지닌 스토리지로써 백업과 아카이브 용도로 유용하게 사용이 가능하다.

 

2. 높은 수평확장성(유연성) : Amazon S3에 원하는 형식의 데이터를 원하는 만큼 저장 가능하다.

이런 높은 수평 확장성 덕분에 손쉽게 다수의 동시 트랜잭션이 가능하므로 금융거래 분석, 클릭스트림 분석 등의 워크로드를 지원하는 빅데이터의 분석용 스토리지로 유용하다.

 

3. 이벤트 알림 기능 : 이 기능을 사용하면 특정 버킷으로 객체가 업로드되거나 삭제되는 등 특정 이벤트가 발생할 때 자동 알림을 보내도록 설정 가능하다. 이러한 알림은 특히 개발자에게 유용하게 사용할 수 있는데, 알림을 사용해서 사용자에게 전송되거나 AWS Lambda 스크립트와 같은 다른 프로세스를 트리거하는 데 사용할 수 있다. 이러한 이유로 S3나 다른 AWS 서비스간에 작업을 자동화할 수 있다.

 

4. 고유한 URL에 연결 : S3에 업로드 된 각 객체는 고유한 URL에 연결된다. 이를 활용해서 정적 웹 콘텐츠/미디어를 저장하고 배포할 수 있다. 간단한 FTP애플리케이션/Amazon.com 소매 웹 사이트와 같은 복잡한 웹 애플리케이션을 손쉽게 구축할 수 있다.

 

5. 데이터를 저장 및 검색하도록 구축 : Amazon S3는 굉장히 다양한 사용 사례에서 사용이 가능한 데, 특히 데이터 레이크/빅데이터 분석에 많이 사용된다. 데이터 레이크 규모 확장에 따라서 애플리케이션/애플리케이션 세트에 대해 특정 권한이 있는 S3 액세스 포인트를 사용하여 데이터에 대한 액세스를 쉽게 구성할 수 있다. 또한, AWS Lake Formation을 사용하면 데이터 레이크를 신속하게 생성할 수 있으며 보안, 거버넌스 및 감사 정책을 중앙에서 정의하고 적용할 수 있다. 이 서비스는 데이터베이스와 S3를 리소스로 하여서 데이터를 수집하고 Amazon S3의 새로운 데이터 레이크로 이동한 후 기계 학습 알고리즘을 사용하여 데이터를 정리하고 분류할 수 있다.

 

6. 클라우드 네이티브 애플리케이션에 대한 스토리지로 사용 : Amazon S3를 사용하여 클라우드 네이티브 애플리케이션을 구성하는 마이크로 서비스에서 공유하는 개발 및 프로덕션 데이터를 저장함으로써 빠르고 비용 효율적인 모바일 및 인터넷 기반 애플리케이션을 구축할 수 있다. Amazon S3를 사용할 경우 용량에 상관없이 데이터를 업로드하고 어디에서든 액세스하여 애플리케이션을 더 빠르게 배포하고 더 많은 사용자가 액세스하도록 구성할 수 있다.

 

7. 데이터 버킷이라는 리소스 내 객체 단위로 저장 : '버킷'이라는 용어는 파일 저장과 함께 사용하는 다른 접근 방식을 말한다. '폴더' 대신 여러 개의 객체를 저장할 수 있는 큰 공간으로 '버킷'을 생성한다. 파일 스토리지처럼 계층적으로 데이터에 접근하는 구조가 아니라 객체 스토리지라는 점이 중요하다.

 

8. 간단한 키 벨류값 기반의 객체 스토리지 : 데이터 저장할 때 나중에 데이터를 검색하는 데 사용할 수 있는 고유한 객체 키를 할당한다. 키에는 어떤 문자열 모두 사용할 수 있으며, 계층적 속성을 모방하여 구성할 수 있다. 이렇게 키와 벨류값으로 구성되어 있어서 굉장히 신속하게 저장하신 객체를 검색해서 사용할 수 있다. 또는 S3 객체 태깅을 사용하여 모든 S3 버킷 또는 접두사에 걸쳐 데이터를 관리할 수 있다. 생성한 버킷 내에 원하는 만큼 데이터를 저장하고 버킷에서 객체를 쓰거나 읽거나 삭제가 가능하다. 한 번에 업로드할 수 있는 객체 크기는 최대 5TB의 제한이 있다. 그러나 버킷에 올릴 수 있는 객체의 수에는 제한이 없는 최상의 수평확장성을 가지고 있다. 생성한 버킷 그리고 객체에 대한 모든 액세스를 직접 제어할 수 있다. 예를 들어 버킷에서 객체 생성, 삭제 및 검색할 수 있는 사용자를 제어하는 정책을 생성할 수 있다. 또한 버킷과 해당 객체의 액세스 로그를 볼 수 있으며 지연시간 최적화, 비용 최소화, 규정 요구 사항 준수 등 다양한 필요에 따라 서비스를 사용할 AWS 리전 선택이 가능하다.

댓글