[레포트]새로운 Amazon S3 클래스로 비용 절감하기#AWSSummitOnlineKorea

안녕하세요 클래스메소드 서은우 입니다. 이번 AWS Partner Summit Korea 2022에서「새로운 Amazon S3 클래스로 비용 절감하기」세션을 정리해 봤습니다.
2022.05.13

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

세션 개요

개요

이번 세션에서는 비용 효율적인 Amazon S3를 소개합니다. 먼저 re:invent 2021에 소개된 아카이빙용 S3 Glacier Instant Retrieval(GIR) 클래스에 대해 알아보고, 그다음 인텔리전트 티어링 스토리지에서 어떤 역할을 하는지, 또 인텔리전트 티어링을 효과적으로 쓸 수 있는 방안을 함께 안내합니다.

발표자

강연 내용

본 블로그 에서 사용한 이미지는 AWS Summit Korea에서 제공된 발표자료와 영상을 사용했습니다.

시작하며

현재는 데이터가 중요한 자산이 되었습니다. 수집한 데이터를 단순히 보존/백업 하는 것이 아니라 데이터를 활용하여 새로운 수익 모델 창출 가능하기 때문입니다.

그리고 데이터가 폭발적으로 늘어남에 따라 저장 장소, 유지 보수에 관한 비용도 급속도로 증가하게 되었습니다. 뿐만 아니라 중요한 자산인 데이터를 보호하기 위해 보안에 대한 문제점도 커지게되었습니다.

하지만 AWS의 스토리지 서비스를 이용한다면 이러한 문제들을 쉽게 해결할 수 있으며, 다른 AWS 서비스들과 연계하여 데이터 분석, 가공까지 활용할 수 있습니다.

(해당 사진에서 오른쪽으로 갈 수록 비용은 낮아지지만 오브젝트를 빼내오는 시간은 높아지게 됩니다.)

AWS 스토리지 서비스 중 하나인 S3는 지속적인 발전을 해왔습니다. 기존의 Glacier 클래스는 Glacier Flexible Retrieval 로 이름이 바뀌고 S3 Glacier Instant Retrieval가 새로 생겼습니다. S3 Glacier Instant Retrieval는 아카이브 데이터를 바로 가져올 수 있고, Glacier Flexible Retrieval는 벌크 복구 비용이 무료라는 특징이 있습니다. 그리고 가장 저렴한 스토리지인 Glacier Depp Archive와 S3 Glacier Instant Retrieval를 비롯하여 인텔리전트 티어링도 발전시켜서 자동으로 저장 비용을 최적화 시킬 수 있습니다.

S3 Glacier Instant Retrieval

Glacier Instant Retrieval는 엑세스 빈도가 매우 낮지만, 액세스시에는 빨리 접근해야하는 문제점을 해결하기 위해 개발되었습니다. Glacier Instant Retrieval의 특징은 아래와 같습니다.

  • 가격: GB 0.005$(서울 리전 기준)
  • 특징: 스탠다드, 스탠다드 IA 클래스와 동일한 레이턴시와 쓰르풋 성능 제공(밀리초 오브젝트 접근)
  • 가용성/내구성: 99.9% / 11 9s

다른 아카이브와 비교 해보겠습니다.

  • 비용: Instant > Flexible > Deep Archive
    • Instant가 가장 비쌈
  • 데이터 복구시간: Instant > Flexible > Deep Archive
    • Instant가 가장 빠름
  • 최소 보유 기간: Instant = Flexible > Deep Archive
    • Instant와 Flexible가 90일로 동일

그리고 인텔리전트 티어링 사용중이라면 이미 Instant Retrieval의 비용 절감 효과를 받고 있기 때문에 추가 설정에 대한 걱정을 하지 않아도 됩니다. 또한, Instant Retrieval 도입과 함께 Archive Instant Access tier가 새롭게 추가 되었습니다. 그래서 인텔리전트 티어링은 기존 2개에서 3개 티어를 옮겨다닐 수 있게 되었습니다.

Amazon S3 비용 최적화 모범사례

해당 그래프는 동일한 용량의 오브젝트가 저장되어 있을 때, 오브젝트 크기가 커질수록 요청 비용이 줄어든다는 내용입니다. 즉, 오브젝트 용량이 같아도, 평균 오브젝트 크기가 큰 버킷의 비용이 평균 오브젝트 크기가 작은 버킷 보다 적게 나오게 됩니다.

이는 오브젝트 수가 많은 버킷의 경우, 요브젝트 요청, 수명 주기 전환에 대한 비용이 더 많이 발생하기 때문이므로, 크기가 작은 파일들의 경우, tar/zip으로 압축한 후 업로드 하는 것이 좋습니다. 이미 오브젝트가 업로드 된 경우에는, EMR 같은 도구를 사용하여 큰 오브젝트로 병합해주는 것이 좋습니다.

