유연성 극대화를 위해 빅 데이터 스토리지 솔루션(데이터 레이크) 구축 2/3

빌드업웍스
25 min readFeb 13, 2020

--

https://AWS.amazon.com/ko/

[ 고지 사항 (Disclaimer) ]

본 컨텐츠는 고객의 편의를 위하여 AWS 서비스 설명을 위해 제작, 제공된 것입니다. 만약 AWS 사이트와 컨텐츠 상에서 차이나 불일치가 있을 경우 AWS 사이트 (AWS.amazon.com)가 우선합니다. 또한 AWS 사이트 상에서 한글 번역문과 영어 원문에 차이나 불일치가 있을 경우(번역의 지체로 인한 경우 등 포함), 영어 원문이 우선합니다.

본 문서는 Building Big Data Storage Solutions (Data Lakes) for Maximum Flexibility(2017, 영문) 내용에 기반하여 작성 되었습니다.

이 문서는 정보 제공의 목적으로만 제공됩니다. 본 문서의 발행일 당시 AWS의 현재 제품 오퍼링 및 실행방법 등을 설명하며, 예고 없이 변경될 수 있습니다. 고객은 본 문서에 포함된 정보나 AWS 제품 또는 서비스의 사용을 독립적으로 평가할 책임이 있으며, 각 정보 및 제품은 명시적이든 묵시적이든 어떠한 종류의 보증 없이 “있는 그대로” 제공됩니다. 본 문서는 AWS, 그 자회사, 공급업체 또는 라이선스 제공자로부터 어떠한 보증, 표현, 계약 약속, 조건 또는 보장을 구성하지 않습니다. 고객에 대한 AWS의 책임 및 의무는 AWS 계약에 의해 관리되며 본 문서는 AWS와 고객 사이의 어떠한 계약에도 속하지 않으며 계약을 변경하지도 않습니다.

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

데이터 카탈로그

데이터 레이크를 구축하는 데 걸림돌이 되었던 가장 초기 과제는 데이터 레이크에 로드되는 모든 원시 자산을 추적한 다음, 데이터 변환, 데이터 처리 및 분석에 의해 생성된 모든 새로운 데이터 자산과 버전을 추적하는 것입니다. 따라서 Amazon S3 기반 데이터 레이크의 필수 구성 요소는 데이터 카탈로그입니다. 데이터 카탈로그는 데이터 레이크의 S3 버킷에 저장된 모든 자산의 쿼리 가능한 인터페이스를 제공합니다. 데이터 카탈로그는 데이터 레이크의 내용에 대한 단일 진실 소스를 제공하도록 설계되었습니다.

데이터 카탈로그에는 S3 데이터 레이크에 수집된 모든 자산에 대한 정보를 포함하는 포괄적인 데이터 카탈로그와 분석 툴에서 사용할 수 있는 형식과 테이블 정의로 변환된 데이터 자산에 대한 정보를 포함하는 Hive Metastore 카탈로그(HCatalog)의 두 가지 일반적인 형식이 있습니다. Amazon Athena, Amazon Redshift, Amazon Redshift Spectrum 및 Amazon EMR입니다. 두 카탈로그는 상호 배타적이지 않으며 둘 다 존재할 수 있습니다. 포괄적인 데이터 카탈로그를 사용하여 데이터 레이크의 모든 자산을 검색할 수 있으며 HCatalog를 사용하여 데이터 레이크의 데이터 자산을 검색하고 쿼리할 수 있습니다.

포괄적인 데이터 카탈로그

포괄적인 데이터 카탈로그는 AWS Lambda, Amazon DynamoDB 및 Amazon Elasticsearch Service(Amazon ES)와 같은 표준 AWS 서비스를 사용하여 생성할 수 있습니다. 상위 레벨에서 Lambda 트리거는 Amazon S3에 개체를 넣을 때 DynamoDB 테이블을 개체 이름과 메타데이터로 채우는 데 사용되며, 그런 다음 Amazon ES를 사용하여 특정 자산, 관련 메타데이터 및 데이터 분류를 검색합니다. 그림 3은 이 솔루션의 높은 수준의 아키텍처 개요를 보여줍니다.

그림 3 : AWS Lambda, Amazon DynamoDB 및 Amazon Elasticsearch Service를 사용하는 포괄적인 데이터 카탈로그

AWS Glue를 사용한 HCatalog

