검색

AWS Glue란?

1. AWS Glue란

- 완전 관리형 ETL (추출, 변환, 로드) 서비스

간단하고 경제적으로 데이터를 분류, 정리, 보강하고 다양한 데이터 스토어 및 데이터 스트림 간에 안정적으로 이동할 수 있다.


2. AWS Glue 특징

- 서버 없이 작동하기 때문에 설정 또는 관리할 인프라가 없는게 큰 특징

반정형 데이터와 함께 작동하도록 설계되었다. ETL 스크립트에서 동적 프레임을 사용할 수 있다.

- AWS Glue 및 Spark 변환을 모두 활용하여 원하는 유형의 분석을 수행 가능하다.

- AWS Glue를 사용하여 데이터 웨어 하우스 또는 데이터 레이크의 스토리지에 데이터를 구성, 정리, 검증 및 포맷할 수 있다.

- Amazon S3 데이터 레이크에 대해 서버를 사용하지 않는 쿼리를 실행할 때 AWS Glue를 사용할 수 있다. Amazon Simple Storage Service (Amazon S3) 데이터의 카탈로그를 작성하여 Amazon Athena와 Amazon Redshift Spectrum 으로 쿼리할 수 있다. 하나의 통합 인터페이스를 통해 데이터에 액세스하고 분석 가능하다.

- AWS Glue로 이벤트 중심 ETL 파이프라인을 생성할 수 있다.


3. AWS Glue 작동 방식

- 다른 AWS 서비스를 사용하여 ETL (추출, 변환 및 로드) 작업을 조정하여 데이터 웨어하우스 및 데이터 레이크를 빌드하고 출력 스트림을 생성한다.

- 워크로드를 실행하는 데 필요한 리소스를 프로비저닝하고 관리한다.

- AWS Glue는 데이터를 소스에서 대상으로 변환하는 데 필요한 코드를 생성한다.


AWS Glue는 다음과 같은 데이터 소스를 지원한다.

- 데이터 스토어

- Amazon S3

- Amazon Relational Database Service (Amazon RDS

- 타사 JDBC에서 액세스할 수 있는 데이터베이스

- Amazon DynamoDB

- MongoDB 와 Amazon DocumentDB (MongoDB 와 호환)

- 데이터 스트림

- Amazon Kinesis Data Streams

- Apache Kafka


AWS Glue는 다음과 같은 데이터 대상을 지원한다.

- Amazon S3

- Amazon Relational Database Service (Amazon RDS

- 타사 JDBC에서 액세스할 수 있는 데이터베이스

- MongoDB 와 Amazon DocumentDB (MongoDB 와 호환)

AWS Glue는 Apache Spark 서버를 사용하지 않는 환경에서 ETL 작업을 실행하고 AWS Glue는 이런 작업을 가상 리소스에서 실행하여 자체 서비스 계정을 프로비저닝하고 관리한다.

4. AWS Glue 개념

다음 다이어그램은 AWS Glue 환경의 아키텍처를 나타낸다.



  • 데이터 스토어 소스의 경우 크롤러를 선택하여 AWS Glue 데이터 카탈로그에 메타데이터 테이블 정의를 한다. 데이터 스토어에서 크롤러를 포인트하면 크롤러는 데이터 카탈로그에 테이블 정의를 생성한다. 스트리밍 소스의 경우 데이터 카탈로그 테이블을 수동으로 정의하고 데이터 스트림 속성을 지정한다.

  • AWS Glue 데이터 카탈로그에는 테이블 정의뿐 아니라 ETL 작업을 정의하는 데 필요한 기타 메타데이터가 있다. 작업을 정의하여 데이터를 변환할 경우 이 메타데이터를 사용한다.

  • AWS Glue는 스크립트를 생성하여 데이터를 변환할 수 있다. 또는 AWS Glue 콘솔 또는 API에서 스크립트를 제공할 수 있다.

  • 필요시 작업하거나 지정된 trigger가 발생하면 작업을 설정하여 시작할 수 있다.

  • 작업이 진행되면 스크립트는 데이터 원본에서 데이터를 추출하고 데이터를 변환한 다음 데이터 대상으로 로드한다. 스크립트는 AWS Glue e의 Apache Spark 환경에서 실행된다.

5. AWS Glue 용어

  • AWS Glue 데이터 카탈로그

AWS Glue의 영구적 메타데이터 스토어. AWS Glue 환경을 관리하기 위한 테이블 정의, 작업 정의 및 기타 제어 정보가 포함되어 있다.

  • Classifier

데이터의 스키마를 결정한다. AWS Glue 는 CSV, JSON, AVRO, XML 등과 같은 일반 파일 형식에 대한 분류자, JDBC 연결을 사용한 일반 관계형 데이터베이스 관리 시스템을 위한 분류자를 제공하고 a grok 패턴을 사용하거나 XML 문서에 행 태그를 지정하여 자체 분류자도 작성할 수 있다.

  • Connection

특정 데이터 스토어에 연결하는 데 필요한 특성을 포함하는 데이터 카탈로그 객체이다.

  • Crawler

데이터 스토어 (소스 또는 대상) 에 연결하여 분류자의 우선 순위 지정 목록을 통해 데이터의 스키마를 결정한 다음 AWS Glue 데이터 카탈로그에 메타데이터 테이블을 생성하는 프로그램이다.

  • Database

논리 그룹으로 구성된 일련의 연결된 데이터 카탈로그 테이블 정의이다.

  • 데이터 스토어, 데이터 원본, 데이터 대상

데이터 스토어는 데이터를 영구적으로 저장하기 위한 리포지토리이다. 예를 들면 Amazon S3 버킷과 관계형 데이터베이스가 있다. 데이터 원본은 프로세스 또는 변환의 입력값으로 사용되는 데이터 스토어이다. 데이터 대상은 프로세스 또는 변환에서 쓰기를 수행하는 대상 데이터 스토어이다.

  • 개발 엔드포인트

AWS Glue ETL 스크립트를 개발하고 테스트하는 데 사용할 수 있는 환경.

  • 동적 프레임

구조 및 배열과 같은 중첩 데이터를 지원하는 분산 테이블. 동적 프레임은 데이터 정리 및 ETL에 필요한 고급 변환 세트를 지원한다.

  • Job

작업은 ETL 작업을 수행하는 데 필요한 비즈니스 로직이다. 변환 스크립트, 데이터 원본 및 데이터 대상으로 구성되며 트리거에 의해 시작된다.

  • 노트북 서버

PySpark 설명문을 실행하기 위해 사용되는 웹 기반 환경

  • Script

소스에서 데이터를 추출하고 데이터를 변환한 다음 대상으로 로드하는 코드. AWS Glue는 PySpark 또는 스칼라 스크립트를 생성한다.

  • Table

데이터를 나타내는 메타데이터 정의. 테이블은 데이터의 스키마를 정의한다. AWS Glue 데이터 카탈로그의 테이블은 열 이름, 데이터 유형 정의, 파티션 정보 및 베이스 데이터 세트에 대한 기타 메타데이터로 구성된다. 데이터의 스키마는 AWS Glue 테이블 정의에 나타난다.

  • Transform

다른 포맷으로 데이터를 바꾸는 코드 로직.

  • Trigger

ETL 작업 시작. 트리거는 정해진 시간 혹은 이벤트 기반으로 정의할 수 있다.

6. AWS Glue 구성요소

AWS Glue 는 콘솔 및 API 작업을 제공하여 워크로드를 추출, 변환 및 로드 (ETL) 하는 것을 설정하고 관리한다.

데이터 카탈로그를 사용하여 데이터 원본, 변환 및 대상에 대한 메타데이터를 저장할 수 있다.

1) AWS Glue 콘솔

ETL 워크플로우를 정의하고 관리 할 수 있다. 이 콘솔은 AWS Glue 데이터 카탈로그 및 AWS Glue 작업 시스템에서 몇 가지 API 작업을 호출하여 다음 작업을 실행한다.

  • 작업, 테이블, 크롤러 및 연결과 같은 AWS Glue 객체를 정의한다.

  • 크롤러를 실행하는 일정

  • 작업 트리거를 위한 이벤트 또는 일정을 정의힌다.

  • AWS Glue 객체 목록을 검색하고 필터링 한다.

  • 변환 스크립트를 편집한다.

2) AWS Glue 데이터카탈로그


