AWS Glue란?
(AWS Managed) Serverless의 ETL(Extract, Transform, Load) 서비스이다.

AWS Glue 특징 정리

🔢 ETL(Extract, Transform, Load) 서비스
특히 대량의 데이터를 사용하는 빅데이터, 기계 학습(ML)등에 적합한 ETL 서비스이다.
☁️ Serverless 서비스
서버리스 서비스이기 때문에 운영 부담이 줄어들고, 데이터를 쉽고 빠르게 전처리할 수 있다.
개발자는 인프라 설정과 관리 부담에서 벗어나 데이터 처리에 집중할 수 있다.
🔗 다른 서비스와 연동
기본적으로 Glue을 통해 데이터를 데이터 레이크(예: S3)나 데이터 웨어하우스(예: Redshift)로 이동시킨다.
또한 AWS Glue는 S3, RDS, Redshift, JDBC 등 다양한 AWS 서비스 또는 외부 데이터베이스와 연동할 수 있다.
📅 ETL 스케줄링 기능 제공
Trigger를 통해 특정 시간 기반(scheduled), 조건 기반(conditional), 이벤트 기반(on-demand)으로 ETL을 자동 실행할 수 있다
(CRON 표현식 등으로 예약 가능)
⌨️ ETL 코드 자동 생성 지원
특히 Glue Studio의 시각적 편집기(Visual Editor)를 통해 사용자가 설정만 하면 Python/Scala ETL 스크립트를 자동 생성해 줌.

Glue 핵심 요소
- Data Source
- Crawler
- Data Catalog
- Job
- Trigger
- Data Target
🟩 Glue workflow (Glue의 일반적인 워크플로우)
Glue 작동 흐름 예시
데이터 소스 (예: S3, RDS, Redshift, DynamoDB, Kinesis 등)
↓
Glue Crawler
↓
Glue Data Catalog
↓
Glue ETL Engine (Jobs / Spark)
↓
데이터 타겟 (예: S3, Redshift, RDS, OpenSearch 등)
1. Data Catalog에 데이터 소스와 타겟 정의
Data Catalog애 데이터를 가져올 곳(예: S3, RDS)과 저장할 곳(예: Redshift)을 등록
2. Crawler로 메타데이터 수집
소스 데이터를 스캔해 테이블 구조(스키마) 정보를 Data Catalog에 저장
3. ETL Job 작성
변환 로직(Python/Scala 스크립트) 작성
(예시: CSV → Parquet 변환 후 Redshift에 저장)
4. Job 실행
필요할 때 수동(On-Demand) 실행하거나 Trigger를 이용해 자동 실행
5. 모니터링
Glue 콘솔의 대시보드로 Job 실행 상태와 성능 모니터링

0. Data Source (데이터 소스)
AWS Glue를 사용해서 ETL을 하기 위해, 데이터를 가져오는 장소 (Glue ETL / Crawler 입장에서 가져올 수 있는 곳)
데이터 소스 예시:
- Amazon S3
- Amazon DynamoDB
- Amazon Redshift
- Amazon RDS / Aurora / 외부 관계형 DB (JDBC 연결 통해 MySQL, PostgreSQL, Oracle 등)
- DocumentDB / MongoDB 호환 DB
- 온프레미스 DB (JDBC 연결 또는 네트워크 연결 설정 필요)
- 스트림 데이터 (Kinesis, Kafka, MSK 등) — ETL Job에서 처리 가능하나, Crawler로 직접 스캔은 제한됨

1. Crawler (크롤러)
Crawler 사전적 의미:
기어가는 것, 기어 다니는 것
IT 분야에서:
web crawler = ‘웹에서 정보를 자동 수집하는 프로그램’
Glue Crawler는 데이터 소스를 돌아다니며 훑어보고, 자동으로 메타데이터(metadata)를 수집해주기 때문에 Crawler라는 이름을 사용하는 것같다. (뇌피셜)

Crawler (크롤러) 역할 : 데이터 카탈로그(Data Catalog) 작성하기
Crawler는 데이터 소스에서 데이터를 추출하고 데이터 카탈로그(Data Catalog)에 테이블 형태로 저장/작성한다.
테이블에는 메타데이터(metadata)의 정보를 포함하고 있으며, Schema와 Property라는 것을 갖게 된다.

📒 예시
S3에 이런 파일이 있을 경우: s3://my-bucket/sales/2025/09/sales-01.csv
파일 내용:
date,product,price,qty
2025-09-01,Book,12.5,3
2025-09-01,Pen,1.5,10
📌 Crawler가 Data Catalog에 만든 테이블 형식
스키마 (Schema)
| 컬럼 이름 | 데이터 타입 |
| date | string |
| product | string |
| price | double |
| qty | int |
property
- 데이터 위치: s3://my-bucket/sales/
- 파일 형식: CSV
- 파티션 정보: year=2025, month=09

(Crawler 설정 예시)

2. Data Catalog (데이터 카탈로그)
Data Catalog 역할 : 데이터의 메타데이터(metadata) 저장
(데이터를 직접 저장하지 않음 ❌)
(데이터에 대한 설명서만 저장 ✅)