Glacier Instant Retrieval의 비용에 영향을 미치는 것은 데이터 용량, 평균 오브젝트 크기, 데이터 검색 비율, 데이터 수명입니다. 평균 오브젝트 크기는 get/put 같은 요청 비용과 수명 주기 전환 비용을 결정짓는 요인이며, 이러한 요인들을 확인하기 위해서 S3 Storage Lens, S3 Storage Class Analysis를 활용할 수 있습니다.

Intelligent-Tiering 클래스의 경우, 수명 주기 전환 비용이 발생하기 때문에 수명 주기를 통해서 오브젝트를 Intelligent-Tiering 클래스로 옮기기 보다는 바로 Intelligent-Tiering 클래스로 업로드하는 것이 좋습니다. 128kb 미만의 오브젝트에 대해서는 모니터링 비용이 청구되지 않으며, 다른 티어로의 이전도 되지 않습니다.

Amazon S3 Storage Lens

S3의 스토리지 상태를 대시보드로 볼 수 있는 서비스 입니다. 평균 오브젝트 크기, 오브젝트 수, 데이터 용량 등을 확인 가능하며,  그래프의 우측에 있으면서 원의 크기가 큰 버킷일수록 아카이브 스토리지를 이용하는 것이 비용 효율적입니다. 또한, Storage Lens로 Incomplete Miltipart Upload 확인할 수 있습니다.

Storage Class Analysis

오브젝트의 검색 비율, 수명 등을 확인할 수 있습니다. 또한, 오브젝트 수명을 기준으로 오브젝트가 자주 접근되지 않는 시기를 결정할 수 있습니다. Storage Class Analysis 활용하여, 접근 빈도가 낮은 데이터를 식별하고, 적절한 수명 주기 정책을 실행하여 비용을 절감할 수 있습니다.

Amazon S3 비용 최적화 모범사례 - 적용

수명 주기

수명주기에 관한 새로운 기능이 추가되었습니다. 이제 버전 관리가 켜져있는 버킷에 한해, 각 오브젝트 별로 이전 버전을 몇 개까지 보관할 것인지 설정이 가능하며 이로인해 기존에 관리되지 않던 이전 버전으로 인해 발생하는 저장 비용을 줄일 수 있습니다. 그리고 오브젝트 크기 필터를 설정하여 오브젝트 크기를 기반으로 오브젝트를 다른 스토리지 클래스로 이동할 수 있습니다. 예를 들어 1GB 이상의 오브젝트만 Glacier로 전환하도록 설정하는 것 입니다. 오브젝트 크기 필터를 사용하면 좀 더 상세하게 수명 주기를 조작할 수 있기 때문에 효과적으로 비용을 절감할 수 있게 됩니다.

일정한 엑세스 빈도를 가진 오브젝트의 경우 수명주기를 활용하는 것이 좋습니다. 수명주기를 이용하여 오브젝트를 아카이빙 하면 Standard -> Glacier Deep Archive의 경우 최대 95%까지 비용을 절감할 수 있습니다. 하지만 오브젝트를 전환하는 비용도 발생하기 때문에 계속 발생하는 저장비용과 딱 한 번만 발생하는 전환 비용을  검토하여 수명 주기를 적용할지 말지를 결정하는 것이 바람직합니다.

Intelligent-Tiering

만약 데이터의 액세스 패턴이 불규칙하기때문에 수명 주기를 설정하는 것이 힘든 경우에는, Intelligent-Tiering 사용하는 것이 좋습니다. Intelligent-Tiering 클래스는 일정 기간 동안 접근이 없는 오브젝트에 대해 전환 비용없이 자동으로 저렴한 티어로 오브젝트를 전환합니다.

하지만 각각의 오브젝트가 전환이 필요한 대상인지를 확인하기 위한 모니터링 비용이 발생하게됩니다. 이 모니터링 비용은 오브젝트 개수에 따라 매달 발생기 때문에 Archive 티어를 추가로 설정하여 비용을 줄이는 것이 가능합니다. Archive Access tier 는 Infrequent Access tier 대비 72% 비용 절감 가능하지만 아카이브 티어에 저장된 오브젝트는 바로 사용할 수 없고, 수분에서 수시간의 데이터 복구 후 오브젝트를 사용할 수 있습니다.

아카이브 하면 안되는 오브젝트가 아카이브 티어로 가는 문제가 발생할 수도 있습니다. 이를 방지하기 위해, 이벤트 알림을 이용하여 오브젝트가 아카이브 티어로 이동되는 것을 추적할 수 있습니다.

끝으로

  • 엑세스 예측 가능한 데이터: 수명 주기 + 오브젝트 크기 필터
  • 엑세스 예측이 힘든 데이터: Intelligent-Tiering 티어 + Archive 티어 + 이벤트 알림을 통한 오브젝트 추적

감상

새롭게 발표되는 서비스나 기능에 대해서는 정보가 부족할 수 밖에 없어 아무래도 활용하기에 어려움이 따라오게 된다고 생각합니다. 본 세션을 통해서 새롭게 발표된 S3 클래스에 대해서 알아보고, 모범사례를 확인할 수 있어서 매우 도움이 되었던 것 같습니다.