AWS S3, 제대로 이해하기 - Storage Classes

2023. 3. 12. 23:33BACKEND/AWS

AWS S3에 대한 이해부터 활용까지 이해하는 것이 본 포스팅의 목표입니다.

 

 

===== AWS S3, 제대로 이해하기 Series.  =====

✔️ AWS S3, 제대로 이해하기 - S3 Basics

👉🏻 AWS S3, 제대로 이해하기 - Storage Classes

✔️ AWS S3, 제대로 이해하기 - Lifecycle

✔️ AWS S3, 제대로 이해하기 - Replication & Event Notification

 

 

 

지난 글에서는 S3의 개념을 포함한 기본적인 내용을 다뤄보았습니다.

본 글에서는 비용 최적화를 위한 S3 클래스를 알아보고, 저장 객체의 자동화를 위해 S3가 제공하는 기능들에 대해 살펴보고자 합니다.

 

S3 Storage Class

궁극적 목표인 비용 절감을 위해 상황에 적절한 S3 타입을 선택하기 위해 어떤 타입의 S3가 존재하는지 살펴보겠습니다.

각 클래스들은 결국 누군가의 필요에 의해 제작된 스토리지 타입입니다. 어떤 클래스가 왜 만들어졌는지, 또 어떤 상황일 때 적용하면 될지 상상해보면서 읽어 보시길 바랍니다.

 

aws.amazon.com/s3/storage-classes

 

S3 Storage Class는 Object 별로 적용하며, Object 생성 시 지정할 수도, 추후에 수정할 수도 있습니다. 각 Class 마다 Availability를 다르게 가집니다. Availability의 의미를 알아보고, 각 Class 마다 비교하는 것도 필요합니다.

 

S3에 파일 업로드 시 선택할 수 있는 Classes

 

✔️ Availability

: 가용성. 서비스를 용이하게 사용할 수 있는지 측정값으로, 각 Storage Class 마다 다른 가용성을 제공합니다.

가령, 99.99% Availability를 가졌다고 하면 1년에 53(52.59...)분 동안 사용하지 못한다는 의미입니다.

 

 

 

Standard

이름에서 예상할 수 있듯이, 가장 보통의 범용 클래스입니다. S3에 저장되는 Object의 Default Class입니다.

S3가 설명하는 설계 목적을 살펴보면 아래와 같습니다.

 

Frequently accessed data (more than once a month) with milliseconds access
- 밀리세컨드 내 접근해야하며 자주 접근(한 달에 한 번 이상)하는 데이터

 

Standard Class의 특징을 살펴보면 다음과 같습니다.

 

Standard 특징

- 99.99%의 가용성(Availability)을 제공

- 지연 시간이 짧고 (Low Latency), 높은 처리량 (High throughput)

- 한 시설의 데이터가 손실될 경우에도 작동을 유지할 수 있도록 설계

 

 

그렇다면 어떤 상황에 적절할까요? 대표적인 사례들을 살펴보겠습니다.

 

Standard 활용 사례 (Use cases)

- Big Data Analytics

- Mobile and Gaming Applications

- Content Distribution

- Dynamic Websites

- Cloud Applications

 

 

Standard IA (Infrequent Access)

자주 사용하지는 않지만 빠르게 접근해야 하는 데이터를 위한 클래스입니다.

S3보다 저렴한 가격이지만, 검색 비용이 발생합니다. 

 

Standard IA의 특징은 99.9%의 가용성을 제공하는데, 이는 Standard 보다 0.09% 적습니다.

 

Standard IA 활용 사례 (Use cases)

- Disaster Recovery

- Backups

 

Standard와 가격을 비교해보면 다음과 같습니다.

 

  S3 Standard
S3 Standard-IA
Storage Cost
(per GB per month)
$0.023 (First 50 TB / Month) $0.0125
Data retrievals - $0.01
PUT, COPY, POST, LIST
Request Cost
(per 1,000 request)
$0.005 $0.01
GET, SELECT, ...
Request C
ost

(per 1,000 request)
$0.0004 $0.001
Retrieval Time Instantaneous

 

미국 동부 오하이오 기준입니다.

Standard 보다 훨씬 더 가격이 나가는 것을 확인할 수 있습니다.

 

 

 

One Zone-Infrequent Access

 

One Zone-IA는 Standard IA 종류 중 하나로, 자주 액세스하지 않지만 필요할 때 빠르게 액세스해야 하는 데이터에 적합합니다. 해당 클래스는 이름에 명시된 One Zone, 즉 하나의 지역에만 사용 가능한 S3 클래스입니다.

 

단일 AWS 가용 영역에 데이터를 저장하기 때문에 스토리지 클래스에 저장된 데이터는 가용성 영역이 파괴되는 경우 손실됩니다.

 

S3 One Zone-IA는 단일 AZ에 데이터를 저장하며 비용이 S3 Standard-IA보다 20% 적게 듭니다.

조금 더 저렴하면서, S3 Standard-IA 스토리지와 같은 가용성 및 복원력이 필요 없을 때 적합합니다. 

