AWS S3의 Object에는 여러 가지 스토리지 클래스가 존재한다.
어떤 스토리지 클래스를 사용하냐에 따라 속도와 비용이 크게 차이가 난다.
ClassName | Remark |
---|---|
Amazon S3 Standard (default) | 자주 액세스하는 데이터를 위해 높은 내구성, 가용성 및 성능을 갖춘 객체 스토리지를 제공합니다. |
Amazon S3 Intelligent-Tiering (S3 Intelligent-Tiering) | 알 수 없거나 변화하는 액세스성능에 대한 영향, 검색 요금 또는 운영 부담 없이 액세스 빈도에 따라 가장 비용 효율적인 액세스 티어로 데이터를 자동으로 이동하여 세분화된 객체 수준에서 스토리지 비용을 자동으로 절감해주는 최초의 클라우드 스토리지입니다. S3 Intelligent-Tiering은 Frequent, Infrequent Access 및 Archive Instant Access 티어에서 자주 액세스하는 데이터, 자주 액세스하지 않는 데이터, 그리고 거의 액세스하지 않는 데이터에 대해 밀리초 단위의 대기 시간과 높은 처리량을 제공합니다. |
Amazon S3 Standard-Infrequent Access(S3 Standard-IA) | 빈번하지 않은 액세스 S3 Standard-IA는 자주 액세스하지 않지만 필요할 때 빠르게 액세스해야 하는 데이터 에 적합합니다. S3 Standard-IA는 S3 Standard의 뛰어난 내구성, 높은 처리량 및 짧은 대기 시간을 저렴한 GB당 스토리지 요금과 GB당 검색 요금으로 제공합니다. 저렴한 비용과 높은 성능의 조합을 제공하는 S3 Standard-IA는 장기 스토리지, 백업 및 재해 복구 파일용 데이터 스토어에 이상적입니다 |
Amazon S3 One Zone-Infrequent Access (S3 One Zone-IA) | 자주 액세스하지 않지만 필요할 때 빠르게 액세스해야 하는 데이터에 적합합니다. 최소 3개의 가용 영역(AZ)에 데이터를 저장하는 다른 S3 스토리지 클래스와는 달리, S3 One Zone-IA는 단일 AZ에 데이터를 저장하며 비용이 S3 Standard-IA보다 20% 적게 듭니다. S3 One Zone-IA는 자주 액세스하지 않는 데이터에 대한 저렴한 옵션을 원하지만 S3 Standard 또는 S3 Standard-IA 스토리지와 같은 가용성 및 복원력이 필요 없는 고객에게 적합합니다. |
ClassName | Remark |
---|---|
Glacier Instant Retrieval | 분기당 한 번 액세스되고 밀리초 단위의 검색이 필요한 수명이 긴 데이터에 대해 S3 Standard-Infrequent Access보다 최대 68% 더 저렴한 비용으로 가장 저렴한 스토리지를 제공하며, 자주 액세스하지 않지만 이미지 호스팅, 온라인 파일 공유 애플리케이션, 의료 영상 및 건강 기록, 뉴스 미디어 자산, 위성 및 항공 영상과 같이 성능에 민감한 사용 사례에서 즉시 액세스할 수 있어야 하는 데이터용으로 설계되었습니다. |
Glacier Flexible Retrieval | 연간 1~2회 액세스하고 비동기식으로 검색되는 아카이브 데이터에 대해 S3 Glacier Instant Retrieval보다 최대 10% 더 저렴한 비용으로 스토리지를 제공합니다. S3 Glacier Flexible Retrieval(이전 S3 Glacier)은 즉각적인 액세스가 필요하지 않지만 백업 또는 재해 복구 사용 사례와 같이 대규모 데이터 집합을 무료로 검색할 수 있는 유연성이 필요한 아카이브 데이터에 이상적인 스토리지 클래스입니다. |
Glacier Deep Archive(Glacier Deep Archive) | 1년에 한 번 미만으로 액세스하고 비동기식으로 검색되는 수명이 긴 아카이브 데이터에 대해 S3 Glacier보다 최대 75% 저렴한 비용으로 가장 저렴한 스토리지를 제공합니다. |
요금: https://aws.amazon.com/ko/s3/pricing/
AWS CLI
aws s3 cp file.txt s3://my-bucket/ --storage-class STANDARD_IA
AWS SDK (해당 예제는 Go)
storageClass := "STANDARD_IA"
bucketName := "test"
paht := "test"
s3Uploader := s3manager.NewUploader(h.Session)
s3Input := &s3manager.UploadInput{
Bucket: aws.String(bucketName),
Key: aws.String(paht),
Body: fin,
StorageClass: aws.String(storageClass),
}
result, err := s3Uploader.Upload(s3Input)
if err != nil {
return
}