AWS Glue는 Amazon S3 기반 데이터 레이크에 저장된 Hive 호환 메타스토어 데이터 카탈로그를 생성하는 데 사용할 수 있습니다. AWS Glue를 사용하여 데이터 카탈로그를 작성하려면 AWS 관리 콘솔의 AWS Glue에 데이터 소스를 등록합니다. 그런 다음 AWS Glue는 데이터 소스용 S3 버킷을 탐색하고 JSON, CSV, Parquet 등을 비롯한 다양한 인기 소스 형식과 데이터 유형에 대해 미리 작성된 분류기를 사용하여 데이터 카탈로그를 구성합니다. 또한 AWS Glue 커뮤니티에서 사용자 고유의 분류자를 추가하거나 분류자를 선택하여 크롤에 추가하여 다른 데이터 형식을 인식하고 카탈로그를 만들 수도 있습니다. AWS 글루 생성 카탈로그는 Amazon Athena, Amazon Redshift, Amazon Redshift Spectrum 및 Amazon EMR과 표준 Hive Metastore 카탈로그를 사용하는 타사 분석 도구에서 사용할 수 있습니다. 그림 4는 AWS Glue 데이터 카탈로그 인터페이스의 샘플 스크린샷을 보여줍니다.

그림 4 : 샘플 AWS Glue 데이터 카탈로그 인터페이스

데이터 보안, 보호 및 관리

데이터 레이크를 구축하고 이전에 복제되어 소규모 플랫폼과 사용자 그룹의 여러 사일로에 걸쳐 배치된 자산의 중앙 저장소로 만들기 위해서는 데이터 자산을 보호하고 관리하는 방법과 함께 엄격하고 세분화된 보안 및 액세스 제어를 구현해야 합니다. Amazon S3를 핵심으로 하는 AWS의 데이터 레이크 솔루션은 대규모 멀티 테넌트(Multi-tenant) 환경에서도 내부 및 외부 위협으로부터 데이터를 보호하고 보호할 수 있는 강력한 기능 및 서비스를 제공합니다. 또한 혁신적인 Amazon S3 데이터 관리 기능을 통해 수십억 개의 개체와 페타바이트 단위의 데이터 자산을 포함하는 경우에도 데이터 레이크 스토리지 관리를 자동화하고 확장할 수 있습니다.

데이터 레이크의 보안은 인증된 사용자가 특정 자산을 보고, 액세스하고, 처리하고, 수정할 수 있도록 하고, 무단 사용자가 데이터 기밀성 및 보안을 손상시킬 수 있는 조치를 취하지 못하도록 하는 매우 세분화된 제어 기능을 구현하는 것으로 시작됩니다. 액세스 역할이 데이터 자산의 처리 및 라이프사이클의 다양한 단계에 걸쳐 발전할 수 있다는 점이 복잡한 요소입니다. 다행히도 Amazon은 Amazon S3 기반 데이터 레이크를 보호하기 위해 포괄적이고 잘 통합된 보안 기능을 갖추고 있습니다.

액세스 정책 옵션 및 AWS IAM

액세스 정책 옵션을 사용하여 Amazon S3 리소스에 대한 액세스를 관리할 수 있습니다. 기본적으로 모든 Amazon S3 리소스(버킷, 개체 및 관련 하위 리소스)는 비공개입니다. 이러한 리소스를 생성한 AWS 계정인 리소스 소유자만 리소스에 액세스할 수 있습니다. 그런 다음 리소스 소유자는 액세스 정책을 작성하여 다른 사용자에게 액세스 권한을 부여할 수 있습니다. Amazon S3 액세스 정책 옵션은 리소스 기반 정책 및 사용자 정책으로 광범위하게 분류됩니다. 리소스에 연결된 액세스 정책을 리소스 기반 정책이라고 합니다. 리소스 기반 정책에는 버킷 정책 및 ACL(액세스 제어 목록)이 포함됩니다. 계정에서 사용자에게 연결된 액세스 정책을 사용자 정책이라고 합니다. 일반적으로 리소스 기반 정책과 사용자 정책의 조합을 사용하여 S3 버킷, 개체 및 기타 리소스에 대한 사용 권한을 관리합니다.

