AWS S3란?
- AWS S3(Simple Storage Service)는 Amazon Web Services에서 제공하는 객체 스토리지 서비스로,데이터를 안전하게 저장하고 언제든 접근 가능하도록 설계됨. 확장성이 매우 뛰어나며, 대용량 데이터를 효율적으로 처리할 수 있어 클라우드 스토리지 서비스의 표준으로 자리잡고 있음.
1. 객체 스토리지
- 객체 기반 저장소. 데이터를 파일 단위로 저장.
- 객체는 데이터 자체, 메타데이터(파일 정보), 고유한 ID로 구성됨.
- 디렉토리나 폴더 구조 대신 버킷이란 개념을 사용해 데이터 저장, 관리.
- (버킷은 폴더처럼 보이지만 사실상 논리적 구분임)
2. S3 주요 기능
- 무제한 스토리지: 사실상 무제한의 저장 공간 제공. 파일 크기나 저장하는 데이터 양의 제한이 없으며, 자동 확장됨.
- 높은 내구성: 99.999999999%의 내구성(11 nines durability)을 보장. -> 파일이 손상되거나 유실될 가능성이 거의 없음. 데이터를 여러 개 복제본으로 분산 저장하여 내구성 보장.
- 높은 가용성: 99.99%의 가용성 보장. 언제든 데이터를 업로드하거나 다운로드할 수 있음. 여러 리전에 걸쳐 데이터를 복제 -> 장애 상황에서도 안정적으로 사용 가능
- 비용 효율성: 사용한 만큼만 비용 지불하는 Pay-As-You-Go 방식. 데이터 양과 전송량에 따라 비용 책정. 자주 접근하지 않는 데이터는 저비용 저장 옵션(S3 Glacier)으로 비용 절감 가능.
- 데이터 접근 관리: IAM 및 버킷 정책을 통해 데이터에 대한 세부 접근 권한 설정 가능. 파일마다 접근 제한 / 공개 설정 가능.
S3의 데이터 관리 및 보안
- 버킷(Bucket): 데이터를 저장하는 기본 단위. 각 버킷은 AWS 계정에 종속, 사용자는 버킷 이름 지정, 해당 버킷 내에 데이터 저장 가능. 전 세계적으로 고유한 이름 가져야 하며 데이터를 논리적으로 관리하는 역할을 함.
- 버전 관리(Versioning): 버전 관리 지원. 동일한 파일이 여러 번 수정되어도 각 버전이 저장되며, 필요할 때 이전 버전으로 복원 가능.
- 암호화: 전송 중 또는 저장 중에 데이터 암호화 가능. AWS Key Management Service(KMS)와 연동하여 데이터를 자동으로 암호화하고 관리할 수 있음.
- 액세스 제어: 각 버킷 또는 객체에 대해 세밀한 액세스 제어 가능. 버킷 정책, ACL(Access Control List), IAM 역할을 활용하여 파일 접근 권한 설정 가능.
4. S3 스토리지 클래스
데이터 접근 패턴에 따라 다양한 스토리지 클래스 제공. 비용을 효율적으로 관리 가능.
- S3 Standard: 자주 접근하는 데이터를 위한 스토리지. 높은 가용성과 성능 보장.
- S3 Intelligent-Tiering: 데이터 접근 패턴을 분석해 자주 접근하는 데이터는 Standard로, 덜 접근하는 데이터는 비용 효율적인 클래스로 자동 전환.
- S3 Standard-IA(Infrequent Access): 덜 자주 접근하는 데이터를 위한 스토리지. 저장 비용 낮지만 접근할 때 비용 추가.
- S3 Glacier: 자주 접근하지 않는 데이터를 위한 저렴한 장기 스토리지. 주로 백업 및 아카이브 용도로 사용됨.
- S3 Glacier Deep Archive: 극도로 낮은 비용으로 데이터를 저장하는 옵션. 몇 년 동안 접근하지 않아도 되는 데이터 저장 시 사용.
5. S3의 실제 사용 사례
- 백업 및 복구: 기업들은 데이터를 장기적으로 안전하게 저장, 백업과 복구 시스템 운영. 높은 내구성과 가용성 덕분에 안정적으로 데이터를 복구 가능.
- 미디어 콘텐츠 저장: 동영상, 오디오, 이미지 같은 미디어 파일을 S3에 저장. CDN(Content Delivery Network)과 연동. 전 세계 사용자에게 빠르고 안정적으로 콘텐츠 제공 가능.
- 로그 및 데이터 분석: 애플리케이션 로그나 분석 데이터를 S3에 저장 후 AWS Lambda나 AWS Athena, Amazon Redshift와 같은 서비스를 사용하여 데이터를 분석하고 처리 가능.
- 웹 애플리케이션 호스팅: 정적 웹 사이트 호스팅에 사용 가능. HTML, CSS, JavaScript 파일을 S3 버킷에 업로드하고, 웹 애플리케이션을 배포 가능.
비슷한 다른 서비스 말고 S3를 사용하는 이유
- AWS 에코시스템과의 통합성
- AWS 생태계와 긴밀하게 통합되어 있어, 다른 AWS 서비스(예: Lambda, EC2, RDS, CloudFront)와의 연동이 매우 용이.
- 예를 들어, S3에 파일을 업로드할 때 Lambda 함수를 자동으로 트리거하거나, CloudFront를 통해 전 세계 사용자에게 콘텐츠를 빠르게 제공 가능.
- AWS의 다양한 보안 및 관리 서비스(IAM, CloudTrail, CloudWatch)를 통해 손쉽게 보안 규정 준수와 모니터링 가능.
- 높은 내구성과 안정성
- 99.999999999%의 내구성을 보장.
- 대량의 파일을 저장할 때도 데이터 손실 가능성을 최소화 가능.
- 중요한 데이터를 안전하게 저장하고, 언제든지 빠르게 접근할 수 있다는 점에서 다른 스토리지 서비스보다 강력한 장점.
- 타 클라우드 스토리지 서비스는 S3 수준의 내구성과 가용성을 보장하지 못하는 경우가 많음.
- 비용 효율성 및 스토리지 옵션의 다양성
- 다양한 스토리지 클래스를 제공하여 사용자 요구에 맞춰 비용을 최적화 가능.
- 예를 들어, 자주 접근하는 데이터는 Standard 클래스를, 덜 접근하는 데이터는 Infrequent Access나 Glacier로 저장할 수 있어 비용 절감이 가능.
- 데이터의 접근 패턴이 변경되더라도 S3 Intelligent-Tiering 기능을 통해 자동으로 저비용 스토리지 클래스로 이동 가능.
- 사용자가 데이터의 활용 패턴을 지속적으로 분석할 필요 없이 비용 최적화를 자동으로 처리.
- 유연한 보안 관리와 정책 설정
- 매우 세밀한 보안 정책을 설정 가능.
- IAM, 버킷 정책, ACL(Access Control List) 등을 사용해 버킷 또는 파일 단위로 접근 권한을 설정 가능.
- 객체 수준의 암호화가 가능, 데이터가 전송되거나 저장될 때 자동으로 암호화할 수 있는 기능을 제공. KMS(Key Management Service)를 사용하여 암호화 키를 안전하게 관리할 수 있는 것도 강점.
- 타 스토리지 서비스에 비해 보안 설정의 유연성과 세밀한 제어가 매우 우수.
- 글로벌 커버리지 및 성능
- 전 세계 여러 AWS 리전에 분산되어 있어 지연 시간(latency)을 줄일 수 있으며, 데이터가 지역 내에서 빠르게 접근 가능.
- 여러 리전에 데이터를 복제하는 기능을 제공하여 재해 복구와 성능 향상 모두 가능.
- 글로벌 규모로 데이터를 분산 저장, CloudFront와 같은 AWS 서비스를 활용해 콘텐츠를 사용자 가까운 위치에서 빠르게 제공할 수 있다는 점에서 다른 스토리지 서비스보다 강력한 성능을 발휘.
- 확장성
- 기본적으로 무제한의 확장성을 제공.
- 저장해야 하는 데이터 양에 관계없이 사용량이 늘어날수록 자동으로 확장, 사용자는 물리적인 서버나 하드웨어에 대해 걱정할 필요가 없음.
- 트래픽이 갑자기 증가하거나, 저장해야 할 파일 양이 폭증하는 경우에도 손쉽게 대응할 수 있음.
- 다양한 파일 처리 옵션
- 이벤트 기반 트리거를 설정하여 파일이 업로드되거나 삭제될 때 자동으로 특정 작업(Lambda 함수 실행 등)을 실행할 수 있음.
- 자동화된 워크플로우 구축 가능.
- S3 Select 기능을 통해, 객체 내에서 필요한 데이터만 직접 쿼리할 수 있어 대용량 데이터 파일에서도 부분적인 데이터만을 처리 가능.
- 데이터를 전부 읽지 않고도 필요한 데이터만을 신속하게 가져올 수 있어 효율적.
- 타 클라우드 스토리지 서비스에서는 이러한 데이터 처리의 유연성이 부족하거나 제한적인 경우가 많음.
- 업계 표준
- AWS S3는 객체 스토리지의 업계 표준으로 자리 잡고 있으며, 다른 클라우드 서비스들도 S3 API를 지원하거나 호환 가능한 기능을 제공하는 경우가 많음.
- AWS 외의 클라우드 플랫폼으로 확장하거나 마이그레이션할 때도 유리한 점.
- 수많은 기업, 스타트업, 개발자들이 AWS S3를 선택하고 사용하기 때문에, 방대한 커뮤니티와 레퍼런스를 쉽게 활용 가능.
- 멀티파트 업로드 지원
- S3는 대용량 파일을 업로드할 때 멀티파트 업로드를 지원, 파일을 작은 청크로 나누어 병렬로 업로드 가능.
- 대규모 데이터를 효율적으로 처리하는 데 유리하며, 네트워크 상태가 불안정할 때도 파일 업로드가 실패하지 않도록 도움.
- 타 스토리지 서비스는 멀티파트 업로드 기능이 미흡하거나 제한적으로 제공되는 경우가 많음.
ChatGPT 4o로 찾은 S3와 비슷한 객체 스토리지 서비스를 제공하는 클라우드 플랫폼 예시들
- Google Cloud Storage (GCS)
특징: Google Cloud Platform(GCP)에서 제공하는 객체 스토리지 서비스로, S3와 매우 유사한 기능을 제공합니다. S3와 마찬가지로 대규모 데이터를 저장하고 다양한 스토리지 클래스를 지원하며, GCP의 다른 서비스들과 쉽게 통합할 수 있습니다.
장점: GCP의 빅데이터 도구(BigQuery, Dataflow)와의 통합이 강력하며, 뛰어난 데이터 분석 기능을 제공합니다. - Microsoft Azure Blob Storage
특징: Microsoft Azure에서 제공하는 객체 스토리지 서비스로, 비정형 데이터를 저장하기 위한 서비스입니다. 블록, 페이지, 추가형(blob) 저장소를 지원하며, 다양한 데이터 보존 정책과 고급 관리 기능을 제공합니다.
장점: Azure의 다른 서비스들(특히 AI, 데이터베이스 솔루션)과 쉽게 연동되며, 데이터 백업, 복구, 빅데이터 분석에 많이 활용됩니다. - IBM Cloud Object Storage
특징: IBM 클라우드에서 제공하는 객체 스토리지 서비스로, 대규모 데이터와 장기 보존 데이터를 위한 솔루션을 제공합니다. 고급 암호화 및 데이터 보호 기능을 갖추고 있으며, 지리적으로 분산된 데이터를 관리하는 데 강점이 있습니다.
장점: IBM Watson과의 통합을 통해 AI 및 머신러닝을 쉽게 구현할 수 있으며, 하이브리드 클라우드 환경에서 많이 사용됩니다. - DigitalOcean Spaces
특징: DigitalOcean에서 제공하는 S3 호환 객체 스토리지로, 간단하고 저렴한 클라우드 스토리지 옵션을 제공합니다. S3 API와 호환되며, 소규모 프로젝트나 스타트업에 적합한 경량 스토리지 솔루션입니다.
장점: 사용이 매우 쉽고, 비용이 저렴하여 소규모 애플리케이션에 적합합니다. - Backblaze B2 Cloud Storage
특징: 저비용 객체 스토리지로, S3보다 비용 면에서 매우 저렴합니다. 특히 백업 및 아카이브용으로 많이 사용되며, S3와 유사한 API를 제공합니다.
장점: 대용량 데이터를 저장할 때 매우 저렴한 비용이 가장 큰 장점입니다. 아카이브 데이터 저장 용도로 많이 활용됩니다. - Wasabi Hot Cloud Storage
특징: S3와 호환되는 객체 스토리지 서비스로, S3보다 저렴한 가격으로 제공되는 것이 특징입니다. 성능은 S3와 유사하지만, 특히 장기 보존 데이터를 저장할 때 비용 절감 효과가 큽니다.
장점: 빠른 속도와 저렴한 비용을 제공하여 아카이브, 백업 솔루션으로 많이 선택됩니다. - Oracle Cloud Object Storage
특징: Oracle Cloud에서 제공하는 객체 스토리지 서비스로, Oracle의 다양한 데이터베이스 서비스와 통합이 용이합니다. S3와 유사한 API를 제공하며, 다양한 데이터 보호 옵션을 갖추고 있습니다.
장점: Oracle의 클라우드 환경과 통합이 매우 용이하여, Oracle 기반 애플리케이션에 최적화된 스토리지 솔루션입니다.
'DB & 클라우드 > AWS' 카테고리의 다른 글
[AWS] 권한이 제한된 계정에 권한 부여하기 (0) | 2022.09.05 |
---|