[AWS] AWS S3 버킷이 데이터 레이크인지 데이터 웨어하우스인지 확인하는 방법

2025. 4. 10. 23:20·개발 (Development)/AWS

AWS S3는 유연한 저장소이기 때문에, 같은 S3 버킷이라도 어떤 방식으로 데이터를 저장하고 활용하느냐에 따라 데이터 레이크로도, 데이터 웨어하우스의 일부로도 사용될 수 있습니다. 실무에서는 두 개념을 혼용하거나 병행해서 사용하는 경우도 많기 때문에, 이 글에서는 두 개념의 차이를 먼저 정리하고, 실제로 어떤 방식으로 확인할 수 있는지를 중심으로 정리해보았습니다.

데이터 레이크 vs 데이터 웨어하우스

항목 데이터 레이크 데이터 웨어하우스
저장 형식 정형 + 반정형 + 비정형 (CSV, JSON, 이미지 등) 정형 (주로 Parquet, ORC, CSV)
스키마 처리 schema-on-read (나중에 스키마 적용) schema-on-write (저장 전 스키마 적용)
데이터 형태 원시(raw) 데이터 정제된 데이터
주요 도구 AWS Glue, Athena, EMR, S3 Redshift, Snowflake, BigQuery 등
용도 데이터 저장, 탐색, 분석 전처리 BI, 리포트, 복잡한 쿼리 분석

데이터 레이크인지 확인하는 방법

S3 버킷이 데이터 레이크로 사용되고 있는 경우 다음과 같은 특징을 확인할 수 있습니다.

  • 다양한 포맷의 데이터가 섞여 있음: CSV, JSON, 로그 파일, 이미지 등
  • 폴더 구조가 'raw', 'processed', 'curated' 등으로 구성되어 있음
  • AWS Glue 크롤러가 연결되어 있고, 메타데이터가 자동으로 생성됨
  • Athena를 통해 직접 쿼리가 가능 (schema-on-read 방식)
  • EMR, Glue, Lambda 등을 통한 데이터 처리 파이프라인 존재

예를 들어, /my-bucket/data-lake/raw/logs/ 아래에 JSON 로그 파일들이 존재하고, Glue Crawler가 주기적으로 이 경로를 스캔해 테이블을 자동 생성한다면, 이는 데이터 레이크의 전형적인 모습입니다.

데이터 웨어하우스인지 확인하는 방법

S3가 Redshift나 Snowflake 같은 데이터 웨어하우스의 외부 테이블 소스로 활용되고 있다면, 다음과 같은 특징이 보입니다.

  • 데이터가 구조화되어 있고, 테이블처럼 명확히 정리되어 있음
  • 포맷이 Parquet 또는 ORC 등 쿼리 최적화에 적합한 형식
  • ETL 또는 ELT 과정을 통해 정제되어 저장됨
  • Redshift Spectrum 또는 Snowflake External Table로 연결됨
  • 스키마가 사전에 정의되어 있음 (schema-on-write)

예를 들어, /my-bucket/data-warehouse/sales/year=2024/month=03/ 이런 식의 파티셔닝 구조로 Parquet 파일이 저장되어 있고, 이를 Redshift에서 CREATE EXTERNAL TABLE로 참조하고 있다면, 해당 데이터는 웨어하우스 용도로 쓰이고 있다고 볼 수 있습니다.

실제 확인 방법 요약

  • S3 콘솔 또는 CLI로 구조와 포맷 확인
  • Glue Data Catalog 및 크롤러 확인
  • Athena에서 쿼리 가능 여부 확인
  • Redshift나 Snowflake 등과 연결된 외부 테이블 확인
  • ETL/ELT 파이프라인 유무 확인 (Glue Job, Lambda, Airflow 등)

데이터 구조, 목적, 연동된 서비스 등을 종합적으로 살펴보면, 해당 S3 버킷이 데이터 레이크용인지 웨어하우스 용도인지 쉽게 파악할 수 있습니다.

반응형

'개발 (Development) > AWS' 카테고리의 다른 글

[AWS] AWS 환경에서 모델 학습 API 호출 시 Broken pipe 에러 해결 과정  (0) 2025.06.28
[AWS] S3 객체 권한 변경 - PutObjectAcl  (0) 2025.04.12
[AWS] AWS ECR에 MFA로 Docker 로그인 자동화하기 (.bat 파일)  (0) 2025.04.12
'개발 (Development)/AWS' 카테고리의 다른 글
  • [AWS] AWS 환경에서 모델 학습 API 호출 시 Broken pipe 에러 해결 과정
  • [AWS] S3 객체 권한 변경 - PutObjectAcl
  • [AWS] AWS ECR에 MFA로 Docker 로그인 자동화하기 (.bat 파일)
LoopThinker
LoopThinker
모르는 것을 알아가고, 아는 것을 더 깊게 파고드는 공간
  • LoopThinker
    CodeMemoir
    LoopThinker
  • 전체
    오늘
    어제
    • 분류 전체보기 (216)
      • 개발 (Development) (151)
        • Algorithm (1)
        • Angular (1)
        • AWS (4)
        • DeepSeek (2)
        • Docker (7)
        • Git (3)
        • Java (30)
        • JavaScript (4)
        • Kafka (5)
        • Kubernetes (4)
        • Linux (6)
        • PostgreSQL (37)
        • Python (26)
        • React (3)
        • TypeScript (3)
        • Vue.js (5)
        • General (10)
      • 데이터 분석 (Data Analysis) (1)
      • 알고리즘 문제 풀이 (Problem Solving.. (27)
      • 자격증 (Certifications) (24)
        • ADsP (14)
        • 정보처리기사 (4)
        • Linux Master (5)
        • SQLD (1)
      • 기술 동향 (Tech Trends) (10)
      • 기타 (Others) (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    ADsP
    백준
    백준자바
    데이터분석
    typescript
    javascript
    docker
    AWS
    Vue.js
    PostgreSQL
    deepseek
    백준온라인저지
    Kafka
    Linux master
    백준알고리즘
    python
    timescaledb
    Linux
    DevOps
    JPA
    리눅스 마스터 2급 2차
    MyBatis
    JSON
    java
    Kubernetes
    springboot
    pandas
    오답노트
    리눅스 마스터 2급
    자바
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
LoopThinker
[AWS] AWS S3 버킷이 데이터 레이크인지 데이터 웨어하우스인지 확인하는 방법
상단으로

티스토리툴바