지난 포스팅에서는 데이터 수집과 변환 및 처리를 알아보았습니다. 이번에는 데이터 수명 주기를 관리하기 위한 데이터 아키텍처 통합역할을 하는 데이터 파이프라인 오케스트레이션을 알아보겠습니다.
1. 데이터 아키텍처
지속적으로 진화하는 데이터 요구 사항에 대응할 수 있는 데이터 파이프라인을 만들기위해 아키텍처를 구상할 때 다방면의 운영 및 기술적 요소들을 고려해야합니다.
1.1 최적의 데이터 아키텍처 구축 핵심 요소
- Operational Excellence (운영 우수성)
- 목표: 시스템을 운영하고 개선하며 비즈니스 가치를 지속적으로 전달할 수 있도록 지원
- 핵심 개념:
- 자동화된 모니터링 및 경보
- 반복 가능한 변경 절차
- 실험과 학습을 통한 개선
- 예시: CI/CD 파이프라인을 통한 자동 배포 및 롤백 구현
- Security (보안)
- 목표: 정보, 시스템, 자산을 보호하고 비즈니스 요구사항을 충족
- 핵심 개념:
- 데이터 암호화
- 접근 제어(Least Privilege)
- 감시 및 감사 로깅
- 예시: IAM 정책, KMS로 암호화, CloudTrail을 통한 로깅
- Reliability (신뢰성)
- 목표: 워크로드가 장애 없이 일관되게 작동하도록 보장
- 핵심 개념:
- 장애 복구 전략
- 자동화된 확장 및 치유
- 서비스 한계 이해
- 예시: Auto Scaling, Multi-AZ 배포, 백업과 복구 전략
- Performance Efficiency (성능 효율성)
- 목표: 변화하는 요구사항에 따라 컴퓨팅 자원을 효율적으로 사용
- 핵심 개념:
- 최신 기술 활용 (예: 서버리스, ARM 기반 인스턴스)
- 리소스 적정화
- 모니터링 및 최적화
- 예시: Lambda 도입, CloudWatch Metrics 분석
- Cost Optimization (비용 최적화)
- 목표: 불필요한 비용을 피하면서 비즈니스 가치를 극대화
- 핵심 개념:
- 불필요한 리소스 제거
- 적절한 요금제 선택 (예: Savings Plans)
- 사용량 기반 과금 활용
- 예시: 미사용 EC2 인스턴스 종료, Reserved Instance 사용
- Sustainability (지속 가능성)
- 목표: 환경 영향을 최소화하면서 클라우드 리소스를 지속 가능하게 운영
- 핵심 개념:
- 탄소 발자국 줄이기
- 에너지 효율이 높은 리전 사용
- 자원 최적화를 통한 낭비 방지
- 예시: 탄소 인사이트 분석, 서버리스 아키텍처 활용
2. AWS 데이터 오케스트레이션 서비스
데이터 오케스트레이션은 데이터가 수집 서비스에서 처리 서비스를 거쳐 스토리지 위치로 올바르게 흐르도록 보장하는 프로세스입니다.
2.1 오케스트레이션 종류
- 오케스트레이션 서비스
- 파이프라인을 Airflow Dag(Directed Acrylic Graph)로 구성할 수 있지만 AWS 서비스로 파이프라인을 구성할 수 있습니다.
- AWS Step Functions과 AWS Data Pipeline을 비교해보겠습니다.
- AWS Data Pipeline은 오래된 서비스이며, 운영 및 유지보수에 대한 유연성이 부족합니다.
- 여러 상황에 따른 추천 서비스에 대해 알아보겠습니다.
상황 추천 서비스 서버리스 앱 워크플로우 AWS Step Functions Lambda 기반 로직 오케스트레이션 AWS Step Functions 마이크로서비스 오케스트레이션 AWS Step Functions 정기적인 데이터 추출/변환/적재 AWS Glue 또는 MWAA (Airflow) 기존에 Data Pipeline이 구축되어 있고 유지보수만 필요 Data Pipeline 유지 가능하지만 신규 개발은 권장되지 않음
2.2 Step Functions
위에서 살펴봤듯이 Step Functions은 데이터 파이프라인을 오케스트레이션 하는데 유용하게 사용된다는 걸 알 수 있습니다. 그러면 Step Functions에 대해 알아봅시다.
- Step Functions란?
AWS Step Functions는 상태 기반(State Machine) 모델을 사용해, 개별 작업(Task)을 순서대로 또는 조건에 따라 실행할 수 있도록 해줍니다. 복잡한 애플리케이션 로직도 시각적으로 표현하며, 안정성과 확장성을 갖춘 상태 관리형 시스템입니다. - 구성 요소
- State Machine
- 전체 워크플로우를 정의한 JSON 파일
- States, StartAt, Transitions, End 등의 속성으로 구성
- 각 State는 Task, Choice, Parallel, Wait 등 다양한 타입이 있음
- States (단계)
- Task: 실제 작업 실행 (예: Lambda 호출)
- Choice: 조건 분기 (if-else)
- Parallel: 병렬 처리
- Wait: 일정 시간 대기
- Pass/Fail/Succeed: 상태 흐름 조절
- Integration
- AWS Lambda, ECS, SNS, SQS, DynamoDB, SageMaker, Glue 등 다양한 AWS 서비스와 통합 가능
- Execution
- Step Function은 특정 이벤트(API Gateway, EventBridge 등)나 수동 호출로 실행 가능 구성 요소
- Step Function은 특정 이벤트(API Gateway, EventBridge 등)나 수동 호출로 실행 가능 구성 요소
- State Machine
- 오케스트레이션 특징
기능 설명 조건 분기 Choice state를 통해 작업 흐름 분기 가능 재시도 및 에러 처리 각 Task에 Retry, Catch 블록으로 실패 대응 병렬 처리 Parallel state로 여러 작업을 동시에 수행 시각적 흐름 보기 콘솔에서 전체 워크플로우를 시각적으로 확인 가능 상태 저장 각 단계의 입력/출력 데이터를 JSON 형태로 자동 관리
2.3 AWS Glue
- AWS Glue란?
AWS Glue는 데이터 준비 및 ETL 워크플로우를 자동화하는 완전관리형 서버리스 서비스입니다. 주요 목적은 데이터 레이크, 데이터 웨어하우스, 분석 도구에 맞게 데이터를 준비하고 통합하는 것입니다. - 구성 요소
구성 요소 설명 Crawler S3, RDS, Redshift 등에서 스캔하여 **메타데이터(스키마)**를 자동으로 추출 Data Catalog Glue에서 수집된 데이터 메타정보를 저장하는 중앙 메타데이터 저장소 Job Python 또는 Scala로 작성된 ETL 스크립트 실행 단위. Spark 기반 Trigger 특정 시간 또는 이벤트로 Glue Job을 실행 (예: 크론, S3 파일 도착 등) Workflow 여러 Job, Trigger, Crawler 등을 하나의 파이프라인처럼 연결하는 기능 Glue Studio ETL Job을 시각적으로 작성할 수 있는 GUI 도구 Glue DataBrew 코딩 없이 시각적으로 데이터 정제(탐색, 필터, 정렬 등) 가능 - AWS Glue의 특징
특징 설명 서버리스 인프라 구성 필요 없음. Spark 클러스터 자동 관리 자동 스키마 인식 Crawler로 다양한 데이터 포맷(S3, Parquet, JSON, CSV 등)을 자동 인식 Spark 기반 처리 분산 처리 프레임워크 사용으로 대규모 데이터도 빠르게 처리 다양한 포맷 지원 JSON, CSV, Parquet, ORC, Avro 등 다양한 형식 처리 가능 통합 Athena, Redshift, S3, RDS 등과 완벽하게 통합 유연한 트리거 시간 기반, 이벤트 기반, Workflow 기반 실행 모두 가능
3. 데이터 파이프라인 오케스트레이션 구성 시 고려 사항
3.1 고려 사항
- 분산 처리 프레임워크
Spark, Amazon EMR 또는 AWS Glue와 같은 분산 처리 프레임워크를 사용하여 대량의 데이터를 처리하고 리소스 클러스터 전체에 걸쳐 병렬 처리를 실행합니다. - 오토 스케일링 및 데이터 파티셔닝
최적의 성능 및 비용 효율성을 보장하기 위해 데이터 파이프라인에서 자동 크기 조정을 구성합니다. 여러 처리 리소스에 데이터를 분산하기 위해 적절한 데이터 파티셔닝 기술을 구현합니다. - 내결함성 스토리지 서비스 사용
데이터를 저장하는 데 Amazon S3 또는 Amazon Elastic File System(Amazon EFS)과 같은 내결함성 스토리지 서비스를 사용합니다. 데이터 가용성을 보장하고 재해 복구에 도움이 되도록 백업, 전략 및 계획을 구현하여 Amazon S3or 또는 AWS Backup으로 데이터를 보호합니다. - 모니터링
CloudWatch를 사용하여 데이터 파이프라인의 상태 및 성능을 모니터링합니다. 문제 또는 성능 문제를 적극적으로 탐지하고 대응할 수 있도록 경보 및 알림을 설정합니다. - Failover(장애조치)
Step Functions 또는 AWS Glue 워크플로를 사용하여 데이터 파이프라인 내에서 오류 처리 및 재시도 메커니즘을 구현합니다. 데이터 검증 및 품질 검사를 구현하고 자동화된 테스트, 버전 제어 및 배포 프로세스를 포함합니다. - 캡슐화
문제 해결, 유지 관리, 확장성을 위해 데이터 파이프라인의 여러 단계 또는 구성 요소를 단위로 격리합니다. Lambda, AWS Glue 또는 컨테이너화 기술을 사용하여 개별 데이터 처리 구성 요소를 캡슐화하고 격리할 수 있습니다. - CI / CD
변경 사항을 효율적으로 배포할 수 있도록 데이터 파이프라인에 대해 CI/CD 방식을 구현합니다.
다음 포스팅에서는 데이터 통합 및 변환에서 네 번째 작업 프로그래밍 개념 적용에 대해 알아보겠습니다.
'Data Engineering > 자격증' 카테고리의 다른 글
[AWS DEA] 프로그래밍 개념을 적용한 데이터 처리 자동화 (0) | 2025.05.21 |
---|---|
[AWS DEA] 데이터 변환 및 처리 - 2 (0) | 2025.05.15 |
[AWS DEA] 데이터 변환 및 처리 - 1 (0) | 2025.05.14 |
[AWS DEA] 데이터 수집 - 2 (0) | 2025.05.13 |
[AWS DEA] 데이터 수집 - 1 (0) | 2025.05.12 |