- 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 EC2) 인스턴스 (X86_64 CPU, 그래비톤 ARM64) 는 가이던스 워크로드를 실행하는 컴퓨팅 노드 역할을 합니다. Spark 작업은 워크로드 수요에 따라 탄력적으로 프로비저닝된 Amazon EC2 스팟 인스턴스에서 실행됩니다. CodeBuild와 CodePipeline은 Git 코드 업데이트로부터 컨테이너 이미지를 빌드하고 이를 Amazon ECR 프라이빗 레지스트리로 푸시하여 GitOps 프로세스를 자동화합니다. Argo Workflows는 Amazon EKS에 ETL 작업을 예약합니다. Amazon ECR에서 Arc Docker 이미지를 자동으로 가져오고, 아티팩트 S3 버킷에서 ETL 자산을 다운로드하고, 애플리케이션 로그를 CloudWatch로 전송합니다. 데이터 ETL 작업을 이와 같이 자동화된 방식으로 배포하고 실행하면 운영 오버헤드가 최소화되고 생산성이 개선됩니다. 또한 CodeBuild와 CodePipeline을 사용하는 CI/CD 파이프라인은 가이던스의 아크 도커 이미지를 Amazon ECR에 안전하게 저장하는 동시에 지속적인 개선과 개발을 보장하는 데 도움이 됩니다.
Amazon EKS 클러스터 리소스는 Amazon VPC에 배포되어 공용 인터넷으로부터 논리적 네트워킹 격리를 제공합니다. Amazon VPC는 VPC 엔드포인트 (AWS 네트워크 내에 트래픽을 유지), 보안 그룹, 네트워크 액세스 제어 목록 (ACL), 인바운드 및 아웃바운드 트래픽과 권한 부여를 제어하기 위한 AWS ID 및 액세스 관리 (IAM) 역할 및 정책과 같은 보안 기능을 지원합니다. Amazon ECR 이미지 레지스트리는 취약성 스캐닝과 같은 컨테이너 수준 보안 기능을 제공합니다. Amazon ECR과 Amazon EKS는 엄격한 보안 프로토콜을 통합하여 오픈 컨테이너 이니셔티브 (OCI) 레지스트리 및 쿠버네티스 API 표준을 따릅니다. IAM은 Amazon S3 애플리케이션 데이터에 대한 액세스 제어를 제공하고, AWS 키 관리 서비스 (AWS KMS) 는 Amazon S3에 저장된 데이터를 암호화합니다. Amazon EKS 클러스터의 서비스 계정용 IAM 역할 (IRSA) 을 사용하면 역할 기반 액세스 제어를 적용하고 무단 Amazon S3 데이터 액세스를 제한하여 포드에 대한 세분화된 액세스 제어를 수행할 수 있습니다. 시크릿 매니저는 자격 증명을 안전하게 저장하고 관리합니다. CloudFront는 주피터 및 아르고 워크플로 웹 도구를 위한 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에 저장된 입력 및 출력 데이터 포함)은 컴퓨팅 규모를 동적으로 조정할 때의 효율성을 높여줍니다. Data Catalog는 Athena와 원활하게 통합되어 메타데이터 관리를 간소화하고 쿼리 성능을 향상시켜 메타데이터 관리를 간소화합니다. 데이터 카탈로그는 기술 메타데이터의 크롤링 및 유지 관리를 자동화하여 데이터 처리 및 쿼리 작업의 효율성을 개선합니다. Athena에서 Amazon S3 데이터를 이동하지 않고도 빠르게 쿼리할 수 있으므로 분석 워크플로의 효율성이 추가로 개선됩니다.
Amazon ECR은 컨테이너 애플리케이션의 보안 및 지원을 위한 관리형 서비스로서, 컨테이너 이미지 저장 및 제공에 대해 매월 고정된 요금을 지불합니다. Amazon EKS 클러스터 컴퓨팅 노드는 Spark 워크로드를 기반으로 확장 및 축소할 수 있어 비용 효율적인 Graviton 및 Spot 인스턴스 유형을 제공합니다. Data Catalog는 완전 관리형 서버리스 메타데이터 저장소를 제공하므로 장기간 실행되는 메타데이터 데이터베이스를 설정 및 유지 관리할 필요가 없고 운영 오버헤드와 비용이 줄어듭니다. CodeBuild와 CodePipeline은 서버리스 환경에서 Arc ETL Framework의 Docker 이미지의 빌드 및 배포를 자동화하므로 인프라 유지 관리 비용이 절감될 뿐만 아니라 빌드 서버를 프로비저닝하고 관리할 필요가 없어집니다.
이 지침은 Graviton 프로세서 기반의 효율적인 컴퓨팅 유형으로 Amazon EKS 클러스터를 실행합니다. Amazon ECR을 사용하면 사용자 지정 하드웨어 또는 물리적 서버 관리가 필요하지 않습니다. 데이터 카탈로그와 Athena는 서버리스 서비스이므로 에너지와 환경에 미치는 영향이 더욱 줄어듭니다. 대규모 Apache Spark 워크로드에 맞게 Amazon EKS 컴퓨팅 계층을 최적화하면 분석 워크로드가 환경에 미치는 영향을 최소화할 수 있습니다. 성능 요구 사항 및 지속 가능성 우선순위에 따라 ARM 기반 프로세서를 유연하게 선택할 수 있습니다.
구현 리소스
고지 사항
오늘 원하는 내용을 찾으셨나요?
페이지의 콘텐츠 품질을 개선할 수 있도록 피드백을 보내주십시오.