본문 바로가기
CSP (Cloud Service Provider)/AWS

[AWS] AWS Glue

by BTC_류지연 2023. 6. 9.

베하 ~!

이번 시간도 수 지 타 산 입니다.

더워지는 날씨와 함께 더위와 냉방병 조심하셔야 겠어요 ~~

 

 

AWS Glue 서비스에 대해 다뤄 볼텐데

개요부터 기능과 FAQ까지 함께 해보아요.

팔로팔로팔로미 ~~~~~~~~

 


 

AWS Glue란?

AWS Glue는 분석, 기계 학습(ML) 및 애플리케이션 개발을 위해 여러 소스에서 데이터를 쉽게 탐색, 준비, 이동 및 통합할 수 있도록 하는 확장 가능한 서버리스 데이터 통합 서비스입니다.

 

AWS Glue를 사용해야 하는 이유는 무엇인가요?

분석 또는 ML 프로젝트의 첫 번째 단계는 품질 좋은 결과가 나오도록 데이터를 준비하는 것입니다. AWS Glue는 더 저렴한 비용으로 더 간편하고 빠르게 데이터를 준비할 수 있는 서버리스 데이터 통합 서비스입니다. 70개 이상의 다양한 데이터 소스를 찾아서 연결하고, 중앙 집중식 데이터 카탈로그에서 데이터를 관리하며 데이터를 데이터 레이크에 로드하는 ETL 파이프라인을 시각적으로 생성, 실행 및 모니터링할 수 있습니다.

작동 방식

데이터 통합 엔진 옵션

 

AWS Glue 데이터 카탈로그

 

데이터 품질 관리 및 모니터링

 

사용 사례

ETL 파이프라인 개발 간소화

자동 프로비저닝 및 작업자 관리를 통해 인프라 관리 필요성을 제거하고 모든 데이터 통합 요구 사항을 단일 서비스로 통합합니다.

 

효율적인 데이터 검색

여러 AWS 데이터 세트에서 데이터를 빠르게 식별한 다음 쿼리 및 변환에 즉시 사용할 수 있습니다.

 

대화식으로 데이터 탐색, 실험 및 처리

데이터 엔지니어는 AWS Glue 대화형 세션을 사용하여 원하는 통합 개발 환경(IDE) 또는 노트북을 통해 대화형으로 데이터를 탐색하고 준비할 수 있습니다.

 

다양한 처리 프레임워크 및 워크로드 지원

ETL, ELT 등 다양한 데이터 처리 프레임워크와, 배치, 마이크로 배치, 스트리밍 등 다양한 워크로드를 보다 쉽게 지원합니다.

 

기능

검색

모든 AWS 데이터 세트에서 검색

AWS Glue 데이터 카탈로그는 데이터의 위치와 관계없이 모든 데이터 자산을 위한 영구 메타데이터 스토어입니다. 

데이터 카탈로그에는 AWS Glue 환경을 관리하는 데 도움이 되는 테이블 정의, 작업 정의, 스키마 및 기타 제어 정보가 담겨 있습니다. 데이터 카탈로그는 데이터에 대한 쿼리를 효율적이고 비용 효과적으로 수행할 수 있도록 자동으로 통계를 계산하고 파티션을 등록합니다. 또한, 종합적인 스키마 버전 내역을 유지 관리하므로 시간이 지나면서 데이터가 어떻게 변경되었는지 파악할 수 있습니다.


자동 스키마 검색

AWS Glue 크롤러는 소스 또는 대상 데이터 스토어에 연결하고, 우선순위가 지정된 분류기 목록을 거치면서 데이터의 스키마를 결정한 후, AWS Glue 데이터 카탈로그에 메타데이터를 생성합니다. 

메타데이터는 데이터 카탈로그의 테이블에 저장되고 ETL 작업의 승인 프로세스에 사용됩니다. 크롤러를 일정에 따라 또는 온디맨드로 실행하거나 이벤트를 기반으로 트리거하여 메타데이터를 최신 상태로 유지할 수 있습니다.

 

데이터 스트림 스키마 관리 및 적용

AWS Glue의 서버리스 기능인 AWS Glue 스키마 레지스트리를 통해 추가 요금 없이 등록된 Apache Avro 스키마를 사용하여 스트리밍 데이터의 변화를 검증하고 제어할 수 있습니다. 