대부분의 데이터 레이크 환경에서는 데이터 자산에 대한 액세스 권한이 데이터 레이크 사용자가 사용할 데이터 처리 및 분석 서비스 및 도구에 대한 사용자 역할 및 사용 권한과 연관될 수 있도록 사용자 정책을 사용하는 것이 좋습니다. 사용자 정책은 AWS 서비스 및 리소스에 대한 액세스를 안전하게 제어할 수 있는 IAM(AWS ID 및 액세스 관리) 서비스와 연결됩니다. IAM을 사용하면 계정에서 IAM 사용자, 그룹 및 역할을 생성한 다음 Amazon S3를 비롯한 AWS 리소스에 대한 액세스를 부여하는 액세스 정책을 계정에 연결할 수 있습니다. 사용자 정책 모델은 그림 5에 나와 있습니다. 사용자 정책 및 AWS IAM을 통한 Amazon S3 보안에 대한 자세한 정보와 정보는 다음을 참조하십시오. Amazon Simple Storage Service 개발자 가이드AWS ID 및 액세스 관리 사용자 가이드입니다.

그림 5 : 사용자 정책 모델

Amazon S3 및 AWS KMS를 사용한 데이터 암호화

Amazon S3 기반 데이터 레이크의 데이터를 보고 액세스할 수 있는 사용자 정책 및 IAM을 제어하지만, 실수로 또는 악의적으로 이러한 데이터 자산에 액세스하기 위해 관리할 수 있는 사용자가 이러한 데이터를 보고 사용할 수 없도록 하는 것도 중요합니다. 이 작업은 암호화 키를 사용하여 데이터 자산을 암호화 및 삭제함으로써 수행됩니다. Amazon S3는 여러 암호화 옵션을 지원합니다.

또한 AWS KMS는 암호화 키의 확장 및 관리를 단순화하는 데 도움이 됩니다. AWS KMS를 사용하면 데이터 자산을 보호하는 데 사용되는 암호화 키를 중앙 집중식으로 제어할 수 있습니다. 데이터를 암호화하는 데 사용되는 암호화 키 사용을 생성, 가져오기, 회전, 사용 안 함, 삭제, 정의 및 감사할 수 있습니다. AWS KMS는 여러 다른 AWS 서비스와 통합되어 있으므로 암호화 키를 사용하여 이러한 서비스에 저장된 데이터를 쉽게 암호화할 수 있습니다. AWS KMS는 AWS CloudTrail과 통합되어 있어 누가 어떤 키를 사용했는지, 어떤 리소스인지, 언제 사용했는지 감사할 수 있습니다.

AWS를 기반으로 구축된 데이터 레이크는 주로 두 가지 유형의 암호화를 사용합니다. SSE(서버 측 암호화) 및 클라이언트 측 암호화입니다. SSE는 Amazon S3에 작성된 데이터에 대해 미사용 데이터 암호화를 제공합니다. SSE를 사용하면 Amazon S3에서 사용자 데이터 자산을 개체 수준에서 암호화하고 암호화된 개체를 저장한 다음 액세스 및 검색 시 암호를 해독합니다. 클라이언트 측 암호화를 사용하면 데이터 개체가 Amazon S3에 기록되기 전에 암호화됩니다. 예를 들어 데이터 레이크 사용자는 인터넷에서 Amazon S3로 데이터 자산을 전송하기 전에 클라이언트 측 암호화를 지정하거나 Amazon EMR, Amazon Athena 또는 Amazon Redshift와 같은 서비스를 Amazon S3와 함께 클라이언트 측 암호화를 사용하여 최고 수준의 보호를 위해 결합할 수 있도록 지정할 수 있습니다. 데이터 레이크와 같은 복잡한 환경에서 암호화 키 관리를 조정하는 복잡성을 고려할 때 AWS KMS를 사용하여 클라이언트 및 서버측 암호화 및 여러 데이터 처리 및 분석 서비스 간에 키를 조정하는 것이 좋습니다.

훨씬 더 높은 수준의 데이터 레이크 데이터 보호를 위해 Amazon API 게이트웨이, Amazon Cognito 및 IAM과 같은 다른 서비스를 결합하여 사용자가 데이터 레이크 데이터 자산을 체크인 및 체크아웃할 수 있는 “쇼핑 카트” 모델을 만들 수 있습니다. 이 아키텍처는 Amazon S3 기반 데이터 레이크 솔루션 참조 아키텍처를 위해 생성되었습니다. 이 아키텍처는 다음 위치에서 검색, 다운로드 및 배포할 수 있습니다.

https://aws.amazon.com/answers/big-data/data-lake-solution/

Amazon S3로 데이터 보호

중앙 집중식 데이터 레이크의 중요한 기능은 주로 손상, 손실, 우발적 또는 악의적인 덮어쓰기, 수정 또는 삭제로부터 데이터 자산을 보호하는 것입니다. Amazon S3에는 데이터 레이크의 핵심 플랫폼으로 사용될 때 최고 수준의 데이터 보호를 제공하는 몇 가지 고유한 기능과 기능이 있습니다.

