AWS DVA-C02AWS 허브발행일 2025. 8. 13.원본 https://blog.naver.com/jword_/223969396921 ↗

AWS DVA-C02 #4 StepFunctions 기본 정리

AWS DVA-C02 #4 StepFunctions 기본 정리 — #개발자의도구들 #AWS시험 #AWSDVA-C02 #DVA-c02문제 #DVA-c02덤프 참고: ExamPotic Di...

#DVA-C02#Naver Blog

#개발자의도구들 #AWS시험 #AWSDVA-C02 #DVA-c02문제 #DVA-c02덤프

​

참고: ExamPotic Disscussion

문제 찾는법 : 여기 최하단

요구사항 분석

Question #4

  • 다양한 소스에서 대용량 데이터 수집 → 여러 비즈니스 룰/변환을 순서대로 실행
  • 오류 시 재처리(재시도/보정/재구동) 가능해야 함
  • 확장성 높고 운영/유지보수 최소화

​

다음을 만족하는 솔루션?

​

A. AWS Batch

B. AWS Step Functions

C. AWS Glue

D. AWS Lambda

요구 지식

  1. Glue?
  • AWS Glue는 완전 관리형 서버리스 데이터 통합 서비스
  • 데이터를 수집,정리,변환해서 분석이나 머신러닝에 쓸 수 있는 형태로 만드는 도구
  • ETL(Extract -> Transform -> Load)
  • Extract: 다양한 데이터 소스에서 데이터 추출
  • S3, RDS, RedShift, DynamoDB, JDBC ...
  • Transform: 스키마 변환, 데이터 정제, 조인, 필터링, 집계
  • Load: 정제된 데이터를 목적지(S3, Redshifr, RDS 등)로 로드

개념 정리

Step Functio에 대한 기본정리

​

  1. 쓰는 이유
  • 여러 비즈니스 룰을 정해진 순서로 실행
  • 오류 재처리 가능
  • Retry, Catch
  • 유지 보수 최소화
  • 완전 관리형, 시각적 실행 이력/상태 트래킹 제공
  • 확장성
  • 각 단계는 Lambda/Glue/Batch/ECS 등으로 분리되어 독립적으로 확장됨

​

​

2; 기본 빌딩 블록

ASL: Amazon States Language

​

State 타입

  • Task: 실제 작업 수행
  • Choice: qnsrl
  • Parallel: 병렬 실행
  • Map: 아이템 리스트에 대한 반복 처리
  • Succeed/Fail: 종료 상태

​

  1. 통합 패턴
  • 인입 (Kinesis/S3) -> Step Functions(오케스트레이션) -> 각 단계 Lambda/Glue Job 호출
  • 규칙/변환이 코드로 짧다 -> Lambda로 작성
  • 대규모 ETL/스파크 처리 Glue Job
  • 실패시
  • Catch -> SQS(DLQ) 전송

​

  1. 살향 유형
  • Standard: 장시간/복잡 워크플로우, 실행 이력 보존/시각화 중요할 때
  • Express: 초고빈도, 저비용, 단기 실행(스트리밍/이벤트 폭주)

​

  1. 운영
  • Cloud Watch Logs/메트릭 연동, Event Bridge로 상태 변경 이벤트 발행

​

  1. 보안/IAM
  • State Machine 실행 권한(누가 시작/중지?)
  • Task 리소스 권한
  • Lambda/Glue/S3 등 호출 권한
  • 둘을 분리하여 최소권한만 적용
javascript 코드 예제
                                    {
  "StartAt": "Rule1",
  "States": {
    "Rule1": {
      "Type": "Task"
      "Resource": "arn:aws:lambda:REGION:ACCT:function:Rule1",
      "Retry": [
        { "ErrorEquals": ["States.ALL"], "IntercalSeconds": 5, "BackoffRate": 2.0, "MaxAttempts": 3 }
      ],
      "Catch": [{ "ErrorEquals": ["States.ALL"], "Next": "SendToDLQ" }],
      "Next": "Rule2"
    },
    "Rule2": {
      "Type": "Task",
      "Resource": "arn:aws:lambda:REGION:ACCT:function:Rule2",
      "Next": "Done"
    },
    "SendToDLQ": {
      "Type": "Task",
      "Resource": "arn:aws:states:::sqs:sendMessage",
      "Parameters": { "QueueUrl": "https://sqs.REGION.amazonaws.com/ACCT/dlq", "MessageBody.$": "$" },
      "End": true
    },
    "Done": { "Type": "Succeed" }
  }
}

한번 써보니 더 익숙해지는 느낌이다.