AWS에서 데이터 카탈로그화

발행: (2025년 12월 3일 오후 10:44 GMT+9)
11 min read
원문: Dev.to

Source: Dev.to

소개

현대 데이터 엔지니어링에서 가장 간과되기 쉬우면서도 강력한 기능 중 하나가 데이터 카탈로그화입니다. 어떤 데이터가 존재하고, 어디에 저장되어 있으며, 스키마가 무엇이고, 시간이 지남에 따라 어떻게 변하는지에 대한 명확한 이해 없이는 ETL 아키텍처가 확장될 수 없습니다. 이 가이드는 AWS Glue Crawlers를 사용해 데이터를 카탈로그화하는 방법과 Amazon S3에 저장된 원시 및 정제 데이터셋을 다룰 때 메타데이터 레이어를 구조화하는 방법을 설명합니다.

튜토리얼은 S3 원시 버킷에 있는 간단한 CSV 파일을 사용하며, AWS Glue가 자동으로 파일 구조를 발견하고 검색 가능하고 쿼리 준비가 된 데이터 카탈로그를 구축하는 과정을 보여줍니다. 모든 단계는 AWS 콘솔을 통해 복제할 수 있습니다.

데이터 카탈로그화란?

데이터 카탈로그화는 모든 데이터 자산에 대한 구조화된 인벤토리를 만드는 과정입니다.

좋은 데이터 카탈로그에는 다음이 포함됩니다:

  • 데이터셋 이름
  • 스키마 (컬럼, 데이터 타입, 파티션)
  • 위치 (예: S3 경로)
  • 메타데이터 (크기, 소유자, 최종 업데이트)
  • 태그, 분류, 라인리지

데이터 생태계의 “목차”라고 생각하면 됩니다—도서관 카탈로그가 독자들이 책을 빠르게 찾을 수 있게 해 주는 것과 유사합니다.

왜 중요한가

  • 팀 간 데이터 발견성을 높임
  • 수동 문서 작성을 감소시킴
  • 파이프라인 전반에 걸친 스키마 일관성을 보장
  • 데이터 검증 및 품질 검사를 가능하게 함
  • 셀프‑서비스 분석을 촉진
  • 거버넌스 및 컴플라이언스를 지원

ETL 파이프라인에서의 데이터 카탈로그화

ETL 파이프라인은 메타데이터에 크게 의존합니다. 어떤 데이터셋을 변환하기 전에 파이프라인은 다음을 이해해야 합니다:

  • 어떤 컬럼이 존재하는지
  • 적용해야 할 데이터 타입은 무엇인지
  • 어떤 파티션을 사용할지
  • 스키마 진화가 어떻게 이루어졌는지
  • 원시 → 정제 → 큐레이션 레이어를 어떻게 매핑할지

강력한 데이터 카탈로그는 다음을 보장합니다:

  • ETL 작업이 안정적으로 실행됨
  • Glue/Spark 스크립트가 스키마 드리프트 때문에 중단되지 않음
  • 하위 BI 도구(Athena, QuickSight, Superset, Power BI)가 데이터를 즉시 읽을 수 있음
  • 데이터 라인리지와 문서가 최신 상태로 유지됨

AWS Glue Data Catalog는 구조화 및 반구조화 데이터 전체에 대한 중앙 메타데이터 저장소 역할을 합니다.

아키텍처 개요

아래는 워크플로우의 고수준 다이어그램입니다:

Architecture diagram

프로젝트 진행 과정에서는 Glue Crawlers가 다음을 수행하는 방식을 보여줍니다:

  • S3 버킷을 스캔
  • 스키마(헤더, 타입, 포맷) 감지
  • 메타데이터 생성
  • 메타데이터를 Data Catalog의 테이블로 저장

이렇게 생성된 메타데이터는 Amazon Athena를 통해 쿼리할 수 있고, Glue ETL 작업에 활용되며, 분석 도구에서도 사용할 수 있습니다.

Amazon S3, AWS Glue Crawler, 그리고 Glue Data Catalog 이해하기

Amazon S3 (Simple Storage Service)

Amazon S3는 완전 관리형 객체 스토리지 서비스로, CSV 파일, 로그, JSON, Parquet, 이미지 등 모든 유형의 데이터를 대규모로 저장할 수 있습니다. 높은 내구성, 비용 효율성, 그리고 AWS 분석 서비스와의 원활한 통합이 특징입니다. 대부분의 현대 데이터 엔지니어링 아키텍처(예: Medallion 아키텍처)에서 S3는 landing, raw, processed 레이어 역할을 합니다.

AWS Glue Crawler