데이터 보호는 사용되는 스토리지 플랫폼의 고유한 내구성에 달려 있습니다. 내구성은 데이터 자산을 손상 및 손실로부터 보호하는 기능으로 정의됩니다. Amazon S3는 99.9999999%의 데이터 내구성을 제공합니다. 이는 대부분의 사내 단일 사이트 스토리지 플랫폼이 제공할 수 있는 것보다 4~6배 더 큰 규모입니다. 다시 말해 Amazon S3의 내구성은 10,000,000개의 데이터 자산을 10,000년 동안 안정적으로 저장할 수 있도록 설계되었습니다.

Amazon S3는 여러 가용성 영역을 사용하여 전 세계 16개 지역에서 모두 이러한 내구성을 달성합니다. 가용성 영역은 각각 중복 전원, 네트워킹 및 연결을 갖춘 하나 이상의 개별 데이터 센터로 구성되어 있으며, 각각 별도의 시설에 들어 있습니다. 가용성 영역은 프로덕션 애플리케이션 및 분석 서비스를 운영할 수 있는 기능을 제공합니다. 프로덕션 애플리케이션 및 분석 서비스는 단일 데이터 센터에서보다 고가용성, 내결함성 및 확장성이 뛰어납니다. Amazon S3에 기록된 데이터는 3개의 가용성 영역과 각 가용성 영역 내의 여러 장치에 중복 저장되어 99.9999999%의 내구성을 달성합니다. 즉, 전체 데이터 센터 장애 발생 시에도 데이터가 손실되지 않습니다.

핵심 데이터 보호 외에도 사용자가 실수로 데이터 자산을 삭제하거나, 실수로 데이터를 삭제 또는 손상하거나, 데이터를 조작하려는 악성 행위자 등 의도하지 않은 악성 삭제 및 손상으로부터 데이터 자산을 보호하는 것도 핵심 요소입니다. 이는 대규모 멀티 테넌트(Multi-tenant) 데이터 레이크에서 특히 중요하며, 이는 많은 사용자, 많은 애플리케이션, 지속적인 임시 데이터 처리 및 애플리케이션 개발을 지원합니다. Amazon S3는 이러한 시나리오로부터 데이터 자산을 보호하기 위한 버전 관리를 제공합니다. 활성화된 경우 Amazon S3 버전은 데이터 자산의 여러 복사본을 유지합니다. 자산이 업데이트되면 자산의 이전 버전이 유지되고 언제든지 검색할 수 있습니다. 자산이 삭제되면 자산의 마지막 버전을 검색할 수 있습니다. 데이터 자산 버전은 정책에 의해 관리되고 대규모로 관리를 자동화할 수 있으며, Amazon Glacier와 같은 저비용 스토리지 계층에 있는 버전을 장기간 보존하기 위한 라이프사이클 관리 및 두 번째 인증 계층이 필요한 MFA(Multi-Factor-Authentication) 삭제와 같은 다른 Amazon S3 기능과 결합할 수 있습니다. 일반적으로 승인된 외부 인증 장치를 통해 데이터 자산 버전을 삭제합니다.

Amazon S3는 AWS 영역 내에서 99.9999999%의 데이터 내구성을 제공하지만 많은 엔터프라이즈 조직은 지리적으로 떨어진 두 번째 위치로 데이터 자산을 복제하고 두 번째 위치에 재해 복구(DR) 아키텍처를 구축해야 하는 규정 준수 및 위험 모델을 보유하고 있을 수 있습니다. Amazon S3 CRR(Cross-region 복제)은 하나의 AWS 영역의 데이터 레이크에서 다른 AWS 영역의 데이터 레이크로 데이터 자산을 자동으로 비동기식으로 복사하는 통합 S3 기능입니다. 두 번째 영역의 데이터 자산은 이름, 메타데이터, 버전 및 액세스 제어를 포함하여 복사된 원본 데이터 자산의 정확한 복제본입니다. 모든 데이터 자산은 SSL을 통해 전송되는 동안 암호화되어 최고 수준의 데이터 보안을 보장합니다.

