◇ 공부 기록용으로 작성하였으니 틀린점, 피드백 주시면 감사하겠습니다 ◇
AWS Lake Formation
안전한 Data Lake를 간단하고 신속하게 구축하여 분석에 사용할 수 있도록 하는 관리형 서비스이다.
👩🏫Data Lake란
데이터가 구조화되어 있는지 상관없이 다양한 데이터를 중앙에서 저장하고 관리하는 장소를 의미한다.
Data Lake를 구축하려면, 다양한 데이터 소스로부터 데이터를 수집하고, 표준화 및 카탈로그화하며, 적절한 접근 권한을 설정하는 등 고려해야 할 사항이 많다.
과거에는 이러한 고려 사항에 맞게 개별 서비스를(Amazon S3, AWS Glue, IAM 등) 수동으로 조합하여 Data Lake를 구현했지만, Lake Formation을 사용하면 이를 더 쉽게 관리할 수 있다.
Lake Formation의 실체: AWS Glue와 S3 등의 조합
블루프린트(뒤에서 설명)로 데이터를 가져오고 데이터 카탈로그를 만든다.
(카탈로그화 하는 작업은 AWS Glue의 크롤러, 작업, 데이터 카탈로그(※) 등의 구성 요소를 통해 이루어진다)
가져온 실제 데이터의 저장 위치는 S3 Bucket이며, 이는 사전에 생성하여 Lake Formation에 등록해 두어야 한다.
※ 데이터 카탈로그란, 가져온 실제 데이터의 메타데이터(속성 정보)의 집합으로, 데이터베이스와 테이블로 구성된다.
Lake Formation의 주요 기능
[Blueprint, 블루프린트]
데이터 가져오기용 템플릿이다.
1)데이터 가져오기 처리와 2)데이터 카탈로그 생성을 수행한다.
데이터 소스로서는 JDBC(Java Database Connectivity) 연결을 사용한 온프레미스 DB 또는 RDS DB, CloudTrail 로그 등에서 가져오기가 가능하다.
실제로는 Glue의 크롤러나 작업이 자동으로 생성된다.
[데이터 접근 권한 설정]
IAM의 권한 설정 외에도, Lake Formation 고유의 권한 관리 모델을 가지고 있어, 테이블 단위나 행, 열, 셀 단위와 같은 세밀한 접근 제어를 수행할 수 있다. 적절한 권한을 가진 사용자만 필요한 데이터에 접근할 수 있게 한다.
Lake Formation에서 접근 제어 방법으로는 2 가지가 있다.
- Named Resource Access Control: 데이터베이스명이나 테이블명을 지정하여 제어한다.
- TBCA: Tag-Based Access Control: 속성 정보(LF 태그)를 사용하여 제어한다. LF 태그는 사전에 생성하여 리소스에 할당해 두어야 한다.
LF 태그는 부여된 리소스의 하위 리소스에 자동으로 상속된다.
예를 들어, 데이터베이스에 부여하면 해당 데이터베이스 아래의 모든 테이블에 태그가 부여된다.
이러한 특징 덕분에 태그 기반 방법을 사용하면 관리해야 할 권한의 수를 줄일 수 있다.
또한, 제어 대상 리소스가 증가하더라도 리소스에 태그를 부여하는 것만으로 충분하기 때문에, 특히 관리하는 리소스가 많은 환경에서 유효한 방법으로 AWS에서도 공식적으로 권장되고 있다.
[데이터 레이크 공유]
Lake Formation에서 관리되는 데이터 레이크는 크로스 계정 공유 설정을 통해, 다른 AWS 계정과 간단하고 안전하게 공유할 수 있다. 개별 서비스별 설정을 할 필요는 없다.