Data Catalog는 추출된 데이터의 메타데이터(데이터의 속성 정보)를 저장하는 저장소이자 중앙에서 관리한다.
- Data Catalog에 데이터를 직접 저장하지 않음 ❌
- Data Catalog에 데이터에 대한 정보(metadata)만 저장 ✅
- 실제 데이터는 원래의 데이터 소스(예: S3, RDS, DynamoDB 등)에 그대로 남아 있음
- 데이터 소스에서 어떤 데이터를 어떤 방법으로 추출할지에 대한 ETL 처리에 관한 설정 정보도 저장한다.

📌 Data Catalog에 저장하는 내용 (메타데이터)
- 데이터 파일의 위치 (예: s3://my-bucket/sales/)
- 스키마 (컬럼명, 데이터 타입, 구조)
- 파일 포맷 (CSV, JSON, Parquet 등)
- 테이블 정의 (테이블 이름, 파티션 정보 등)
- ETL 처리에 필요한 설정 정보
[구조 예시]
Data Catalog
└── Database: mydb
├── Table: sales
│ ├── Columns: order_id, customer_id, order_date, amount
│ ├── Location: s3://my-bucket/sales/
│ └── Format: CSV
│
└── Table: customers
├── Columns: customer_id, name, email, join_date
├── Location: s3://my-bucket/customers/
└── Format: Parquet
참고:
Data Catalog는 Amazon EMR이나 Amazon Athena와 같은 분석 및 쿼리 실행 서비스에서도 참조할 수 있다.
Glue의 크롤러로 추출한 데이터에 대해 Athena에서 SQL 쿼리를 실행하는 등 활용이 가능하다.
※Amazon EMR: 빅데이터의 처리 및 분석을 수행하는 서비스.
※Amazon Athena: S3 내의 데이터에 대해 직접 SQL 쿼리를 실행할 수 있는 서비스.

3. Glue Job (잡)
Glue Job = ETL 수행
Glue에서 데이터를 읽고(Extract), 변환(Transform)하며, 다시 저장(Load)하는 ETL 작업 단위
Data Source → Glue Job → Data Target
📌 Glue Job 역할
- 데이터 소스(예:S3, RDS, DynamoDB 등)에서 데이터를 읽고
- 필요한 변환(Transform)을 수행한 뒤
- 데이터 대상(예: S3, Redshift, RDS 등)에 저장
📌Job 구성 요소
- 스크립트: PySpark, Python, Scala 등으로 작성
- 필수 설정: IAM Role, 사할 데이터의 위치, Job이 실행되는 리소 환경(DPU(Data Processing Unit)/Worker) 등

📌 Data Catalog와 연동
Glue Crawler로 만든 Data Catalog의 테이블을 읽어서 ETL 처리가 가능하다.
Crawler → Data Catalog → Job
4. Data Target
AWS Glue가 데이터를 추출하고 가공(ETL)한 후 결과 데이터를 저장하는 장소.
예시 (Data Stores):
- S3 → 파일 형태로 저장
- RDS → 관계형 DB(MySQL, PostgreSQL 등)
- Redshift → 데이터 웨어하우스
- DynamoDB → NoSQL DB
- 온프레미스 데이터베이스 → 회사 내부 DB
AWS Glue Studio
ETL 작업을 시각적으로 설계하고 실행 및 모니터링할 수 있는 사용자 인터페이스=GUI(User Interface) 제공
AWS Glue Studio 특징:
- 드래그 앤 드롭 방식으로 ETL 흐름 구성 가능
- Job 실행 상태와 로그를 GUI에서 확인 가능
- 코드를 몰라도 ETL 설계 가능

AWS Glue Bookmark
Glue의 "북마크(bookmark)"
ETL 작업 중 중복 데이터(이미 ETL 작업 돌린 데이터) 처리를 방지하고 데이터 처리 지속성을 유지하는 기능
- 이전에 처리한 데이터를 추적(기록)
- 다음 ETL 실행 시 새로운 데이터만 처리하도록 지원
- 이미 처리한 데이터는 건너뛰고 새로 들어온 데이터만 ETL → 효율적 처리
이미 ETL 작업했는데 또 ETL 작업하면 아주 비효율적이기 때문에, 이러한 문제가 없도록 새로운 데이터만 ETL 작업하도록 해주는 기능이다.
'클라우드(AWS)' 카테고리의 다른 글
| AWS와 Terraform(테라폼) 연결하는 법 (0) | 2025.10.05 |
|---|---|
| [AWS] Continued Pre-training란? 쉽게 정리 (0) | 2025.05.16 |
| [AWS] Augmented AI (Amazon A2I)란? 쉽게 정리 (Human-Centered AI, RLHF) (0) | 2025.05.15 |
| [AWS] AI Service Cards와 SageMaker Model Cards란? 쉽게 정리 (responsible AI) (0) | 2025.05.15 |
| [AWS] Feature Engineering란? 쉽게 정리 (0) | 2025.05.15 |