이러한 모든 Amazon S3 기능과 IAM, AWS KMS, Amazon Cognito 및 Amazon API Gateway와 같은 다른 AWS 서비스와 결합하면 Amazon S3를 핵심 스토리지 플랫폼으로 사용하는 데이터 레이크가 가장 엄격한 데이터 보안, 컴플라이언스, 개인 정보 보호 및 보호 요구사항을 충족할 수 있습니다. Amazon S3에는 PCI-DSS, HIPAA/HITECH, FedRAMP, SEC 규칙 17a-4, FISMA, EU 데이터 보호 지침 및 기타 많은 글로벌 기관 인증이 포함됩니다. 이러한 수준의 컴플라이언스 및 보호 기능을 통해 조직은 AWS를 기반으로 데이터 레이크를 구축할 수 있습니다. AWS는 사내 데이터 센터에 구축된 것보다 더 안전하고 덜 위험하게 운영됩니다.

객체 태그를 사용하여 데이터 관리

데이터 레이크 솔루션은 본질적으로 다중 테넌트이므로 많은 조직, 비즈니스, 사용자 및 응용 프로그램에서 데이터 자산을 사용하고 처리하므로 데이터 자산을 이러한 모든 엔터티에 연결하고 이러한 자산을 일관되게 관리하기위한 정책을 설정하는 것이 매우 중요합니다. Amazon S3는 S3 데이터 자산의 분류 및 관리를 지원하는 새로운 기능인 객체 태깅을 도입했습니다. 객체 태그는 변경 가능한 키-값 쌍입니다. 각 S3 객체는 최대 10 개의 객체 태그를 가질 수 있습니다. 각 태그 키는 최대 128 개의 유니 코드 문자를 사용할 수 있으며 각 태그 값은 최대 256 개의 유니 코드 문자를 사용할 수 있습니다. 개체 태깅의 예를 들어 개체에 보호 된 건강 정보 (PHI) 데이터가 포함되어 있다고 가정합니다. 개체 태그를 사용하는 사용자, 관리자 또는 응용 프로그램은 키-값 쌍 PHI = True 또는 Classification = PHI를 사용하여 개체에 태그를 지정할 수 있습니다.

개체 태깅은 데이터 분류에 사용될 뿐만 아니라 다른 중요한 기능도 제공합니다. IAM과 함께 개체 태그를 사용하여 액세스 권한을 세부적으로 제어할 수 있습니다. 예를 들어 특정 데이터 레이크 사용자는 특정 태그가 있는 개체만 읽을 수 있는 권한을 부여받을 수 있습니다.

개체 태그는 이 백서의 다음 섹션에서 설명하는 Amazon S3 데이터 수명 주기 정책을 관리하는 데도 사용할 수 있습니다. 데이터 수명 주기 정책에는 태그 기반 필터가 포함될 수 있습니다. 마지막으로 개체 태그는 Amazon CloudWatch 메트릭스 및 AWS CloudTrail 로그(이 문서의 다음 섹션에서도 설명됨)와 결합되어 특정 데이터 자산 태그 필터별 모니터링 및 작업 감사 데이터를 표시할 수 있습니다.

데이트 레이크 환경 모니터링 및 최적화

데이터 레이크를 설계하고 구축하는 데 필요한 노력 외에도 데이터 레이크의 운영 측면과 대규모 프로덕션 데이터 레이크를 비용 효율적이고 효율적으로 운영하는 방법을 고려해야 합니다. 고려해야 할 주요 요소는 데이터 레이크의 운영을 모니터링하여 성능 기대치와 SLA를 충족하는지 확인하고, 활용률 패턴을 분석하며, 이 정보를 사용하여 데이터 레이크의 비용과 성능을 최적화하는 것입니다. AWS는 Amazon S3 스토리지 분석, Amazon CloudWatch 메트릭스, AWS CloudTrail 및 Amazon Glacier를 포함하여 AWS를 기반으로 구축된 데이터 레이크를 최적화하는 데 도움이 되는 다양한 기능과 서비스를 제공합니다.

데이터 레이크 모니터링

데이터 레이크 환경 운영의 주요 측면은 데이터 레이크를 구성하는 모든 구성 요소가 어떻게 작동 및 수행되고 있는지 이해하고, 문제가 발생하거나 운영 성능이 사전 정의된 임계값 아래로 떨어질 때 알림을 생성하는 것입니다.

Amazon CloudWatch

관리자는 전체 데이터 레이크 환경을 전체적으로 살펴봐야 합니다. 이는 Amazon CloudWatch를 사용하여 달성할 수 있습니다. CloudWatch는 AWS Cloud 리소스 및 AWS에서 실행되는 애플리케이션을 모니터링하는 서비스입니다. CloudWatch를 사용하여 메트릭을 수집 및 추적하고 로그 파일을 수집 및 모니터링하고 임계값을 설정하고 경보를 트리거할 수 있습니다. 이를 통해 AWS 리소스의 변경에 자동으로 대응할 수 있습니다.