가령, 쉽게 다시 생성할 수 있는 데이터의 보조 백업 복사본을 저장하는 업무에 사용될 수 있습니다.

 

Standard-IA와 가격을 비교해보면 다음과 같습니다.

 

  S3 Standard-IA S3 One Zone - IA
Storage Cost
(per GB per month)
$0.0125 $0.01
Data retrievals
$0.01 $0.01
PUT, COPY, POST, LIST
Request Cost
(per 1,000 request)
$0.01 $0.01
GET, SELECT, ...
Request C
ost
(per 1,000 request)
$0.001 $0.001
Retrieval Time Instantaneous

 

미국 동부 오하이오 기준입니다.

 

 

 

Glacier Storage

Glacier 저장소는 아카이빙 또는 백업을 위한 저가의 객체 저장소입니다.

가격은 저장 비용과 객체 검색 비용이 계산됩니다.

Glacier 저장소는 세 가지 종류가 있습니다.

 

세 가지 클래스 모두 아카이빙 또는 백업 용이지만, 상황에 따라 구별하여 비용을 최적화하여 사용해야 합니다.

 

- S3 Glacier Instant Retrieval: 즉각적인 액세스 (밀리초 단위의 검색 시간)

S3 Glacier Flexible Retrieval: 큰 데이터 집합이 필요 시 (용량의 유연성), 즉각적인 액세스 X

S3 Glacier Deep Archive: 장기 보관용

 

아주 대략적인 구분인데요. 각각의 보관 기간, 검색 속도가 다르고 그에 따라 가격이 다르기 때문에 하나씩 살펴보겠습니다.

 

 

Glacier Instant Retrieval

🔗 AWS official link

 

S3 Glacier Instant Retrieval (Glacier-IR)은 분기당 한 번 접근하는 백업용이지만, 밀리초 단위의 검색이 필요할 때 사용합니다.

비용은 S3 Standard-IA (Infrequent Access)보다 최대 68% 더 저렴합니다.

S3 Standard-IA 과 동일하게 백업용이 될 수 있고, 저장 비용과 검색 비용이 든다는 점이 동일한데요. 이 둘의 차이점은 저장 비용과 검색 비용 책정 기준입니다.

 

  S3 Standard-IA S3 Glacier Instant Retrieval
Storage Cost
(per GB per month)
$0.0125 $0.01
Data retrievals
$0.01 $0.03
PUT, COPY, POST, LIST
Request Cost
(per 1,000 request)
$0.01 $0.02
GET, SELECT, ...
Request C
ost
(per 1,000 request)
$0.001 $0.01
Retrieval Time Instantaneous

 

미국 동부 오하이오 기준입니다.

 

위에서 볼 수 다시피, Standard-IA는 저장 보용이 $0.0025 더 비싼 대신, 검색 비용이 훨씬 더 저렴합니다. 따라서, 접근할 일이 어느 정도 있다면 Standard-IA를, 보관 자체에 중점을 두고 아주 가끔 검색이 필요하다면 Glacier-IR이 적합하겠죠?

 

Glacier-IR은 성능에 민감한 사용 사례에서 즉시 액세스할 수 있어야 하는 데이터용으로 설계되었습니다.

가령, 다음과 같은 사례가 있습니다.

 

: 페타 단위까지 확장될 수 있는 이미지 및 동영상, 온라인 파일 공유 애플리케이션, 의료 영상 및 건강 기록, 뉴스 미디어 자산, 위성 및 항공 영상

 

 

Glacier Flexible Retrieval

🔗 AWS official link

 

S3 Glacier Flexible Retrieval은 즉각적인 액세스가 필요하지 않지만, 대규모 데이터 집합을 무료로 검색할 수 있는 유연성이 필요한 데이터에 적합합니다.

 

대규모 집합은 백업 또는 재해 복구 사용 시의 거대한 데이터 집합을 의미하며, Flexible은 대규모 데이터에 대해 검색 과정이 많이 필요할 때 무료로 검색할 수 있는 유연성(retrieval flexibility)을 의미합니다. S3 Glacier Flexible Retrieval은 연간 1~2회 액세스하고 비동기식으로 검색되는 아카이브 데이터에 적합합니다.

 

S3 Glacier Flexible Retrieval는 S3 Glacier서비스의 이름만 바뀐 서비스인데요, S3 Glacier Instant Retrieval의 등장 이후 이들을 구부하고자 이름이 변경된 것입니다.

 

S3 Glacier Flexible Retrieval은 특정 연도에 물리적으로 분리된 여러 AWS 가용 영역에서 데이터를 중복 저장하여 99.999999999%의 데이터 내구성과 99.99%의 가용성을 지원하도록 설계되었습니다.

 

S3 Glacier Flexible Retrieval은 S3 Glacier Instant Retrieval보다 최대 10% 더 저렴합니다.

 

  S3 Glacier Instant Retrieval S3 Glacier Flexible Retrieval
