- AWS Solutions Library›
- Guidance for SQL-Based ETL with Apache Spark on Amazon EKS
Guidance for SQL-Based ETL with Apache Spark on Amazon EKS
확장 가능한 엔터프라이즈급 추출, 전환, 적재(ETL) 솔루션으로 데이터 워크플로의 효율성을 높이고 인사이트를 더 빠르게 확보하세요.
개요
이 지침은 데이터 소비 요구 사항과 일반적인 ETL 작업에서 수행되는 하위 데이터 처리 활동 간의 격차를 해소하는 데 도움이 됩니다. SQL 기반 데이터 관리 시스템을 운영하는 조직의 경우 현대적인 데이터 엔지니어링 방식에 맞춰가다 보면 데이터에서 강력한 인사이트를 끌어내는 과정의 진행 속도가 느려질 수 있습니다. 이 지침은 사용자 중심 ETL 접근 방식에 대한 오픈 소스 데이터 프레임워크인 Arc를 통해 데이터 프로세스 생산성을 높이기 위한 품질 인식 설계를 제공합니다. 이 지침은 ETL 작업에서의 상호 작용을 가속화하여 배치 및 스트리밍이 통합된 ETL 활동에서 단순성을 촉진하고 추상화 수준을 높여줍니다.
또한 효율적인 컴퓨팅 인스턴스(예: AWS Graviton Processor)를 사용하여 최적의 설계를 위한 옵션을 제공하므로 Amazon EKS에서 대규모로 ETL 작업을 실행하는 데 필요한 성능과 비용을 최적화할 수 있습니다.
작동 방식
이 아키텍처 다이어그램은 Amazon EKS에서 실행되는 Apache Spark를 통해 데이터 처리를 가속화하는 방법을 보여줍니다.
Well-Architected 원칙
위의 아키텍처 다이어그램은 Well-Architected 모범 사례를 고려하여 생성된 솔루션의 예시입니다. Well-Architected를 완전히 충족하려면 가능한 많은 Well-Architected 모범 사례를 따라야 합니다.
Amazon EKS 클러스터 내에서 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스(X86_64 CPU, Graviton ARM64)는 Guidance 워크로드를 실행하는 컴퓨팅 노드 역할을 합니다. Spark 작업은 워크로드 수요에 따라 탄력적으로 프로비저닝되는 Amazon EC2 스팟 인스턴스에서 실행됩니다. CodeBuild와 CodePipeline은 GitOps 프로세스를 자동화하여 Git 코드 업데이트로부터 컨테이너 이미지를 빌드하고 Amazon ECR 프라이빗 레지스트리에 푸시합니다. Argo Workflows는 Amazon EKS에 ETL 작업을 예약합니다. Amazon ECR에서 Arc Docker 이미지를 자동으로 가져오고, 아티팩트 S3 버킷에서 ETL 자산을 다운로드하고, 애플리케이션 로그를 CloudWatch로 전송합니다. 데이터 ETL 작업을 이와 같이 자동화된 방식으로 배포하고 실행하면 운영 오버헤드가 최소화되고 생산성이 개선됩니다. 또한 CI/CD 파이프라인에 CodeBuild 및 CodePipeline을 사용하면 지속적인 개선 및 개발을 보장하는 동시에 Guidance의 Arc Docker 이미지를 Amazon ECR에 안전하게 저장할 수 있습니다.
Amazon EKS 클러스터 리소스가 Amazon VPC 안에 배포되므로 논리적 네트워킹이 공용 인터넷으로부터 격리됩니다. Amazon VPC는 VPC 엔드포인트(트래픽을 AWS 네트워크 내에 유지), 보안 그룹, 네트워크 액세스 제어 목록(ACL), AWS Identity and Access Management(IAM) 역할 및 정책(인바운드 및 아웃바운드 트래픽 및 권한 부여 제어용)과 같은 보안 기능을 지원합니다. Amazon ECR 이미지 레지스트리는 취약성 스캐닝과 같은 컨테이너 수준 보안 기능을 제공합니다. Amazon ECR과 Amazon EKS는 Open Container Initiative(OCI) 레지스트리 및 Kubernetes API 표준을 따르며 엄격한 보안 프로토콜을 포함합니다. IAM은 Amazon S3 애플리케이션 데이터에 대한 액세스 제어를 제공하고, AWS Key Management Service(AWS KMS)는 Amazon S3에 저장된 데이터를 암호화합니다. Amazon EKS 클러스터에서는 서비스 계정에 대한 IAM 역할(IRSA)을 사용하여 역할 기반 액세스 제어를 적용하고 권한이 없는 Amazon S3 데이터 액세스를 제한함으로써 포드에 대한 액세스 권한을 세분화하여 제어할 수 있습니다. Secrets Manager는 자격 증명을 안전하게 저장하고 관리합니다. CloudFront는 Jupyter 및 Argo Workflows 웹 도구에 SSL 인코딩 보안 진입점을 제공합니다.
Amazon EKS는 Kubernetes 컨트롤 플레인 및 컴퓨팅 플레인을 여러 가용 영역(AZ)에 배포하여 토폴로지의 고가용성을 보장합니다. 이렇게 하면 AZ에 장애가 발생하더라도 데이터 애플리케이션의 지속적인 가용성이 보장되므로 Amazon EKS에 다중 AZ EC2 인스턴스를 안정적으로 배포할 수 있습니다. 데이터 스토리지의 경우 Amazon S3는 리전 내 여러 AZ에 데이터 객체를 자동으로 복제하여 내구성과 가용성을 높여줍니다. 또한 Amazon ECR은 Docker 이미지를 가용성과 확장성이 뛰어난 아키텍처에서 호스팅하여 컨테이너 기반 애플리케이션의 배포와 규모 조정을 안정적으로 지원합니다. Amazon S3, Amazon EKS 및 Amazon ECR은 운영 비용을 절감하면서 높은 서비스 수준 계약(SLA)을 제공하도록 설계된 완전관리형 서비스입니다. 이 서비스를 사용하여 비즈니스 크리티컬 애플리케이션을 배포하면 고가용성 요구 사항을 충족할 수 있습니다.
Amazon EKS 클러스터의 Amazon EC2 컴퓨팅 노드는 애플리케이션 워크로드에 따라 동적으로 스케일 업 및 스케일 다운이 가능합니다. Graviton 기반 EC2 인스턴스는 맞춤 설계된 ARM 기반 프로세서, 최적화된 하드웨어, 아키텍처 개선을 통해 성능 효율성을 높여줍니다. 컴퓨팅-스토리지 분리 패턴(Amazon S3에 저장된 입력 및 출력 데이터 포함)은 컴퓨팅 규모를 동적으로 조정할 때의 효율성을 높여줍니다. 데이터 카탈로그는 Athena와 원활하게 통합됩니다. 따라서 메타데이터 관리가 간편해지고 쿼리 성능이 개선되어 메타데이터 관리 작업이 간소화됩니다. 데이터 카탈로그는 기술 메타데이터의 크롤링 및 유지 관리를 자동화하여 데이터 처리 및 쿼리 작업의 효율성을 개선합니다. Athena에서 Amazon S3 데이터를 이동하지 않고도 빠르게 쿼리할 수 있으므로 분석 워크플로의 효율성이 추가로 개선됩니다.
Amazon ECR은 컨테이너 애플리케이션의 보안 및 지원을 위한 관리형 서비스입니다. 매월 정액 요금으로 컨테이너 이미지를 저장하고 제공할 수 있습니다. Amazon EKS 클러스터 컴퓨팅 노드는 Spark 워크로드를 기반으로 스케일 업 및 스케일 다운이 가능하므로 Graviton 및 스팟 인스턴스 유형을 비용 효율적으로 사용할 수 있습니다. 데이터 카탈로그는 완전관리형 서버리스 메타데이터 리포지토리를 제공하므로 장기간 실행되는 메타데이터 데이터베이스를 설정 및 유지 관리할 필요가 없고 운영 오버헤드와 비용이 줄어듭니다. CodeBuild와 CodePipeline은 서버리스 환경에서 Arc ETL Framework의 Docker 이미지의 빌드 및 배포를 자동화하므로 인프라 유지 관리 비용이 절감될 뿐만 아니라 빌드 서버를 프로비저닝하고 관리할 필요가 없어집니다.
이 지침에서는 Graviton 프로세서 기반의 효율적인 컴퓨팅 유형으로 구성된 Amazon EKS 클러스터를 실행합니다. Amazon ECR을 사용하면 사용자 지정 하드웨어 또는 물리적 서버 관리가 필요하지 않습니다. 데이터 카탈로그와 Athena는 서버리스 서비스이므로 에너지와 환경에 미치는 영향이 더욱 줄어듭니다. 대규모 Apache Spark 워크로드에 맞게 Amazon EKS 컴퓨팅 계층을 최적화하면 분석 워크로드가 환경에 미치는 영향을 최소화할 수 있습니다. 성능 요구 사항 및 지속 가능성 우선순위에 따라 ARM 기반 프로세서를 유연하게 선택할 수 있습니다.
구현 리소스
고지 사항
오늘 원하는 내용을 찾으셨나요?
페이지의 콘텐츠 품질을 개선할 수 있도록 피드백을 보내주세요.