Apache 라이선스 직렬화 및 역직렬화를 통해 스키마 레지스트리는 Apache Kafka, Amazon Managed Streaming for Apache Kafka(MSK), Amazon Kinesis Data Streams, Apache Flink, Amazon Kinesis Data Analytics for Apache Flink 및 AWS Lambda용으로 개발된 Java 애플리케이션과 통합됩니다. 데이터 스트리밍 애플리케이션을 스키마 레지스트리와 통합하면 스키마 변화를 관리하는 호환성 확인을 사용하여 데이터 품질을 개선하고 예기치 않은 변경으로부터 보호할 수 있습니다. 또한 레지스트리에 저장된 스키마를 사용하여 AWS Glue 테이블 및 파티션을 생성하거나 업데이트할 수 있습니다.


워크로드를 기반으로 자동으로 크기 조정

AWS Glue의 서버리스 기능인 자동 크기 조정을 사용하면 워크로드를 기반으로 리소스를 극적으로 확장하고 축소할 수 있습니다. 

자동 크기 조정을 사용하는 경우 작업이 필요할 때만 작업자에 할당됩니다. 작업이 진행되고 고급 변환을 거치는 동안 AWS Glue는 워크로드를 분할할 수 있는 양에 따라 리소스를 추가하고 제거합니다. 더 이상 리소스의 초과 프로비저닝을 걱정하거나 작업자 수를 최적화하는 데 시간을 소비하거나 유휴 리소스에 대한 요금을 지불할 필요가 없습니다.

 

준비

기본 제공 기계 학습을 통해 데이터 중복 제거 및 정리

AWS Glue는 기계 학습 전문가가 아니어도 분석용 데이터를 정리 및 준비할 수 있도록 지원합니다. FindMatches 기능은 서로 불완전하게 일치하는 기록을 복제하고 찾습니다. 예를 들어, FindMatches를 사용하여 식당 데이터베이스에서 중복된 레코드를 찾습니다. 가령 한 레코드에는 "121 Main St."에 있는 "Joe's Pizza"가 나열되지만 다른 레코드에는 "121 Main"에 있는 "Joseph's Pizzeria"가 나열되는 경우가 이에 해당합니다. FindMatches는 레코드 세트에 "일치함(matching)" 또는 "일치하지 않음(not matching)"과 같은 레이블을 지정하도록 요청합니다. 그러면 시스템에서는 레코드 페어를 "일치(match)"라고 부르는 조건을 학습하고 특정 데이터베이스 내의 중복된 레코드 또는 두 데이터베이스에서 일치하는 레코드를 검색하는 데 사용할 수 있는 ETL 작업을 구축하게 됩니다.


개발자 엔드포인트에서 ETL 코드 편집, 디버깅 및 테스트

ETL 코드를 대화식으로 개발하려는 경우 AWS Glue에서는 생성된 코드를 사용자가 편집, 디버깅 및 테스트할 수 있도록 개발 엔드포인트를 제공합니다. 사용자는 선호하는 IDE 또는 노트북을 사용할 수 있습니다. 사용자 지정 리더, 라이터 또는 변환 기능을 작성한 후, 이를 AWS Glue ETL 작업에 사용자 지정 라이브러리로 가져올 수 있습니다. 또한, GitHub 리포지토리에서 다른 개발자와 함께 코드를 사용하고 공유할 수 있습니다.

 

시각적 인터페이스를 사용하여 코드 없이 데이터 정규화

AWS Glue DataBrew는 데이터 분석가 및 데이터 사이언티스트와 같은 사용자가 코드를 작성하지 않고도 데이터를 정리하고 정규화할 수 있도록 포인트 앤 클릭 방식의 대화식 시각적 인터페이스를 제공합니다. Amazon S3, Amazon Redshift, Amazon Aurora 및 Amazon RDS를 비롯한 데이터 레이크, 데이터 웨어하우스 및 데이터베이스에서 직접 데이터를 시각화, 정리 및 정규화할 수 있습니다. 250개가 넘는 기본 제공 변환 중에서 선택하여 데이터를 결합, 피벗 및 전치하고, 저장된 변환을 신규 수신 데이터에 직접 적용하여 데이터 준비 태스크를 자동화할 수 있습니다.

 