- 영구적 메타데이터 스토어. Apache Hive 메타스토어와 같이 동일한 방법으로 AWS Cloud에서 메타데이터를 저장, 참조 및 공유할 수 있다.

- AWS Identity and Access Management (IAM) 정책을 사용하여 AWS Glue 데이터 카탈로그에서 관리하는 데이터 원본에 대한 액세스를 제어할 수 있다.

- 스키마 변경 추적 및 데이터 액세스 제어를 포함하여 포괄적인 감사 및 거버넌스 기능을 제공한다. 데이터 스키마에 대한 변경 사항을 감시함으로써 데이터가 부적절하게 수정되거나 실수로 공유되지 않도록 보장할 수 있다.


3) AWS Glue 크롤러

AWS Glue 데이터 카탈로그에 테이블을 생성하는 기본적인 방법이다. 크롤러는 단일 실행으로 여러 데이터 스토어를 크롤할 수 있다. 완료 시 데이터 카탈로그의 테이블을 하나 이상 생성하거나 업데이트한다. AWS Glue에서 정의한 ETL 작업은 이러한 데이터 카탈로그 테이블을 원본 및 대상으로 사용하여 읽기와 쓰기를 수행한다.

4) AWS Glue ETL 운영

AWS Glue 확장자를 사용하여 Scala 또는 PySpark (Apache Spark용 Python API) 스크립트를 자동으로 생성할 수 있다. 예를 들어, 원 데이터를 추출, 정리 및 변환한 다음 결과가 쿼리되고 분석될 수 있는 다른 리포지토리에 결과를 저장할 수 있다. 이러한 스크립트는 CSV 파일을 관계형 형식으로 변환한 뒤 Amazon Redshift 에 저장할 수 있다.

5) AWS Glue 스트리밍

ETL은 Apache Spark Structured Streaming 엔진을 기반으로 하며 Amazon Kinesis 데이터 스트림, Apache Kafka 및 Amazon MSK (Amazon MSK) 에서 스트림을 수집할 수 있다. 스트리밍 데이터를 정리하고 변환하여 Amazon S3 또는 JDBC 데이터 스토어에 로드할 수 있다. AWS Glue에서 스트리밍 ETL을 사용하여 IoT 스트림, 클릭스트림 및 네트워크 로그와 같은 이벤트 데이터를 처리한다.

조회 3회

최근 게시물

전체 보기