CloudWatch는 Amazon EC2 인스턴스, Amazon S3, Amazon EMR, Amazon Redshift, Amazon DynamoDB 및 Amazon RDS(Relational Database Service) 데이터베이스 인스턴스와 같은 AWS 리소스뿐만 아니라 다른 데이터 레이크 애플리케이션 및 서비스에서 생성된 사용자 정의 메트릭을 모니터링할 수 있습니다. CloudWatch는 리소스 활용도, 애플리케이션 성능 및 운영 상태에 대한 시스템 차원의 가시성을 제공합니다. 이러한 통찰력을 사용하여 문제에 능동적으로 대응하고 데이터 레이크 애플리케이션 및 워크플로우를 원활하게 실행할 수 있습니다.

AWS CloudTrail

운영 데이터 레이크에 많은 사용자와 관리자가 있으며 규정 준수 및 감사 요구 사항이 적용될 수 있으므로 이러한 작업을 수행한 사용자와 담당자가 누구인지에 대한 완전한 감사 추적을 하는 것이 중요합니다. AWS CloudTrail은 AWS 계정에 대한 거버넌스, 컴플라이언스, 운영 감사 및 위험 감사를 가능하게 하는 AWS 서비스입니다.

CloudTrail은 데이터 레이크로 구성된 AWS 서비스 전반에서 API 호출과 관련된 이벤트를 지속적으로 모니터링하고 유지합니다. CloudTrail은 AWS Management Console, AWS SDK, 명령줄 도구 및 대부분의 Amazon S3 기반 데이터 레이크 서비스를 통해 수행된 API 호출을 포함하여 계정에 대한 AWS API 호출 기록을 제공합니다. CloudTrail을 지원하는 AWS 서비스에 대해 요청하거나 조치를 취한 사용자와 계정, 작업이 수행된 소스 IP 주소 및 작업이 발생한 시기를 식별할 수 있습니다.

CloudTrail은 AWS 계정 내에서 수행된 작업에 대한 활동 로그를 자동으로 기록하고 저장하여 데이터 레이크 규정 준수 감사를 단순화하는 데 사용할 수 있습니다.

Amazon CloudWatch Logs와의 통합을 통해 로그 데이터를 검색하고, 비준수 이벤트를 식별하고, 문제 조사를 가속화하며, 감사 요청에 대한 응답을 신속하게 처리할 수 있는 편리한 방법을 제공합니다. CloudTrail 로그는 내구성과 심층 분석을 위해 S3 버킷에 저장됩니다.

데이터 레이크 최적화

데이터 레이크 환경을 최적화하면 운영 비용을 최소화할 수 있습니다. Amazon S3에 데이터 레이크를 구축하면 실제로 사용하는 데이터 스토리지 및 데이터 처리 서비스에 대해서만 비용을 지불할 수 있습니다. 이러한 서비스의 사용 방법을 최적화하여 비용을 절감할 수 있습니다. 데이터 자산 스토리지는 데이터 레이크와 관련된 비용의 상당한 부분을 차지합니다. 다행히도 AWS에는 S3 라이프사이클 관리, S3 스토리지 클래스 분석 및 Amazon Glacier가 포함됩니다.

Amazon S3 수명 주기 관리

Amazon S3 수명 주기 관리를 사용하면 S3 Standard-Inprequency Access 또는 Amazon Glacier와 같은 저비용 스토리지 계층으로 데이터 자산을 자동으로 마이그레이션하거나 더 이상 필요하지 않을 때 만료하는 데 사용할 수 있습니다. XML 파일로 구성된 수명 주기 구성은 Amazon S3가 수명 동안 데이터 자산에 대해 수행할 미리 정의된 작업이 포함된 규칙 집합으로 구성됩니다. 수명 주기 구성은 데이터 자산 기간 및 데이터 자산 이름을 기반으로 작업을 수행할 수 있지만 S3 개체 태깅과 결합하여 데이터 자산을 매우 세부적으로 관리할 수도 있습니다.

Amazon S3 Storage Class Analysis