민감한 데이터 정의, 탐지 및 교정

AWS Glue Sensitive Data Detection을 사용하여 데이터 파이프라인과 데이터 레이크에 있는 민감한 데이터를 정의하고 식별하며 처리할 수 있습니다. 식별한 후에는 개인 식별 정보(PII) 데이터와 민감한 것으로 간주되는 기타 유형의 데이터를 수정, 대체 또는 보고하여 민감한 데이터를 교정할 수 있습니다. AWS Glue Sensitive Data Detection을 사용하면 이름, SSN, 주소, 이메일 및 운전면허증과 같은 PII를 포함한 민감한 데이터를 간편하게 식별하고 마스킹할 수 있습니다.

 

Ray로 기존 Python 코드 확장(평가판)

개발자는 사용 편의성과 기본 제공되는 풍부한 데이터 처리 라이브러리 모음 때문에 Python을 좋아합니다. 이들은 대규모 데이터 세트를 처리할 때 익숙한 Python 기본 유형을 사용하기를 원합니다. AWS Glue for Ray는 Python 및 주요 Python 라이브러리를 사용하여 대규모 데이터 세트를 처리하는 데 도움이 됩니다. AWS Glue for Ray는 Python 워크로드를 단일 노드에서 수백 개 노드로 확장하는 데 도움이 되는 오픈 소스 통합 컴퓨팅 프레임워크인 Ray.io를 사용합니다. AWS Glue for Ray는 서버리스이므로 관리할 인프라가 없습니다.


사용자 지정 시각적 변환 생성

AWS Glue는 사용자 지정 시각적 변환을 생성하여 ETL 로직을 정의, 재사용 및 공유하는 데 도움이 됩니다. 데이터 엔지니어는 AWS Glue의 사용자 지정 시각적 변환 기능을 사용하여 비즈니스와 관련된 Apache Spark 로직을 작성하고 공유함으로써 Spark 개발자에 대한 의존도를 낮추고 ETL 작업을 보다 쉽게 최신 상태로 유지할 수 있습니다. 시각적 작업이든 코드 기반 작업이든 AWS 계정의 모든 작업에 이러한 변환을 사용할 수 있습니다.

 

통합

데이터 통합 작업 개발 간소화

AWS Glue Interactive Sessions는 작업 개발을 위한 서버리스 기능으로, 데이터 통합 작업 개발을 간소화합니다. AWS Glue Interactive Sessions를 통해 데이터 엔지니어는 데이터를 대화식으로 탐색하고 준비할 수 있습니다. 엔지니어는 선택한 IDE 또는 노트북을 사용하여 데이터를 대화형으로 탐색하고 실험하며 처리할 수 있습니다.

 

기본 제공 Job Notebooks

AWS Glue Studio Job Notebooks는 AWS Glue Studio에서 최소한으로 설정할 수 있는 서버리스 노트북을 제공하므로 개발자가 빠르게 시작할 수 있습니다. Glue Studio Job Notebooks는 AWS Glue Interactive Sessions용 내장 인터페이스를 제공하므로 사용자는 노트북 코드를 AWS Glue 작업으로 저장하고 예약할 수 있습니다.


단순한 작업 스케줄링으로 복잡한 ETL 파이프라인 구축

AWS Glue 작업은 일정에 따라, 온디맨드로 또는 이벤트를 기반으로 호출할 수 있습니다. 여러 개의 작업을 병렬로 시작하거나 작업 간에 종속성을 지정하여 복잡한 ETL 파이프라인을 구축할 수 있습니다. AWS Glue는 모든 내부 작업 종속성을 처리하고, 잘못된 데이터를 필터링하며, 실패 시 작업을 다시 수행합니다. 모든 로그와 알림은 Amazon CloudWatch로 푸시되므로, 중앙 서비스에서 알림을 모니터링하고 받을 수 있습니다.


Git 통합을 사용하여 DevOps 모범 사례를 적용하고 배포

