AWS Step Functions 기능
AWS Step Functions는 현대적 애플리케이션을 위한 서버리스 오케스트레이션을 제공합니다. 오케스트레이션은 워크플로를 여러 단계로 나누고, 흐름 로직을 추가하고, 단계 간의 입력과 출력을 추적하여 워크플로를 중앙에서 관리하는 기능입니다.
애플리케이션이 실행되면 Step Functions는 애플리케이션이 속한 워크플로 단계를 정확히 추적하고 애플리케이션 구성 요소 간에 전달되는 데이터의 이벤트 로그를 저장하면서 애플리케이션 상태를 유지 관리합니다. 즉, 네트워크에 장애가 발생하거나 구성 요소가 중단되더라도 애플리케이션이 중단된 당시 상태대로 다시 실행됩니다.
Step Functions를 사용하면 비즈니스 로직과 독립적으로 애플리케이션의 워크플로를 정의하고 관리할 수 있으므로 애플리케이션 개발이 더 빠르고 직관적으로 진행됩니다. 둘 중 하나를 변경해도 다른 하나에는 영향을 주지 않습니다.
여러 지점 간 통합을 관리, 모니터링 및 유지 관리하는 데 어려움을 겪지 않고도 한곳에서 워크플로를 손쉽게 업데이트하고 수정할 수 있습니다. 또한 워크플로우에서 직접 거의 모든 SaaS 애플리케이션과 쉽게 통합할 수 있습니다.
Step Functions는 함수와 컨테이너의 과도한 코드를 제거하므로 애플리케이션을 더 빠르게 작성하고 더 쉽게 복원 및 유지 관리할 수 있습니다.
Step Functions 기능은 어떤 것들이 있나요?
시각적이고 사용하기 쉬운 워크플로 구성
AWS Step Functions를 사용하면 워크플로를 상태 머신으로 정의하여 복잡한 코드를 이해하기 쉬운 명령문과 다이어그램으로 변환할 수 있습니다. 따라서 더 빠르고 쉽게 앱을 빌드하고 앱에서 원하는 기능이 구현되는지 확인할 수 있습니다. Step Functions의 작동 방식에 대해 자세히 알아보세요.
분산 애플리케이션을 위한 내장 오류 처리, 시간 초과 및 병렬 처리 흐름
AWS Step Functions는 기본 서비스 프리미티브를 구현하는 상태라는 워크플로에 미리 만들어진 단계를 제공합니다. 따라서 애플리케이션에서 해당 로직을 제거할 수 있습니다. 상태에서는 데이터를 다른 상태 및 마이크로서비스로 전달하고, 예외를 처리하고, 시간 초과를 추가하고, 결정을 내리고, 여러 경로를 병렬로 실행하는 등의 작업을 수행할 수 있습니다. 상태에 대해 자세히 알아보세요.
향상된 변수 및 페이로드 관리
AWS Step Functions는 향상된 변수 및 페이로드 관리 기능을 제공하여 애플리케이션 개발 속도를 높입니다. 이를 통해 개발자는 변수를 사용하여 Step Functions 워크플로 내에서 페이로드 데이터를 보다 쉽게 저장하고 참조할 수 있습니다. 중간 상태를 거치지 않고 워크플로의 어떤 상태의 데이터도 할당하고 참조할 수 있으므로 워크플로 상태 전반에서 페이로드 관리를 간소화할 수 있습니다. 개발자는 사용자 지정 코드의 필요성을 줄이는 JSONata와 함께 기본 제공 데이터 변환 기능을 활용하여 생산성을 높일 수 있습니다. JSONata는 날짜/시간 형식 지정과 수학 연산 같은 포괄적인 데이터 변환 기능을 추가하며, 워크플로에서 직접 데이터 조작을 수행할 수 있습니다. 또한 워크플로 또는 개별 상태 수준에서 새 워크플로와 기존 워크플로에 변수 및 JSONata를 점진적으로 도입할 수 있으며, 기존 워크플로는 변경할 필요 없이 완벽하게 작동합니다. 이러한 기능을 통해 개발자는 더 적은 수의 상태로 더 복잡하고 효율적인 워크플로를 생성하여 전체 비용을 절감할 수 있습니다.
220개의 AWS 서비스 및 1만 개 이상의 API와 직접 통합
AWS Step Functions 서비스 통합을 사용하여, 220개 이상의 AWS 서비스를 직접 호출하도록 Step Functions 워크플로를 구성할 수 있습니다. 여기에는 다음이 포함됩니다.
- 컴퓨팅 서비스(AWS Lambda, Amazon ECS, Amazon EKS 및 AWS Fargate)
- 데이터베이스 서비스(Amazon DynamoDB)
- 메시징 서비스(Amazon SNS 및 Amazon SQS), 데이터 처리
- 분석 서비스(Amazon Athena, AWS Batch, AWS Glue, Amazon EMR 및 AWS Glue DataBrew)
- 생성형 AI 및 기계 학습 서비스(Amazon SageMaker, Amazon Bedrock)
- Amazon API Gateway에서 생성된 API
서비스 통합에 대해 자세히 알아보세요.
워크플로우에서 거의 모든 SaaS 애플리케이션과 직접 통합
AWS Step Functions HTTPS 엔드포인트 통합을 사용하면 HTTP 기반 서비스를 워크플로에 직접 통합할 수 있습니다. AWS 서비스와 SaaS 애플리케이션으로 구성된 다단계 워크플로를 단일 위치에서 구축, 관리 및 조정할 수 있습니다. HTTPS 엔드포인트 통합을 사용하면 사용자 지정 코드를 작성하거나 추가 인프라를 유지할 필요 없이 애플리케이션의 다양한 구성 요소를 쉽게 조정하고, 인증을 관리하고, 통합을 테스트하고, 오류를 처리할 수 있습니다. HTTPS 엔드포인트 통합을 통해 개발자 민첩성이 향상되고 비즈니스를 지원하는 SaaS 애플리케이션의 기능을 쉽게 확장할 수 있습니다.
분산된 구성 요소의 조정
AWS Step Functions는 호스팅 위치(예: Amazon EC2 인스턴스, 모바일 디바이스 또는 온프레미스 서버)와 상관없이 HTTPS 연결이 가능한 모든 애플리케이션을 조정할 수 있습니다. Step Functions를 사용하면 AWS 서비스와 자체 마이크로서비스를 활용하는 분산 애플리케이션을 빠르게 만들 수 있습니다. 활동 작업에 대해 자세히 알아보세요.
구성 요소 재사용은 강력하고 효율적인 애플리케이션 개발을 가능하게 합니다.
AWS Step Functions를 사용하면 기존 Lambda 함수와 마이크로서비스를 강력한 애플리케이션으로 조정하고 이를 새로운 조합에 빠르게 재연결할 수 있습니다. 워크플로의 작업은 인스턴스, 컨테이너, 함수, 모바일 디바이스 등 어디서나 실행할 수 있습니다. 기존 애플리케이션 구성 요소를 재사용하는 방법을 알아보세요.
워크플로 로직 분리를 통한 개발 주기 단축
AWS Step Functions는 애플리케이션 로직을 애플리케이션 구현과 엄격하게 분리된 상태로 유지합니다. 비즈니스 로직을 변경하지 않고도 단계를 추가, 이동, 교체 및 재정렬할 수 있습니다. 이러한 문제의 분리를 통해 워크플로를 모듈화하고 워크플로의 유지 관리를 간소화하며 워크플로의 확장성과 코드 재사용을 지원할 수 있습니다.
상태 관리 및 워크플로 진행 상태 추적 기능 내장
AWS Step Functions는 애플리케이션의 실행 단계를 추적하고 워크플로의 단계 간에 이동하는 데이터를 저장하는 등 실행 중에 애플리케이션의 상태를 유지 관리합니다. 즉, 데이터 스토어를 사용하거나 모든 작업에 복잡한 상태 관리를 내장하여 상태를 직접 관리할 필요가 없습니다.
오류 처리 기능 내장
AWS Step Functions는 작업을 완료하는 데 몇 초가 걸리든 아니면 몇 달이 걸리든 관계없이 내장된 시도/캐치 및 재시도 기능을 통해 오류와 예외를 자동으로 처리합니다. 실패하거나 시간이 초과된 작업을 자동으로 재시도하고, 다양한 유형의 오류에 다르게 대응하며, 지정된 정리 및 복구 코드로 폴백하여 정상적으로 복구할 수 있습니다. Step Functions 오류 처리에 대해 자세히 알아보고, 상태 머신을 사용하여 오류 상태를 처리하는 방법을 알아보세요.
감사 가능한 실시간 워크플로 실행 기록
AWS Step Functions는 실시간 진단 및 대시보드를 제공하고, Amazon CloudWatch 및 AWS CloudTrail과 통합되며, 전체 상태, 실패한 단계, 입력 및 출력을 비롯한 모든 실행 관련 정보를 기록합니다. 문제가 발생할 경우, 발생 위치뿐만 아니라 이유를 신속하게 파악하여 장애를 빠르게 해결하고 완화할 수 있습니다. Step Functions 모니터링 및 로깅에 대해 자세히 알아보세요.
모니터링 및 문제 해결을 위한 시각적 운영자 대시보드
애플리케이션을 시작하는 것은 버튼을 누르는 것만큼 간단하고 그런 다음 단계가 실행되는 것을 시각적으로 보면 되므로 모든 것이 의도대로 정상적으로 동작하는지 신속하게 확인할 수 있습니다. 콘솔은 오류를 명확하게 표시하므로 신속하게 근본 원인을 찾아 문제를 해결할 수 있습니다.
고가용성 및 내결함성 워크플로
AWS Step Functions는 기본적으로 내결함성을 갖추고 있고 각 리전의 여러 가용 영역에서 서비스 용량을 유지 관리하므로 개별 시스템이나 데이터 센터에 장애가 발생해도 애플리케이션을 보호할 수 있습니다. 따라서 서비스 자체와 서비스가 운영하는 애플리케이션 워크플로에서 모두 고가용성을 유지할 수 있습니다.
규모 조정이 가능한 서버리스 솔루션
AWS Step Functions는 변화하는 워크로드에 대응하여 애플리케이션의 단계를 실행할 수 있도록 작업과 기본 컴퓨팅을 자동으로 확장합니다. Step Functions는 자동으로 확장되므로 요청 빈도가 증가하더라도 애플리케이션 워크플로의 성능이 일관되게 유지될 수 있습니다.
IoT 및 데이터 모으기와 같은 이벤트 처리 워크플로를 위한 대용량 오케스트레이션
AWS Step Functions는 Express Workflows를 추가합니다. Express Workflows는 초당 10만 건 이상의 이벤트 속도를 지원하므로 대용량의 단기 워크플로를 구축할 수 있습니다.
Express Workflows는 100개 이상의 AWS 서드 파티 SaaS 이벤트 소스에서 발생하는 AWS Lambda 함수 간접 호출, AWS IoT 규칙 엔진 작업 및 Amazon EventBridge 이벤트를 조정할 수 있습니다.
Step Functions 사용 사례 페이지에서 Express 및 Standard 워크플로에 대해 자세히 알아보고 샘플 자동화 아키텍처에서 이러한 워크플로를 사용하는 방법을 알아보세요.
대규모 병렬 프로세싱
Step Functions는 Amazon S3에 저장된 이미지, 로그 또는 CSV 파일과 같은 객체를 반복한 다음 수천 개의 병렬 워크플로를 시작 및 조정하여 데이터를 처리할 수 있습니다. 수천 개의 동시 워크플로 실행을 보다 빠르고 쉽게 확장하여 수백만 개의 로그를 분석하고, 테라바이트 이상의 데이터를 반복하거나, 문서, 이미지 및 비디오 파일을 처리할 수 있습니다. 대규모 병렬 워크플로를 구축하기 위한 Step Functions 맵 상태에 대해 자세히 알아보세요.
보안
AWS Step Functions는 AWS Identity and Access Management(IAM)와 통합되며, 워크플로에 사용되는 모든 리소스에 대해 최소 권한 IAM 정책을 권장합니다. Step Functions는 AWS PrivateLink를 사용하여 VPC 엔드포인트(VPCE)를 지원합니다. 퍼블릭 인터넷을 거치지 않고도 VPC 지원 AWS Lambda 함수 및 기타 AWS 서비스에서 AWS Step Functions에 액세스할 수 있습니다. Step Functions 보안 및 인증에 대해 자세히 알아보세요.
규정 준수
AWS Step Functions는 HIPAA 적격 서비스이며, 개인 건강 정보(PHI)와 같은 의료 관련 정보가 포함된 애플리케이션에 사용할 수 있습니다. Step Functions는 SOC(시스템 및 조직 제어) 조치도 준수하며, 이러한 서드 파티 감사 결과는 AWS SOC 규정 준수 사이트에서 확인할 수 있습니다. AWS Step Functions는 다른 일반적인 규정 준수 표준도 준수합니다. AWS 클라우드 보안 사이트를 참조하여 규정 준수 범위를 알아보세요.
사용량에 따른 요금
AWS Step Functions의 경우 특정 상태에서 다음 상태로 전환할 때마다 요금이 부과됩니다. 각 상태가 유지된 기간에 관계없이(최대 1년) 상태 전환에 따라 청구 금액이 정산되며 유휴 시간에 대해서는 요금이 청구되지 않습니다. 따라서 Step Functions는 몇 건의 실행에서 수천만 건의 실행까지 비용 효율적으로 확장할 수 있습니다. Step Functions 요금에 대해 자세히 알아보세요.