데이터 레이크의 라이프사이클 규칙을 개발하고 구성하는 문제 중 하나는 시간이 지남에 따라 데이터 자산에 액세스하는 방법을 이해하는 것입니다. 데이터 자산에 자주 액세스하지 않는 경우 데이터 자산을 보다 비용 효율적인 스토리지 또는 아카이브 계층으로 전환하는 것이 경제적인 이유일 뿐입니다. 그렇지 않으면 이러한 보다 비용 효율적인 스토리지 클래스와 관련된 데이터 액세스 비용이 잠재적인 비용 절감을 무효화할 수 있습니다. Amazon S3는 데이터 레이크 데이터 자산의 사용 방법을 이해하는 데 도움이 되는 S3 스토리지 클래스 분석을 제공합니다. Amazon S3 스토리지 클래스 분석에서는 수집된 액세스 데이터에 대한 기계 학습 알고리즘을 사용하여 비용을 최적화할 라이프사이클 규칙을 개발할 수 있습니다.

특히 사용자가 보다 고급 분석 및 기계 학습 기능을 계획하고 이동함에 따라 데이터 레이크의 중요한 기능에서 비용 절감 스토리지 계층을 원활하게 계층화합니다. 데이터 레이크 사용자는 일반적으로 여러 소스에서 원시 데이터 자산을 수집하고 이러한 자산을 SQL을 통한 특별 쿼리 및 지속적인 비즈니스 인텔리전스(BI) 쿼리에 사용할 수 있는 일치된 형식으로 변환합니다. 그러나 스트리밍 분석, 머신러닝 및 인공지능을 사용하여 보다 고급 분석을 수행하고자 합니다. 이러한 고급 분석 기능은 데이터 모델을 구축하고, 이러한 데이터 모델을 데이터 자산으로 검증한 다음, 이전 데이터로 모델을 교육하고 수정하는 것으로 구성됩니다.

더 많은 과거 데이터 자산(특히 원시 데이터 자산)을 유지하면 모델을 더 잘 교육하고 개선할 수 있습니다. 또한 조직의 분석 수준이 향상됨에 따라 과거의 데이터를 다시 처리하여 새로운 통찰력과 가치를 모색해야 할 수도 있습니다. 이러한 기간별 데이터 자산은 자주 액세스되지 않으며 많은 용량을 소비하므로 아카이브 스토리지 계층에 저장하는 것이 매우 적합합니다.

데이터 레이크에 대한 또 다른 장기적인 데이터 스토리지 요구 사항은 처리된 데이터 자산과 결과를 규정 준수 및 감사 목적으로 장기간 보존하기 위해 보관하는 것이며, 필요할 때 감사자가 액세스하는 것입니다. 이 두 사용 사례는 모두 자주 사용되지 않는 콜드 데이터에 최적화된 AWS 스토리지 서비스인 Amazon Glacier에서 잘 제공됩니다. WORM(Write Once, Read Many) 데이터를 저장하는 데 사용됩니다.

Amazon Glacier

Amazon Glacier는 데이터 아카이빙 및 백업을 위한 보안 기능을 갖춘 내구성이 뛰어난 스토리지를 제공하는 매우 저렴한 스토리지 서비스로, Amazon S3와 동일한 데이터 내구성을 가지고 있으며, AWS 보안 기능과 통합되어 있으며, 저장된 데이터 자산에 대한 S3 라이프사이클 관리를 사용하여 S3와 통합될 수 있습니다. S3는 데이터 자산을 S3에서 Glacier로 원활하게 마이그레이션할 수 있도록 지원합니다. Amazon Glacier는 낮은 스토리지 비용이 가장 중요하고, 데이터 자산이 거의 검색되지 않으며, 검색 대기 시간이 몇 분에서 몇 시간 정도인 경우에 매우 적합한 스토리지 옵션입니다.

데이터 레이크 자산 유형에 따라 검색 요구 사항이 다를 수 있습니다. 예를 들어 컴플라이언스 데이터는 자주 액세스되지 않고 크기가 상대적으로 작지만 감사원이 데이터를 요청할 때는 몇 분 안에 사용할 수 있어야 하는 반면, 과거의 원시 데이터 자산은 매우 크지만 필요할 때 하루 동안 대량으로 검색할 수 있습니다.

Amazon Glacier를 사용하면 데이터 레이크 사용자가 데이터 검색 요청이 생성될 때 검색 시간을 지정할 수 있으며, 검색 시간이 길어지면 검색 비용이 절감됩니다. Amazon Glacier Vault Lock은 안전하게 보관해야 하는 처리된 데이터와 레코드의 경우 데이터 레이크 관리자가 잠금 정책을 통해 개별 Glacier Vault에 컴플라이언스 제어를 적용할 수 있습니다.

