AWS S3, 제대로 이해하기 - Storage Classes
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가 존재하는지 살펴보겠습니다.
각 클래스들은 결국 누군가의 필요에 의해 제작된 스토리지 타입입니다. 어떤 클래스가 왜 만들어졌는지, 또 어떤 상황일 때 적용하면 될지 상상해보면서 읽어 보시길 바랍니다.
S3 Storage Class는 Object 별로 적용하며, Object 생성 시 지정할 수도, 추후에 수정할 수도 있습니다. 각 Class 마다 Availability를 다르게 가집니다. Availability의 의미를 알아보고, 각 Class 마다 비교하는 것도 필요합니다.
✔️ 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 Cost (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 Cost (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
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 Cost (per 1,000 request) |
$0.001 | $0.01 |
Retrieval Time | Instantaneous |
미국 동부 오하이오 기준입니다.
위에서 볼 수 다시피, Standard-IA는 저장 보용이 $0.0025 더 비싼 대신, 검색 비용이 훨씬 더 저렴합니다. 따라서, 접근할 일이 어느 정도 있다면 Standard-IA를, 보관 자체에 중점을 두고 아주 가끔 검색이 필요하다면 Glacier-IR이 적합하겠죠?
Glacier-IR은 성능에 민감한 사용 사례에서 즉시 액세스할 수 있어야 하는 데이터용으로 설계되었습니다.
가령, 다음과 같은 사례가 있습니다.
: 페타 단위까지 확장될 수 있는 이미지 및 동영상, 온라인 파일 공유 애플리케이션, 의료 영상 및 건강 기록, 뉴스 미디어 자산, 위성 및 항공 영상
Glacier Flexible Retrieval
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 Cost (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
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 Cost (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
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 |