AWS Lake Formation – 데이터레이크 구축 및 관리 서비스 정식 출시
데이터를 디지털 형식으로 변환할 수 있게 되면서 다양한 회사에서는 CRM(고객 관계 관리) 및 ERP(엔터프라이즈 리소스 관리) 시스템처럼 운영 체제의 데이터를 수집하는 데이터 웨어하우스를 구축하고 이 정보를 사용해 비즈니스 의사 결정을 지원할 수 있게 되었습니다.
데이터 저장을 위한 스토리지 비용이 절감되었고 다량의 데이터 관리에서 비롯되는 복잡성은 더 큰 폭으로 줄었습니다. 이를 위해 Amazon S3 같은 서비스를 활용해 구조화되지 않은 원시 데이터를 포함하여 로그, 이미지, 비디오 및 스캔된 문서 등 더 많은 정보를 보존할 수 있게 되었습니다.
데이터 레이크의 개념은 모든 데이터를 하나의 중앙 리포지토리에 원하는 규모로 저장하는 것입니다. Netflix, Zillow, NASDAQ, Yelp, iRobot, FINRA 및 Lyft 같은 고객이 이 접근 방식을 사용합니다. 이러한 고객은 단순 집계부터 복잡한 기계 학습 알고리즘에 이르는 분석을 더 큰 데이터 세트에서 실행하여 데이터의 패턴을 알아내고 비즈니스를 이해할 수 있습니다.
지난 해 re:Invent에서 소개된 AWS Lake Formation은 데이터의 수집, 정리, 카탈로그 작성, 변환 및 보안을 용이하게 하고 분석 및 기계 학습에 쉽게 사용할 수 있게 하는 서비스로서 이제 정식 출시되었습니다.
Lake Formation은 데이터 레이크를 관리할 수 있는 콘솔을 제공합니다. 예를 들어 데이터베이스 및 로그 같은 여러 소스의 데이터를 데이터 레이크로 이동하는 작업을 구성할 수 있습니다. 이와 같이 많은 양의 다각적인 데이터를 보유할 때는 적절한 액세스 권한을 구성하는 것도 중요합니다. Lake Formation에 정의된 세분화된 데이터 액세스 정책 세트 하나를 사용하여 Glue Data Catalog의 메타데이터와 S3에 저장된 데이터에 대한 액세스를 보호할 수 있습니다. 이러한 정책을 사용하면 테이블 및 열 수준 데이터 액세스를 정의할 수 있습니다.
이 서비스의 가장 큰 장점은 Amazon S3에 있는 기존 데이터에 사용할 수 있다는 것입니다. 기존 데이터를 Lake Formation에 쉽게 등록할 수 있으며 데이터를 S3에 로드하는 기존 프로세스를 변경할 필요가 없습니다. 데이터는 사용자의 계정에 유지되므로 전적으로 사용자가 제어합니다.
또한 Glue ML 변환을 사용하여 중복된 데이터를 손쉽게 제거할 수 있습니다. 중복 제거는 필요한 스토리지의 양을 줄이기에 효과적인 기능이지만 동일한 데이터를 두 번 봄으로써 발생하는 오버헤드와 혼란이 제거되므로 데이터 분석의 효율성에 있어서도 중요한 역할을 합니다. 중복된 레코드를 고유 키로 식별할 수 있는 경우에는 이 문제가 크지 않지만 “부분 일치”를 수행해야 한다면 복잡해질 수 있습니다. 예를 들어 고유 키를 공유하지 않는 2개의 데이터베이스에 “부분 조인”을 수행할 때와 같이 서로 다른 테이블에서 유사한 항목을 찾는 레코드 연결에도 비슷한 접근 방식이 사용될 수 있습니다.
이 접근 방식을 사용하면 새로운 데이터 레이크의 구현이 훨씬 더 빨라지고, 데이터 레이크의 관리가 훨씬 더 쉬워지며, 이러한 기술을 더 많은 고객에게 제공할 수 있습니다.
데이터 레이크 생성하기
Lake Formation 콘솔을 사용하여 데이터 레이크를 구축합니다. 먼저, 데이터 레이크에 포함할 S3 버킷을 등록합니다. 그런 다음 데이터베이스를 생성하고, 데이터 레이크를 관리할 때 사용할 IAM 사용자 및 역할에 권한을 부여합니다. 데이터베이스는 Glue 데이터 카탈로그에 등록되며 원시 데이터의 분석에 필요한 메타데이터(예: 데이터 수집 중에 자동으로 생성되는 테이블의 구조)가 이 데이터베이스에 보관됩니다.
권한 관리는 데이터 레이크에서 가장 복잡한 작업 중 하나입니다. 데이터 레이크에는 엄청난 양의 데이터가 포함될 수 있습니다. 이 중에는 중요한 미션 크리티컬 속성의 데이터가 있을 수 있으며 데이터는 서로 다른 구조화, 반구조화 및 비구조화 형식으로 상주할 수 있습니다. Lake Formation은 IAM 사용자, 역할, 그룹 및 Active Directory 사용자(연동 사용)에게 데이터베이스, 테이블에 대한 액세스를 제공하거나 필요한 경우 테이블 내의 특정 열에 대한 액세스를 허용 또는 거부할 수 있는 중앙의 위치를 제공하여 이 작업을 쉽게 만듭니다.
데이터 수집을 간소화하려면 블루프린트를 사용하여 AWS Glue에서 공통 사용 사례에 필요한 워크플로, 크롤러 및 작업을 생성할 수 있습니다. 워크플로는 트리거, 크롤러 및 작업 같은 Glue 엔터티 간 종속성을 구축하여 데이터 로드 워크로드를 오케스트레이션합니다. 사용자는 워크플로에 있는 여러 노드의 상태를 콘솔에서 시각적으로 추적할 수 있으므로 진행률을 모니터링하고 문제를 해결하기가 쉽습니다.
데이터베이스 블루프린트는 운영 데이터베이스의 데이터를 로드하는 데 도움이 됩니다. 예를 들어 전자상거래 웹 사이트를 운영하는 경우 모든 주문을 데이터 레이크에 수집할 수 있습니다. 기존 데이터베이스의 전체 스냅샷을 로드하거나 새 데이터를 증분으로 로드할 수 있습니다. 증분 로드의 경우 테이블 하나와 이 테이블에 포함된 하나 이상의 열을 북마크 키(예: 주문의 타임스탬프)로 선택하여 이전에 가져온 데이터를 확인할 수 있습니다.
로그 파일 블루프린트를 사용하면 Application Load Balancer, Elastic Load Balancer 및 AWS CloudTrail에 사용되는 로깅 형식을 간편하게 수집할 수 있습니다. 그 작동 방식을 좀 더 자세히 살펴보겠습니다.
보안은 항상 최우선 순위이므로 계정 전체의 모든 관리 작업에 대한 과학 수사용 로그를 수집하기 위해 CloudTrail 블루프린트를 선택합니다. 소스로는 모든 지역의 CloudTrail 로그를 S3 버킷으로 수집하는 트레일을 선택합니다. 이렇게 하면 모든 AWS 인프라에서 수행되는 계정 활동을 쿼리할 수 있게 됩니다. 여러 AWS 계정이 대규모 조직에서도 비슷한 방식으로 작동합니다. 단지 CloudTrial 콘솔에서 트레일을 구성할 때 이 트레일을 전체 조직에 적용하기만 하면 됩니다.
그런 다음 대상 데이터베이스를 선택하고 데이터 레이크에 대한 S3 위치를 선택합니다. 데이터 형식으로는 열 기반 스토리지 형식인 Parquet를 사용합니다. 이 형식을 사용하면 데이터 쿼리가 더 빨라지고 저렴해집니다. 가져오기 빈도는 시간에서 월 단위로 지정할 수 있으며 요일과 시간을 선택할 수 있습니다. 지금은 워크플로를 온디맨드로 실행하겠습니다. 콘솔에서 실행하거나 AWS SDK 또는 AWS CLI(명령줄 인터페이스)를 사용하여 프로그래밍 방식으로 실행할 수 있습니다.
마지막으로 워크플로의 이름, 실행 중에 사용할 IAM 역할 및 이 워크플로에서 자동으로 생성되는 테이블에 대한 접두사를 지정합니다.
Lake Formation 콘솔에서 워크플로를 시작하고, 워크플로 그래프를 표시하도록 선택합니다. AWS Glue 콘솔이 열립니다. 여기서 워크플로 단계를 시각적으로 보고 이 실행의 진행률을 모니터링할 수 있습니다.
워크플로가 완료되면 데이터 레이크 데이터베이스에서 새 테이블을 사용할 수 있게 됩니다. 소스 데이터는 CloudTrail의 S3 버킷 출력에서 로그로 유지되지만 Parquet 형식으로 통합되어 날짜로 분할되고 데이터 레이크 S3 위치에 있습니다. 비용을 최적화하려면 안전한 시간이 경과한 후 소스 S3 버킷의 데이터를 자동으로 만료시키는 S3 수명 주기 정책을 설정하면 됩니다.
데이터 레이크에 대한 액세스 보호
Lake Formation은 IAM 정책을 보강하는 새로운 grant/revoke 권한을 통해 데이터 레이크에 저장된 데이터에 안전하고 세분화된 방식으로 액세스할 수 있도록 합니다. 이러한 권한은 콘솔 등을 사용하여 간단하게 설정할 수 있습니다.
액세스 권한을 부여할 IAM 사용자 또는 역할을 선택합니다. 그런 다음 액세스를 제공할 데이터베이스와 필요한 경우 테이블 및 열을 선택합니다. 제공할 액세스 권한의 유형을 선택하는 것도 가능합니다. 이 데모에서는 단순한 select 권한이면 충분합니다.
데이터 레이크 질의 하기
이제 Amazon Athena 또는 Amazon Redshift 같은 도구를 사용해 데이터를 쿼리할 수 있습니다. 예를 들어 Athena 콘솔에서 쿼리 편집기를 엽니다. 먼저, 새 데이터 레이크를 사용해 내 AWS 계정 활동에서 가장 자주 등장하는 소스 IP 주소를 찾아봅니다.
SELECT sourceipaddress, count(*)
FROM my_trail_cloudtrail
GROUP BY sourceipaddress
ORDER BY 2 DESC;
쿼리 결과를 보면 가장 자주 사용되는 AWS API 엔드포인트를 알 수 있습니다. 이제 사용된 사용자 자격 증명의 유형을 확인합니다. 이 정보는 열 하나의 내부에 JSON 형식으로 저장되어 있습니다. Amazon Athena에서 제공하는 JSON 함수 일부를 사용하여 SQL 문으로 이 정보를 가져올 수 있습니다.
SELECT json_extract_scalar(useridentity, '$.type'), count(*)
FROM "mylake"."my_trail_cloudtrail"
GROUP BY json_extract_scalar(useridentity, '$.type')
ORDER BY 2 DESC;
트레일에 활동 기록을 남긴 항목은 대부분 AWS 서비스입니다. 이러한 쿼리는 예제일 뿐이지만 내 AWS 계정에서 일어나는 활동을 빠르고 상세하게 파악할 수 있습니다.
비즈니스에서 이와 유사한 결과를 얻을 수 있다고 생각해 보십시오. 데이터베이스 및 로그 블루프린트를 사용하면 조직 내부의 여러 소스에서 데이터를 수집하고, 수집된 정보에 액세스할 수 있는 사용자의 열 수준에서 적절한 권한을 설정하고, 기계 학습 변환을 사용하여 데이터를 정리 및 준비하고, Amazon Athena, Amazon Redshift 및 Amazon QuickSight 같은 도구를 사용하여 정보를 연결하고 시각화하는 워크플로를 빠르게 생성할 수 있습니다.
데이터 액세스 사용자 지정
데이터 개인 정보 보호 지침 및 규정을 준수하려면 회사 내부의 여러 관계자가 사용자 지정된 보기에서 데이터 레이크에 저장된 미션 크리티컬 데이터를 볼 수 있어야 합니다 AWS 계정에 있는 IAM 사용자 2명의 가시성을 비교해 봅시다. 한 명에게는 테이블에 대한 전체 권한을 부여하고 다른 한 명에게는 동일한 테이블의 일부 열에 대한 select 액세스 권한만 부여합니다.
CloudTrail 데이터가 포함된 테이블에 대한 전체 액세스 권한이 있는 사용자는 이미 있습니다. 이 사용자의 이름은 danilop입니다. limitedview라는 이름의 새로운 IAM 사용자를 생성하고 이 사용자에게 Athena 콘솔에 대한 액세스 권한을 제공합니다. Lake Formation 콘솔에서 이 새로운 사용자에게 열 3개에 대한 select 권한만 부여합니다.
테이블의 데이터에 대한 서로 다른 액세스 권한을 확인하기 위해 한 번에 한 명의 사용자로 로그인하고 Athena 콘솔로 이동합니다. 왼쪽에서, 로그인한 사용자가 Glue 데이터 카탈로그에서 볼 수 있는 테이블과 열을 탐색할 수 있습니다. 다음은 2명의 사용자를 나란히 비교한 것입니다.
제한된 사용자는 명시적으로 구성된 3개 열과 테이블(데이터를 보려면 액세스 권한이 필요함) 분할에 사용된 4개 열에만 액세스할 수 있습니다. Athena 콘솔에서 select *
SQL 문을 사용하여 테이블을 쿼리할 때 limitedview 사용자로 로그인하면 이러한 7개 열만 볼 수 있습니다.
정식 출시
AWS Lake Formation은 추가 요금 없이 사용할 수 있으며 Amazon S3 및 AWS Glue 같은 기반 서비스의 사용 요금만 지불하면 됩니다. Lake Formation의 핵심 이점 중 하나는 이 서비스를 통해 도입되는 보안 정책입니다. 이전에는 개별 정책을 사용하여 데이터 및 메타데이터 액세스를 보호해야 했으며 이러한 정책에서는 테이블 수준 액세스만 허용되었습니다. 이제는 중앙 위치에서 각 사용자에게 사용해야 하는 열에 대한 액세스 권한만 부여할 수 있습니다.
이제 미국 동부(버지니아 북부), 미국 동부(오하이오), 미국 서부(오레곤), EU(아일랜드) 및 아시아 태평양(도쿄)에서 AWS Lake Formation을 사용할 수 있습니다. Redshift를 Lake Formation과 통합하려면 Redshift 클러스터 버전 1.0.8610 이상이 필요하며 이 글을 읽는 당시에 클러스터가 자동으로 업데이트된 상태여야 합니다. Apache Spark 및 Amazon EMR에 대한 지원은 몇 개월 후에 제공될 예정입니다.
지금까지 살펴본 내용은 Lake Formation으로 수행할 수 있는 몇 가지 작업에 불과합니다. 이제 비즈니스에 사용할 데이터 레이크를 훨씬 더 쉽게 구축하고 관리할 수 있습니다. 이 새로운 기능을 어떻게 사용하고 있는지 알려주십시오.