관리자는 Vault Lock 정책에 WORM(Write Once Read Many)과 같은 컨트롤을 지정하고 향후 편집에서 정책을 잠글 수 있습니다. 잠긴 정책은 변경되지 않으며 Amazon Glacier는 규정 준수 목표를 달성하기 위해 지정된 제어를 적용하고 AWS CloudTrail을 사용하여 이러한 자산에 대한 감사 추적을 제공합니다.

비용 및 성능 최적화

비용과 성능을 사용하여 데이터 레이크를 최적화할 수 있습니다. Amazon S3는 데이터 레이크에 매우 뛰어난 기반을 제공합니다. 그 이유는 Amazon S3의 거대한 규모가 사실상 무제한의 처리량과 매우 높은 트랜잭션 속도를 제공하기 때문입니다. Amazon S3 데이터 자산 명명 모범 사례를 사용하면 높은 수준의 성능을 보장할 수 있습니다. 이러한 모범 사례는 Amazon Simple Storage Service Developers Guide에서 확인할 수 있습니다.

또 다른 최적화 영역은 쿼리 및 분석에 대비하여 원시 데이터 자산을 정규화된 형식으로 변환할 때 최적의 데이터 형식을 사용하는 것입니다. 이러한 최적의 데이터 형식은 데이터를 압축하고 스토리지에 필요한 데이터 용량을 줄일 수 있으며 일반적인 Amazon S3 기반 데이터 레이크 분석 서비스를 통해 쿼리 성능을 크게 높일 수 있습니다.

데이터 레이크 환경은 다양한 유형의 데이터를 수집 및 처리하고 향후 아카이브 및 재처리 목적으로 원시 데이터 자산을 저장하도록 설계되었으며, 처리 및 정규화된 데이터 자산을 저장하여 능동 쿼리, 분석 및 보고를 수행할 수 있도록 설계되었습니다. 스토리지 및 분석 처리 비용을 절감하고 분석 쿼리 성능을 개선하는 주요 모범 사례 중 하나는 최적화된 데이터 형식(특히 Apache Parquet과 같은 형식)을 사용하는 것입니다.

Parquet는 데이터 처리 프레임워크, 데이터 모델 또는 프로그래밍 언어에 관계없이 대량의 데이터를 쿼리하도록 설계된 압축 저장소 파일 형식입니다. CSV, JSON 또는 TXT 형식과 같은 일반적인 원시 데이터 로그 형식과 비교하여 Parquet는 필요한 스토리지 공간을 줄이고 쿼리 성능을 크게 개선하며 검색된 데이터 양에 따라 비용을 청구하는 AWS 서비스의 쿼리 비용을 크게 절감할 수 있습니다.

CSV 형식으로 저장된 1TB의 로그 데이터를 사용하여 CSV 및 Parquet 형식을 비교한 Amazon 테스트에서는 다음을 보여 주었습니다.

· Parquet을 사용하면 공간이 87% 절약됩니다(Parquet를 사용하면 CSV 형식으로 저장된 로그 데이터가 130GB로 압축됨).

· 대표 Athena 쿼리의 쿼리 시간은 Parquet의 경우 34배 더 빠르며(CSV의 경우 277초 대 Parquet의 경우 5.13초), Athena 쿼리의 검색된 데이터 양은 99% 더 적었습니다(CSV의 경우 1.15TB 대 Parquet의 경우 2.69GB).

· Athena 쿼리를 실행하는 데 드는 비용은 99.7%(CSV의 경우 5.75달러, Parquet의 경우 0.013달러) 낮았습니다.

Parquet는 Amazon S3 기반 데이터 레이크, 특히 Amazon Athena, Amazon EMR, Amazon Redshift 및 Amazon Redshift Spectrum에서 여러 쿼리 및 분석 도구를 사용할 수 있는 개방형 데이터 형식이라는 추가적인 이점을 제공합니다.

AWS는 IT 인프라 비용을 절감하고 기업의 핵심가치에 더욱 집중할 수 있도록 합니다.

AWS에 대한 자세한 문의사항은 여기를 눌러 주세요.

빌드업웍스는 AWS 컨설팅 파트너로 고객 비즈니스를 최우선으로 하며 고객의 클라우드의 성공적인 시작과 운영을 지원합니다.

http://buw.co.kr

--

--

빌드업웍스
빌드업웍스

Written by 빌드업웍스

클라우드 교육, 구축, 운영, 관리, 컨설팅 및 교육 리소스 디지털 퍼블리싱 : AWS 파트너, 유데미 파트너| buw.co.kr | admin@buw.co.kr | 053–954–3711

No responses yet