Storage Cost
(per GB per month)
$0.01 $0.0036
Data retrievals
$0.03 Expedited: $0.03
Standard: $0.01
Bulk: X
PUT, COPY, POST, LIST
Request Cost
(per 1,000 request)
$0.02 $0.03
GET, SELECT, ...
Request C
ost
(per 1,000 request)
$0.01 $0.0004
Retrieval Time Instantaneous Expedited: 1-5 mins
Standard: 3-5 hours
Bulk: 5-12 hours

 

미국 동부 오하이오 기준입니다.

 

위에서 볼 수 다시피, 저장 비용과 검색 비용 굉장히 저렴한 것을 볼 수 있고, 검색 시간이 오래 걸린 다는 것을 확인할 수 있습니다.

 

 

Glacier Deep Archive

🔗 AWS official link

 

S3 Glacier Deep Archive는 1년에 한두 번 정도 액세스하면서 장기 보관해야하는 데이터에 적합합니다. S3 Glacier Deep Archive에 저장된 모든 객체는 최소 3개의 지리적으로 분산된 가용 영역에 걸쳐 복제되고 저장되며, 99.999999999%의 내구성으로 보호되고 12시간 이내에 복원할 수 있습니다. 뛰어난 내구성을 자랑하죠.

 

가령, 법적인 규정 준수를 위해 7~10년 이상 데이터 집합을 보관하는 사례가 있습니다. 금융이나 의료, 공공 시스템과 같이 엄격하게 규정을 따라야 하는 산업군에서 필요로 합니다.

 

S3 Glacier Deep Archive는 Amazon S3에서 가장 저렴한 비용의 스토리지 클래스입니다.

 

 

  S3 Glacier Flexible Retrieval S3 Glacier Deep Archive
Storage Cost
(per GB per month)
$0.0036 $0.00099
Data retrievals Expedited: $0.03
Standard: $0.01
Bulk: X
Standard: $0.02
Bulk: $0.0025
PUT, COPY, POST, LIST
Request Cost
(per 1,000 request)
$0.03 $0.05
GET, SELECT, ...
Request C
ost
(per 1,000 request)
$0.0004 $0.0004
Retrieval Time Expedited: 1-5 mins
Standard: 3-5 hours
Bulk: 5-12 hours
Standard: 12 hours
Bulk: 48 hours

 

굉장히 저렴한 가격임을 확인할 수 있으며, 동시에 검색 시간이 굉장히 오래 걸린다는 것을 확인할 수 있습니다.

 

 

 

Intelligent Tiering

🔗 AWS official link

S3 Intelligent-Tiering(S3 Intelligent-Tiering)은 사용 패턴에 따라 액세스된 티어 간에 객체를 이동할 수 있게 해줍니다. 즉, 성능, 검색 요금 또는 액세스 빈도에 따라 가장 비용 효율적인 액세스 티어로 데이터를 자동으로 이동하기 때문에 운영 부담없이 편하게 스토리지를 관리할 수 있습니다. 세분화된 객체 수준에서 스토리지 비용을 자동으로 절감해주는 효과를 줍니다.

S3 Intelligent-Tiering은 접근 빈도와 저장 기간에 따라 3개의 액세스 티어에 객체를 다음과 같이 자동으로 저장합니다.

Frequent Access: 기본 티어 (빈번한 액세스에 최적화)

Infrequent Access: 30일 동안 액세스하지 않는 객체 (빈번하지 않은 액세스에 최적화). 40% 더 저렴.

Archive Instant Access: 90일 동안 액세스하지 않는 객체 (거의 액세스하지 않는 데이터). 8% 더 저렴.

 

또, 선택에 따라 아래의 티어를 구성할 수도 있습니다.

Archive Access: 90일에서 최대 730일까지 액세스하지 않은 객체. 표준 검색 시간 3~5시간

Deep Archive Access: 180일에서 최대 730일까지 액세스하지 않는 객체. 성능은 S3 Glacier Deep Archive와 동일. 표준 검색은 12시간

 

검색할 객체가 Archive 또는 Deep Archive 계층에 저장되어 있는 경우 객체를 검색하려면 먼저 RestoreObject를 사용하여 복사본을 복원해야 합니다. 객체가 S3 Intelligent-Tiering 스토리지 클래스 내의 액세스 티어 간에 이동될 때는 계층화 요금이 추가로 적용되지 않습니다.

 

S3 Intelligent-Tiering은 월별 모니터링 비용과 티어링 비용이 발생하고, 검색 비용이 없습니다.

저장 비용은 다음과 같습니다.

 

S3 Intelligent - Tiering / Month Price (per GB)
Monitoring and Automation, All Storage (Objects > 128 KB) $0.0025 per 1,000 objects
Frequent Access Tier, First 50 TB $0.023 
Frequent Access Tier, Next 450 TB $0.022
Frequent Access Tier, Over 500 TB $0.021
Infrequent Access Tier, All Storage $0.0125
Archive Instant Access Tier, All Storage $0.004
Archive Access Tier, All Storage $0.0036
Deep Archive Access Tier $0.00099