BLOG
S3 수명 주기 규칙을 규모에 맞게 자동화하여 데이터를 S3 Intelligent-Tiering으로 전환하기
고객이 Amazon S3에 저장하는 대다수의 데이터에는 데이터 레이크, 분석 및 새로운 애플리케이션과 같이 알려지지 않았거나 변화하는 액세스 패턴이 있습니다. 이러한 사용 사례에서 데이터 세트는 특점 시점에 드물게 액세스할 수 있으며 심지어 거의 액세스하지 않을 수도 있습니다. 문제는 고객이 미래에 데이터 액세스 패턴이 어떻게 바뀔지 모른다는 것입니다. 알 수 없거나 액세스 패턴이 변경되는 데이터에 대한 스토리지 비용 절감 효과를 얻으려면 S3 Intelligent-Tiering 스토리지 클래스를 사용해야 합니다. 이와 동시에 고객이 S3 Standard 스토리지 클래스에 페타바이트 단위의 객체를 수십에서 수백 개의 버킷에 걸쳐 축적하는 경우가 많았습니다. 이제 고객은 모든 버킷에서 단일 S3 수명 주기 구성을 적용하여 S3 Standard에서 S3 Intelligent-Tiering으로 데이터를 전환하는 보다 쉬운 방법을 찾고 있습니다.
이번 포스팅에서는 S3 Standard에서 S3 Intelligent-Tiering 스토리지 클래스로 객체를 자동으로 전환하기 위해 계정의 모든 버킷에 맞게 S3 수명 주기 규칙을 자동으로 생성하는 간편한 메커니즘을 제공합니다. 오늘 포스팅을 읽은 후에는 S3 수명 주기 요청 비용을 고려한 후 S3 Intelligent-Tiering의 스토리지 절감액을 예측하는 방법과 모든 버킷에서 몇 분 안에 비용 절감 조치를 즉시 수행할 수 있는 올바른 툴을 사용하는 기본적인 방법을 이해할 수 있습니다. 자동화를 통해 시간을 절약할 수 있으며, 비용 절감을 자동화할 때 시간과 자금을 회수하여 혁신과 중요한 워크로드에 투입할 수 있습니다.
S3 Intelligent-Tiering: 알아야 할 새로운 비용 최적화
2021년 11월 30일, AWS는 re:Invent에서 밀리 초 단위의 검색과 높은 처리 성능이 필요한 거의 액세스하지 않는 데이터에 대해 최대 68%의 비용 절감 효과를 제공하는 새로운 S3 Intelligent-Tiering Archive Instant Access 티어를 발표했습니다. Archive Instant Access 티어는 한 번에 몇 개월 동안 액세스되지 않지만, 필요할 때 몇 밀리초 이내에 사용할 수 있는 데이터에 최적화되어 있습니다. 이제 S3 Intelligent-Tiering은 S3 Standard 스토리지 클래스와 동일한 성능을 제공하는 3개의 액세스 티어 (Frequent, Infrequent, Archive Instant)에 객체를 자동으로 저장합니다.
또한, AWS는 S3 Intelligent-Tiering이 이제 최소 스토리지 기간을 없애고 128KB보다 작은 객체에 대한 낮은 객체당 모니터링 및 자동화 요금을 제거함으로써 보다 광범위한 워크로드에 대한 스토리지 비용 절감을 자동화한다고 발표했습니다 (2021년 9월 2일). 이전에는 S3 Intelligent-Tiering이 최소 30일 동안 저장된 장기 객체 및 128KB보다 큰 객체에 최적화되었습니다. 이것이 의미하는 바는 이제 객체 크기나 보존 기간과 관계없이 거의 모든 워크로드에 S3 Intelligent-Tiering을 사용할 수 있다는 것입니다.
이러한 출시를 통해 S3 Intelligent-Tiering이 고객이 분석을 수행하거나 개발 주기를 추가하지 않고도 스토리지 비용을 신속하게 최적화하는데 어떻게 도움이 되는지에 대한 업계 전반의 고객 사례를 듣습니다. 예를 들어, Stripe는 S3 Intelligent-Tiering을 사용하는 인터넷용 경제 인프라를 구축하는 기술 회사입니다. 신생기업에서 공기업에 이르기까지 모든 규모의 기업이 Stripe 소프트웨어를 사용하여 결제를 수락하고 온라인으로 비즈니스르 관리합니다. Stripe의 효율성 책임자인 Kalyana Chadalavada는 다음과 같이 말했습니다:
“2018년 S3 Intelligent-Tiering을 출시한 이후 성능에 영향을 주거나 데이터를 분석할 필요 없이 스토리지 비용을 월 30%까지 자동으로 절감했습니다. 새로운 Archive Instant Access 티어를 통해 필요할 때 데이터에 즉시 액세스할 수 있는 기능을 유지하면서 아카이브 스토리지 가격의 이점을 자동으로 실현할 수 있을 것으로 기대합니다.”
대부분의 데이터를 S3 Intelligent-Tiering으로 전환하는 고객의 수가 빠르게 증가하고 있습니다. S3 Intelligent-Tiering은 객체 크기 또는 객체 수명과 관계없이 거의 액세스 하지 않는 데이터에 대해 자동 스토리지 비용 절감 기능과 가장 낮은 스토리지 비용을 결합합니다. 즉, 예측 가능한 액세스 패턴이 있는 데이터 세트의 경우 S3 Storage Lens의 액세스 패턴에 대한 세부 분석을 기반으로 S3 수명 주기 정책을 미세 조정하여 최고의 스토리지 비용 절감 효과를 얻을 수 있습니다. Amazon S3의 예측 가능하고 동적인 액세스 패턴에 관한 스토리지 비용 최적화를 위한 멘탈 모델에 대해 이 블로그에서 자세히 읽어보십시오.
S3 Standard에서 데이터를 전환한 후 S3 Intelligent Tiering에서 얼마나 빨리 절약할 수 있을까?
많은 고객이 S3 수명 주기 정책을 사용하여 전환해야 하는 S3 Standard 스토리지 클래스에 페타바이트 규모의 데이터가 축적되어 있을 때 절감 기능성에 미치는 영향을 묻는 경우가 많습니다.
일반적으로 고객은 데이터를 전환한 지 한 달 후에 S3 Intelligent-Tiering의 이점을 보기 시작합니다. S3 Intelligent-Tiering의 첫 달 비용이 S3 Standard 스토리지 클래스보다 약간 높다는 점을 강조하는 것이 중요합니다. 이는 S3 Intelligent-Tiering 스토리지 클래스에 업로드된 객체가 Frequent Access 티어에 자동으로 저장되며 객체당 약간의 모니터링 및 자동화 요금이 부과되기 때문입니다. 또한 S3 수명 주기 정책을 사용하여 S3 Standard에서 객체를 전환하는 경우 일회성 전환 요청 비용도 지불해야 합니다. 데이터가 S3 Intelligent-Tiering으로 이동되면 연속 30일 동안 액세스하지 않은 객체가 자동으로 S3 Intelligent-Tiering Infrequent Access 티어로 이동하는 두 번째 달에 비용 절감 효과를 기대할 수 있습니다. 또한 90일 동안 연속 액세스하지 않은 객체가 Archive Instant Access 티어로 이동하면 4개월째에 상당한 스토리지 비용 절감 효과를 기대할 수 있습니다.
규모에 따라 달성할 수 있는 것을 보여드리기 위해 실제 사례를 들어 보겠습니다. 다음에서는 미국 동부(N.Virginia) 지역의 S3 Standard 에 저장된 총 40페타바이트(PB)의 데이터에 달하는 4,500,000개의 객체가 있는 버킷이 있다고 가정합니다. S3 Intelligent-Tiering의 절감 효과를 시뮬레이션하기 위해 매달 모든 객체의 30%에 액세스하고, 객체의 30%는 자주 액세스하지 않으며 40%는 거의 액세스하지 않는다고 가정합니다. 표1은 S3 수명 주기 요청을 포함한 첫 달 비용이 S3 Intelligent-Tiering에서 한 달 동안의 스토리지 비용 절감으로 상쇄되었음을 보여줍니다. 4개월 이후에는 거의 액세스하지 않는 데이터에서 의미 있는 스토리지 비용 절감을 기대할 수 있습니다. 이 예에서는 S3 Standard 스토리지 클래스를 사용하는 것과 비교하여 연간 40% 이상의 스토리지 비용 절감하는 모델을 제시합니다. Amazon S3 요금 계산기를 사용하여 개별 사용 사례의 예상 절감액을 모델링할 수 있습니다.
표1: S3 Intelligent-Tiering의 절감액은 S3 Standard에서의 데이터 전환 비용을 훨씬 초과합니다.
*S3 수명 주기 요청은 S3 Standard에서 S3 Intelligent-Tiering 스토리지 클래스로 데이터를 이동할 때만 적용됩니다. 최고의 비용 절감을 실현하려면 객체를 직접 업로드하는 것이 좋습니다.
**GB 월의 30%는 Frequent Access 티어에, 30%는 Infrequent Access 티어에, 40%는 Archive Instant Access 티어에 저장하여 지속적인 월별 비용을 추정합니다.
모든 버킷에 대한 규모에 맞는 S3 수명 주기 규칙 생성 자동화
Amazon S3 Intelligent-Tiering으로 비용을 절감할 수 있는 광범위한 사용 사례와 기회를 고려할 때 고객이 묻는 후속 질문은 시작 방법에 관한 것입니다. S3 Intelligent-Tiering 스토리지 클래스로 데이터를 가져오는 방법에는 두 가지가 있습니다:
- Direct PUT (이를 위해서는 객체를 Amazon S3 Intelligent-Tiering에 직접 PUT 하도록 애플리케이션을 변경해야 합니다).
- Amazon S3 수명 주기 규칙을 사용하여 S3 Standard에서 S3 Intelligent-Tiering으로의 객체 이동을 자동화합니다.
기존 객체에 대한 S3 Intelligent-Tiering의 이점을 실현하는 가장 쉬운 방법의 하나는 S3 수명 주기 전환 규칙을 버킷에 적용하는 것입니다. S3 수명 주기 규칙을 사용하여 S3 Standard 및 S3 Standard-Infrequent Access(IA)에서 S3 Intelligent-Tiering 클래스로의 객체 전환을 자동화할 수 있습니다. 이를 위해 GitHub에서 제공한 Python 스크립트를 사용하여 지정된 계정의 모든 버킷에 대한 S3 Intelligent-Tiering 전환 작업 규칙 생성을 자동화할 수 있습니다 (수백 개의 버킷이 있는 경우에도). 수명 주기 규칙을 추가하는 세 가지 시나리오를 다루며, 스크립트에서는 검토를 위해 마지막에 출력으로 생성되는 결과를 엑셀 시트로 문서화합니다.
- 시나리오 #1: S3 수명 규칙이 있는 경우 스크립트는 Amazon S3 Glacier, Amazon S3 Standard-IA, Amazon S3 Glacier Deep Archive 또는 Amazon S3 Intelligent-Tiering과 같은 다른 스토리지 클래스로의 전환 작업 규칙이 있는지 확인합니다. 전환 작업 규칙이 없는 경우 스크립트는 해당 버킷에 있는 객체의 현재 및 이전 버전을 객체 생성 후 “0”일 후에 S3 Intelligent-Tiering 스토리지 클래스로 전환하는 새 규칙을 기존 수명 주기 구성에 추가합니다. 또한, 버킷의 이름과 상태가 “S3 INT로 전환 규칙이 있는 기존 수명 주기 업데이트됨”으로 출력 Excel 시트에 항목을 기록합니다.
- 시나리오 #2: S3 수명 주기 규칙이 있고 Amazon S3 Glacier, S3 Standard-IA, Amazon S3 Glacier Deep Archive 또는 Amazon S3 Intelligent-Tiering과 같은 다른 스토리지 클래스로의 전환 작업 규칙이 있는 경우 스크립트를 추가하거나 업데이트하지 않습니다. 기존 수명 주기 규칙을 따르고 버킷 이름과 상태가 “S3 수명 주기 구성에 변경 사항 없음” 인 항목을 엑셀 시트에 간단히 기록합니다.
- 시나리오 #3: 버킷에 대한 S3 수명 주기 규칙이 없는 경우 스크립트는 해당 버킷에 있는 객체의 현재 및 이전 버전에 대해 설정된 새 전환 작업 규칙을 객체 생성 “0”일 후 S3 Intelligent-Tiering 스토리지 클래스에 추가합니다. 또한 버킷 이름과 상태가 “새 S3 수명 주기 전환 규칙을 S3 INT에 추가함”으로 출력 엑셀 시트에 항목을 기록합니다.
다음 스크린샷은 Python 스크립트에서 추가한 S3 수명 주기 규칙의 예입니다. 새로 추가된 규칙을 쉽게 구별할 수 있도록 수명 주기 규칙의 이름이 “자동화된 스크립트 타임스탬프에 의해 추가된 S3 INT 전환 LC”인 것을 알 수 있습니다. Python 스크립트를 업데이트하여 필요에 따라 이름을 사용자 정의할 수 있습니다.
Python 스크립트는 노트북, Amazon EC2 인스턴스 또는 AWS Lambda에서 실행할 수 있습니다. 스크립트 및 관련 requirements.txt 및 IAM 정책을 다운로드할 수 있습니다. 스크립트를 실행하려면 몇 가지 Python 라이브러리가 필요하며 이는 requirements.txt 파일에 나열되어 있습니다. 또한, 사용자 또는 IAM 역할이 S3 버킷을 쿼리하고 필요에 따라 새 S3 수명 주기 전환 규칙을 생성 또는 업데이트할 수 있도록 하는데 필요한 샘플 최소 IAM 정책을 제공했습니다. 한 가지 중요 사항은 이 스크립트가 사용과 보안의 용이성을 위해 단일 계정에서 실행되도록 설계되었다는 것입니다. 대규모 다중 계정 구조가 있는 경우 개별 계정에서 적절한 사용자 또는 역할로 스크립트를 실행하도록 자동화를 추가하는 것이 가장 좋습니다.
S3 Intelligent-Tiering은 성능에 영향을 미치지 않고, 검색 비용 또는 운영 오버헤드 없이 액세스 빈도에 따라 가장 비용 효율적인 액세스 계층으로 데이터를 자동으로 이동하여 세분화된 객체 수준에서 스토리지 비용을 자동으로 줄이는 최초의 클라우드 스토리지입니다. S3 Intelligent-Tiering은 자주, 드물게, 현재는 거의 액세스하지 않는 데이터에 대해 Frequent, Infrequent 및 새로운 Archive Instant Access 티어에서 밀리초의 대기 시간과 높은 처리 성능을 제공합니다. 이제 S3 Intelligent-Tiering을 거의 모든 워크로드, 특히 데이터 레이크, 데이터 분석, 새로운 애플리케이션 및 사용자 생성 콘텐츠에 대한 기본 스토리지 클래스로 사용할 수 있습니다.
마무리
오늘 포스팅에서는 S3 수명 주기 정책을 사용하여 페타바이트급 데이터를 S3 Standard 스토리지 클래스에서 S3 Intelligent-Tiering 스토리지 클래스로 이동할 때의 비용과 이점을 강조했습니다. S3 Intelligent-Tiering의 첫 달 비용은 주로 일회성 S3 수명 주기 요금으로 인해 S3 Standard 스토리지 클래스보다 약간 높다는 점을 강조하는 것이 중요합니다. 첫 달이 지나면 S3 Intelligent-Tiering Infrequent Access 티어로 이동한 연속 30일 동안 액세스하지 않은 객체에서 스토리지 비용 절감 효과를 보기 시작하고 연속 90일 동안 액세스하지 않은 객체가 Archive Instant Access티어로 이동하면 3개월 후에 의미 있는 스토리지 비용 절감 효과를 볼 수 있습니다. 또한 GitHub에서 제공한 Python 스크립트를 사용하여 계정의 모든 버킷에 대한 S3 Intelligent-Tiering 전환 작업 규칙 생성을 자동화할 수 있습니다. S3 Intelligent-Tiering에 저장하는 데이터 스토리지 비용을 최대한 절감하려면 객체를 직접 업로드하는 것이 좋습니다.
메가존 클라우드 TechBlog는 AWS BLOG 영문 게재 글이나 관련 기사 중에서 한국 사용자들에게 유용한 정보 및 콘텐츠를 우선적으로 번역하여 내부 엔지니어 검수를 받아 정기적으로 게재하고 있습니다. 추가로 번역 및 게재를 희망하는 글에 대해서 관리자에게 메일 또는 SNS 페이지에 댓글을 남겨주시면, 우선적으로 번역해서 전달해드리도록 하겠습니다.