AWS Glue Crawler는 Amazon S3(및 기타 소스)에 저장된 데이터를 스캔하여 메타데이터를 자동으로 발견하는 도구입니다. 크롤러가 실행될 때 수행되는 작업:

  1. 파일 구조와 내용을 읽음
  2. 데이터 포맷(CSV, JSON, Parquet 등) 감지
  3. 컬럼 이름과 데이터 타입 추론
  4. 파티션 식별
  5. 내장 혹은 사용자 정의 분류기를 사용해 데이터셋 분류

그 후 크롤러는 수동 스키마 정의 없이 자동으로 테이블 메타데이터를 생성하거나 업데이트합니다.

AWS Glue Data Catalog

Glue Data Catalog는 AWS 내 모든 데이터셋에 대한 중앙 메타데이터 저장소입니다. 저장되는 내용:

  • 테이블 정의
  • 스키마 정보
  • 파티션 상세
  • 분석 서비스에서 사용하는 추가 메타데이터

Glue Crawler가 S3 버킷을 스캔하면, 발견된 스키마와 테이블 정보를 Glue Data Catalog에 기록합니다. 이 메타데이터는 Athena, EMR, Redshift Spectrum, AWS Glue ETL 작업 등에서 쿼리할 수 있습니다.

워크플로 요약:
S3 → Glue Crawler가 파일 스캔 → 스키마 추론 → 메타데이터가 Glue Data Catalog에 저장 → 데이터가 쿼리 가능해짐.

단계별 워크플로

1. CSV 파일을 Amazon S3에 업로드

S3 버킷을 생성합니다(버킷 이름은 본인 환경에 맞게 교체):

aws s3api create-bucket --bucket medallion-orders-2025-12-17 --region us-east-1

샘플 CSV 파일을 업로드합니다:

aws s3 cp orders.csv s3://medallion-orders-2025-12-17/

원시 레이어를 나타내기 위해 폴더(프리픽스) 안에 파일을 넣을 수도 있습니다:

aws s3 cp orders.csv s3://medallion-orders-2025-12-17/raw/orders.csv

업로드 스크린샷

2. Glue 데이터베이스 생성

  1. Glue 콘솔에서 Data Catalog → Databases 로 이동합니다.
  2. Add database 를 클릭합니다.
  3. 데이터베이스 이름을 orders_db 로 지정하고 Create database 를 클릭합니다.

데이터베이스 생성 스크린샷

3. AWS Glue Crawler 생성

  1. Glue → Crawlers 로 이동한 뒤 Create crawler 를 클릭합니다.
  2. 이름을 입력합니다(예: orders_crawler) 그리고 Next 를 클릭합니다.
  3. Add a data source 를 클릭하고 S3 를 선택한 뒤 CSV 파일이 있는 버킷/프리픽스를 지정합니다.
  4. 앞서 만든 데이터베이스 orders_db 를 선택합니다.
  5. 스케줄을 설정(또는 필요 시 수동 실행)하고 마법사를 완료합니다.

크롤러 생성 스크린샷

4. 크롤러 실행 및 테이블 확인

크롤러를 만든 뒤 선택하고 Run crawler 를 클릭합니다. 실행이 완료되면 orders_db 데이터베이스의 Data Catalog → Tables 로 이동합니다. orders 와 같은 새 테이블이 생성되어 추론된 컬럼, 데이터 타입, 파티션 정보가 표시됩니다.

5. Athena로 카탈로그된 데이터 쿼리

  1. Athena 콘솔을 엽니다.
  2. 쿼리 결과 위치를 S3 버킷(예: s3://my-athena-results/)에 지정합니다.
  3. 간단한 쿼리를 실행합니다:
SELECT * FROM orders_db.orders LIMIT 10;

크롤러가 정상적으로 작동했다면 Athena가 orders.csv의 행들을 반환합니다.

다음 단계

  • 파티션 추가(예: 날짜별)하고 크롤러를 재실행해 카탈로그를 최신 상태로 유지합니다.
  • Glue ETL 작업과 통합해 원시 데이터를 정제/큐레이션 테이블로 변환합니다.
  • Lake Formation 또는 IAM 정책을 설정해 세밀한 접근 제어를 구현합니다.
  • 스키마 버전 관리를 활성화해 시간에 따른 스키마 변화를 추적합니다.

신뢰할 수 있는 데이터 카탈로그를 초기에 구축함으로써 AWS 상에서 확장 가능하고 유지 보수하기 쉬우며 거버넌스가 적용된 데이터 파이프라인의 기반을 마련할 수 있습니다.

Back to Blog

관련 글

더 보기 »