AWS Glue는 광범위하게 사용되는 오픈 소스 버전 제어 시스템인 Git와 통합됩니다. 고객은 GibHub 및 AWS CodeCommit을 사용하여 AWS Glue 작업의 변경 사항 기록을 유지 관리하고 기존 DevOps 사례를 적용하여 이를 배포할 수 있습니다. AWS Glue의 Git 통합 기능을 통해 시각적이든지, 아니면 코드 기반이든지 모든 AWS Glue 작업 유형을 수행할 수 있습니다. 여기에는 GitHub 및 AWS CodeCommit과의 기본 제공 통합이 포함되어 있으며 Jenkins 및 AWS CodeDeploy 같은 자동 도구를 사용하여 AWS Glue 작업을 보다 간편하게 배포할 수도 있습니다.

 

유연한 작업 실행으로 시급하지 않은 워크로드의 비용 절감

AWS Glue Flex는 긴급하지 않은 데이터 통합 워크로드(예: 사전 프로덕션 작업, 테스트, 데이터 로드 등)의 비용을 최대 35% 절감할 수 있도록 새롭게 제공되는 유연한 실행 작업 클래스입니다. 이제 Glue에 표준 및 유연이라는 2가지 작업 실행 클래스가 포함됩니다. 표준 실행 클래스는 빠른 작업 시작과 전용 리소스를 요구하는 시간에 민감한 워크로드에 적합합니다. Glue Flex는 시작 및 완료 시간이 다를 수 있는, 시간에 민감하지 않은 작업에 적합합니다.


데이터 레이크의 파일 읽기, 삽입, 업데이트 및 삭제

AWS Glue는 Apache Hudi, Apache Iceberg 및 Linux Foundation Delta Lake를 포함한 3가지 오픈 소스 프레임워크를 기본적으로 지원합니다. 이러한 프레임워크는 트랜잭션에 일관된 방식으로 데이터를 관리하여 Amazon Simple Storage Service(S3) 기반 데이터 레이크에서 데이터를 사용하는 데 도움이 됩니다.


데이터 레이크 및 파이프라인에서 고품질 데이터 제공(평가판)

AWS Glue Data Quality는 데이터 품질 및 신뢰도를 개선하는 데 도움이 됩니다. 이 서비스는 데이터 레이크 및 파이프라인의 데이터 품질을 자동으로 측정하고 모니터링하며 관리합니다. 또한 통계를 자동으로 계산하고 품질 규칙을 권장하며 품질을 모니터링하여 품질 저하 시 알림을 제공하므로 누락된 데이터, 오래된 데이터 또는 잘못된 데이터를 비즈니스 영향이 발생하기 전에 손쉽게 식별할 수 있습니다.

 

변환

끌어서 놓기 인터페이스를 사용하여 시각적으로 데이터를 변환

AWS Glue Studio를 사용하면 분산 처리를 위한 확장성이 뛰어난 ETL 작업을 작성할 수 있습니다. Apache Spark 전문가가 될 필요가 없습니다. 끌어서 놓기 작업 에디터에서 ETL 프로세스를 정의하면 AWS Glue가 자동으로 코드를 생성하므로 데이터를 추출, 변환 및 로드할 수 있습니다. 코드는 Scala 또는 Python에서 생성되며 Apache Spark에 맞춰 작성됩니다.


이동 중인 스트리밍 데이터 정리 및 변환

AWS Glue에서의 서버리스 스트리밍 ETL 작업은 Amazon Kinesis 및 Amazon MSK를 포함한 스트리밍 소스로부터 계속해서 데이터를 사용하며, 이동 중인 데이터를 정리 및 변환하고, 대상 데이터 스토어에서 몇 초 안에 분석에 해당 데이터를 사용할 수 있도록 지원합니다. 이 기능을 사용하여 IoT 이벤트 스트림, 클릭스트림 및 네트워크 로그와 같은 이벤트 데이터를 처리합니다. AWS Glue 스트리밍 ETL 작업은 데이터를 보강하고 집계하며, 배치 및 스트리밍 소스를 조인하고, 다양하고 복잡한 분석 및 기계 학습 작업을 실행할 수 있습니다.

 

FAQ

Q: AWS Glue의 주요 구성 요소는 무엇입니까?

AWS Glue는 중앙 메타데이터 레포지토리인 Data Catalog로 구성되어 있습니다.
ETL 엔진은 자동으로 Scala 또는 Python 코드를 생성합니다.
이는 의존성 결정, 작업 모니터링 및 재시도를 처리하는 탄력적인 스케줄러입니다.
AWS Glue DataBrew는 데이터를 시각적 인터페이스를 통해 정리 및 정규화합니다.
이러한 구성 요소가 결합되어 데이터의 검색, 분류, 정리, 보강 및 이동과 관련된 획일화된 작업 대부분을 자동화하므로 사용자는 데이터 분석에 더 많은 시간을 할애할 수 있습니다.

 

