AWS Glue 기능

Glue를 선택해야 하는 이유

AWS Glue는 분석, 기계 학습 및 애플리케이션 개발을 위해 여러 소스에서 데이터를 쉽게 탐색, 준비, 이동 및 통합할 수 있도록 하는 확장 가능한 서버리스 데이터 통합 서비스입니다. AWS Glue에서는 데이터 통합에 필요한 모든 기능을 제공하므로, 몇 개월이 아니라 몇 분 안에 인사이트를 얻고 데이터를 활용할 수 있습니다. AWS Glue에는 설정하거나 관리할 인프라가 없습니다. 작업이 실행되는 동안 사용한 리소스에 대한 비용만 지불하면 됩니다.

Discover

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

AWS Glue 크롤러는 소스 또는 대상 데이터 스토어에 연결하고, 우선순위가 지정된 분류기 목록을 거치면서 데이터의 스키마를 결정한 후, AWS Glue 데이터 카탈로그에 메타데이터를 생성합니다. 메타데이터는 Data Catalog의 테이블에 저장되고 추출, 전환, 적재(ETL) 작업의 승인 프로세스에 사용됩니다. 크롤러를 일정에 따라 또는 온디맨드로 실행하거나 이벤트를 기반으로 트리거하여 메타데이터를 최신 상태로 유지할 수 있습니다.

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

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

준비

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

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

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

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

개발자는 사용 편의성과 기본 제공되는 풍부한 데이터 처리 라이브러리 모음 때문에 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 또는 노트북을 사용하여 데이터를 대화형으로 탐색하고 실험하며 처리할 수 있습니다.

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

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

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

AWS Glue Flex는 긴급하지 않은 데이터 통합 워크로드(예: 사전 프로덕션 작업, 테스트, 및 데이터 로드)의 비용을 최대 35% 절감할 수 있는 탄력적인 실행 작업 클래스입니다. AWS Glue에는 표준 및 유연과 같은 두 가지 작업 실행 클래스가 있습니다. 표준 실행 클래스는 빠른 작업 시작과 전용 리소스를 요구하는 시간에 민감한 워크로드에 적합합니다. AWS Glue Flex는 시작 및 완료 시간이 다를 수 있는, 시간에 민감하지 않은 작업에 적합합니다.

AWS Glue는 Apache Hudi, Apache Iceberg 및 Linux Foundation Delta Lake를 포함한 3가지 오픈 소스 프레임워크를 기본적으로 지원합니다. 이러한 프레임워크는 트랜잭션에 일관된 방식으로 데이터를 관리하여 Amazon 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 작업은 데이터를 보강하고 집계하며, 배치 및 스트리밍 소스를 조인하고, 다양하고 복잡한 분석 및 기계 학습 작업을 실행할 수 있습니다.