-
Amazon S3란?AWS 2022. 3. 12. 21:07
Amazon S3란?
Amazon Simple Storage Service(Amazon S3)의 약자로써 S가 3개 존재하기 때문에 S3로 불립니다.
파일 서버의 역할을 하는 서비스이며, 일반적인 파일서버는 트래픽이 증가하면 장비를 증설해야 하지만 S3는 이러한 일들을 대신 수행합니다.
Amazon S3는 AWS에서 사용할 수 있는 유일한 스토리지 서비스는 아닙니다.
Amazion EC2용으로 특별히 설계된 Amazon Elastic Block Storage(EBS) 및 Elastic File System(EFS)도 있습니다.
Amazon S3 작동방식
Amazon S3는 데이터를 버킷 내의 객체로 저장하는 객체 스토리지 서비스입니다.
Bucket과 Object라는 단위가 존재합니다.
Object
객체 데이터와 해당 파일을 설명하는 메타데이터로 구성됩니다.
메타데이터는 객체를 설명하는 이름-값으로 구성되어 있습니다.(수정한 날짜 등등)
1Byte부터 5TB까지의 크기가 허용됩니다.
Bucket
객체에 대한 컨테이너로 Object를 저장합니다.
계정별로 100개까지 생성이 가능하며 Buckey에 저장할 수 있는 객체수와 용량을 무제한입니다.
버킷에 포함된 모든 객체에 대해서 일괄적으로 인증과 접속 제한을 걸 수 있습니다.
버킷 내의 모든 객체들은 정확히 하나의 키를 갖습니다. (DB의 primary key 같은 개념)
키를 통해 각 객체를 고유하게 식별합니다.
Amazon S3 어떻게 활용해야 할까요?
백업용 공간으로 활용
한정적인 서버 내 로컬 디스크 대신 Amazon S3를 사용하여 이미지 업로드 기능의 저장소로 활용
웹 서버의 파일 서버에서 제공하던 사용자 파일들을 토큰을 받아 Amazon S3에서 바로 다운로드하도록 활용
게시판이나 블로그 글이 포스팅되기 전 첨부 파일을 미리 업로드하였으나, 글을 포스팅하지 않을 경우 cron 등으로 주기적으로 검사하여 파일을 삭제하였는데, Amazon S3를 통해 임시 버킷에 첨부 파일을 올리고, 해당 버킷의 오브젝트는 자동으로 삭제되게 하여 별도의 개발 없이 불필요한 리소스를 제거로 활용
Amazon S3와 AWS Lambda를 결합하여 S3에 업로드됨과 동시에 Event Trigger를 통해 Lambda 함수를 실행하여 Elastic Transcoder로 파일 인코딩 후 S3에 트랜스 코딩된 파일을 생성합니다. S3를 단순히 저장소로 활용하는 것이 아닌 이벤트 실행을 추가적인 작업을 활용
애플리케이션 Log를 수집하기 위해 Amazon EFS를 사용하던 중 용량이 많아지면 확장이 쉽지가 않음. cron으로 Amazon S3에 업로드 하여 보관으로 활용 이를 통해 Amazon Athena를 사용하여 로그 분석도 용이
엄청난 개수가 생성되는 데이터를 자체 고성능 스토리지에 저장하고 있었으며 스토리지 확장의 비용과 기간이 걸림돌이 되었지만 S3를 활용하여 확장성을 해결하는데 활용
S3 vs EFS vs EBS
AWS는 다양한 스토리지 솔루션을 제공하지만 일반적인 스토리지 요구 사항이 있는 사용자의 경우 EBS, EFS 및 S3의 세 가지 서비스에 고려합니다.
각 서비스의 차이점은 어떤것이 있을까요?
EBS
고성능 , 인스턴스 하나 당 블록 스토리지
단일 인스턴스에서만 접속할 수 있기 때문에 하드디스크와 유사합니다.
단일 인스턴스에 고성능의 스토리지가 필요할 때 사용됩니다.
EFS
여러 EC2 인스턴스를 위한 확장 가능한 파일 스토리지
EBS와 달리 여러개의EC2 인스턴스에 의해 접근이 가능합니다.
핵심 기능으로는 확장성이 있습니다.
필요에 따라 축소 확장할 수 있습니다.
S3
복잡한 쿼리 및 문서 데이터를 위한 object 저장소
EFS처럼 확장 가능하고 여러개의 EC2 인스턴스에서 사용될 수 있습니다.
하지만 다른 클라우드 서비스에서도 접근이 가능합니다.
파일 시스템과는 다르게 평면적으로 데이터를 저장합니다.
Amazon EC2 VS Amazion S3
Amazon EC2는 클라우드에서 다양한 애플리케이션을 실행하는 데 사용됩니다.
응용 프로그램을 작동하려면 일부 정적 데이터가 필요할 수 있습니다.
이러한 경우 Amazon S3는 웹 사이트 호스팅용 데이터와 같은 모든 정적 데이터를 위한 간편하고 확장성이 뛰어난 스토리지를 제공합니다.
근본적으로 다른 유형의 서비스이기 때문에 비교를 할 순 없습니다.
EC2는 클라우드에서 서버를 실행할 수 있도록 하고, S3는 대량의 정적 데이터를 저장하도록 설계되어있습니다.
서로를 보완하며 함께 사용되는 경우가 많습니다.
Amazon S3 vs Azure Blob Storage vs Google Cloud Storage
세 가지 스토리지 서비스는 모두 버전 관리, 저장 시 암호화, 객체를 공개적으로 액세스 하거나 완전히 비공개로 만드는 옵션을 포함한 세분화된 보안을 제공합니다.
세 가지 스토리지 서비스 모두 데이터의 성질에 따라 적절한 스토리지 클래스를 선택할 수 있습니다.
Azure를 예로 들어보겠습니다.
Azure Blob Storage
- 핫 계층 - 자주 액세스 하거나 수정하는 데이터를 저장하도록 최적화된 온라인 계층입니다. 핫 계층은 스토리지 비용이 가장 높지만 액세스 비용은 가장 낮습니다.
- 쿨 계층 - 자주 액세스하거나 수정하지 않는 데이터를 저장하는 데 최적화된 온라인 계층입니다. Cool 계층의 데이터는 최소 30일 동안 저장해야 합니다. Cool 계층은 Hot 계층에 비해 스토리지 비용이 낮고 액세스 비용이 높습니다.
- 아카이브 계층 - 거의 액세스하지 않고 몇 시간 단위로 유연한 대기 시간 요구 사항이 있는 데이터를 저장하는 데 최적화된 오프라인 계층입니다. 아카이브 계층의 데이터는 최소 180일 동안 저장해야 합니다.
이런 식으로 데이터가 얼마나 자주 조회되는지를 기준으로 나누어 저장한다면 비용을 절감할 수 있습니다.
출처
https://www.msp360.com/resources/blog/amazon-ec2-vs-amazon-s3/
https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/Welcome.html#CoreConcepts
https://aws.amazon.com/ko/blogs/korea/amazon-s3-15th-anniversary-voices-of-korean-customers/
https://docs.microsoft.com/en-us/azure/architecture/aws-professional/storage
'AWS' 카테고리의 다른 글
[AWS] AWS MediaConvert Jobtemplate Kotlin SDK 적용 (0) 2022.12.25 [AWS] MediaConvert createJob Kotlin SDK 적용 (0) 2022.12.24 [AWS] IAM이란? (0) 2022.12.18 [AWS] MediaConvert란? + 튜토리얼 (0) 2022.12.17 AWS RDS vs EC2 차이점 (0) 2022.03.05