Q: AWS Glue에서 지원하는 데이터 소스에는 어떤 것이 있습니까?

AWS Glue는 기본적으로 Amazon Aurora, Amazon RDS for MySQL, Amazon RDS for Oracle, Amazon RDS for PostgreSQL, Amazon RDS for SQL Server, Amazon Redshift, DynamoDB 및 
Amazon S3뿐만 아니라 Amazon EC2에서 실행되는 Virtual Private Cloud(Amazon VPC)에 있는 MySQL, Oracle, Microsoft SQL Server 및 PostgreSQL 데이터베이스에 저장된 데이터를 지원합니다.
AWS Glue는 Amazon MSK, Amazon Kinesis Data Streams 및 Apache Kafka의 데이터 스트림도 지원합니다.
또한 맞춤형 Scala 또는 Python 코드를 작성하고 사용자 지정 라이브러리와 Jar 파일을 AWS Glue ETL 작업으로 가져와서 AWS Glue에서 기본적으로 지원하지 않는 데이터 원본에 액세스할 수 있습니다. 

 

Q: AWS Glue는 AWS Lake Formation과 어떤 관계입니까?

A: Lake Formation은 콘솔 제어, ETL 코드 생성, 작업 모니터링, 공통 데이터 카탈로그, 서버리스 아키텍처를 포함하여 AWS Glue에서 공유 인프라를 활용합니다. AWS Glue는 아직 이러한 유형의 기능에 초점을 맞추고 있는 반면, Lake Formation은 AWS Glue 기능을 포함하면서, 동시에 데이터 레이크를 구축하고 보안하고 관리하는 데 유용한 추가 기능을 제공합니다.

 

Q: AWS Glue 스키마 레지스트리에 프라이빗하게 연결할 수 있나요?

AWS PrivateLink를 사용하여 AWS Glue용 인터페이스 VPC 엔드포인트를 정의해 AWS Glue에 데이터 생산자의 VPC를 연결할 수 있습니다. VPC 인터페이스 엔드포인트를 사용하는 경우 VPC와 AWS Glue 간 모든 통신이 AWS 네트워크 내에서 완전히 수행됩니다. 

 

Q: AWS Glue와 AWS Batch는 각각 언제 사용해야 합니까?

AWS Batch를 사용하면 작업의 성격과 관계없이 AWS에서 어떤 배치 컴퓨팅 작업이든 쉽고 효율적으로 수행할 수 있습니다. AWS Batch는 AWS 계정에서 컴퓨팅 리소스를 생성 및 관리하므로 사용되는 리소스에 대한 완벽한 제어권 및 가시성을 사용자에게 제공합니다. AWS Glue는 ETL 작업을 실행할 수 있도록 서버리스 Apache Spark 환경을 제공하는 완전관리형 ETL 서비스입니다. ETL 사용 사례의 경우에는 AWS Glue 사용을 검토하는 것이 좋습니다. 일부 ETL 사용 사례를 비롯하여 기타 배치 중심 사용 사례의 경우에는 AWS Batch를 사용하는 것이 더 적합할 수 있습니다.

Q: AWS Glue SLA에서 보장하는 것은 무엇입니까?

AWS Glue SLA에서는 AWS Glue에 대해 최소 99.9%의 월간 가동률을 보장합니다.

 


 

여기까지 AWS Glue에 대하여 알아보았는데요!

다들 유용하셨을까요?

 

 

이번 한 주도 고생 많으셨습니다 !!

그럼 다음 시간도 함께 해요 

제에에에에바아아알 ~~~~~~~

'CSP (Cloud Service Provider) > AWS' 카테고리의 다른 글

eks addon ADOT란?  (0) 2023.06.12
AWS 콘솔 접근 가능한 IP 제한  (0) 2023.06.12
[AWS] Site-to-Site VPN  (0) 2023.06.09
[AWS] Direct Connect  (0) 2023.06.09
AWS Container Service  (0) 2023.06.09

댓글