AWS EventBridge -> Quartz + Spring Batch + AWS SQS 변경 하는 이유

러블리소피·2024년 12월 27일

AWS EventBridge에서 Quartz, Spring Batch, AWS SQS로 배치 처리 시스템을 변경하려는 이유

1. 분산 처리

AWS EventBridge는 주로 이벤트 기반 시스템에서 이벤트 흐름을 관리하는 데 사용됩니다. EventBridge는 이벤트를 처리할 수 있지만, 분산된 환경에서 여러 노드나 서버 간의 작업 처리에는 적합하지 않을 수 있습니다.

Quartz + Spring Batch + AWS SQS는 분산 환경에서 배치를 효율적으로 처리하는 데 더 유리한 구조를 제공합니다. 특히, Spring Batch는 대규모 배치 작업을 분산하여 여러 서버에서 병렬 처리할 수 있게 하여 성능과 처리 속도를 개선할 수 있습니다. AWS SQS는 메시지 큐 시스템을 통해 분산 처리된 작업들을 큐로 관리하여, 시스템의 부하를 분산시키고 처리량을 높일 수 있습니다.

2. 배치 처리 관리

EventBridge는 이벤트 중심의 아키텍처를 지원하지만, 배치 처리나 대규모 데이터 처리의 로직을 구현하는 데 필요한 세밀한 제어는 제공하지 않습니다.

Spring Batch는 대규모 데이터 처리를 위한 프레임워크로, 배치 작업을 단계별로 나누어 처리하고, 실패한 작업을 재시도하거나 롤백할 수 있는 기능을 제공합니다. 이로 인해 배치 처리 시스템에서 발생할 수 있는 다양한 오류를 효과적으로 관리할 수 있습니다.

3. 확장성과 신뢰성

AWS EventBridge는 기본적으로 이벤트가 발생할 때마다 즉시 처리가 이루어지므로 실시간성에 적합하지만, 확장성과 신뢰성을 제공하는 데는 제한이 있을 수 있습니다.

AWS SQS는 높은 확장성과 내구성을 제공하여, 메시지를 큐에 안전하게 저장하고 여러 처리 시스템에서 분산 처리할 수 있도록 돕습니다. 이를 통해, 대규모 시스템에서도 안정적으로 배치 작업을 수행할 수 있습니다.

4. 로그 및 모니터링

EventBridge는 이벤트 처리 후 그 자체로 로그를 제공하지만, 세부적인 배치 작업의 진행 상태나 오류에 대한 추적이 어려울 수 있습니다.

Quartz, Spring Batch, AWS SQS를 사용하면 배치 작업의 각 단계에 대해 로그를 세밀하게 추적하고, 실패한 작업이나 경고를 쉽게 모니터링할 수 있습니다. Spring Batch는 배치 작업에 대한 로그를 자동으로 기록할 수 있는 기능을 제공하며, AWS SQS는 실패한 메시지를 DLQ(Dead Letter Queue)에 보관하여 나중에 문제를 진단할 수 있도록 합니다.

5. 성능 최적화

AWS EventBridge는 이벤트 기반 처리가 중심이므로, 배치 처리에 필요한 성능 최적화를 위해서는 추가적인 설정이 필요할 수 있습니다.

Spring Batch + AWS SQS를 활용하면, 배치 작업을 분할하여 병렬로 처리하거나, 큐에서 메시지를 처리하는 시스템을 병렬화하여 성능을 최적화할 수 있습니다. 또한, 배치 작업에 대한 모니터링과 트래킹을 통해 성능 이슈를 빠르게 파악하고 해결할 수 있습니다.

결론

AWS EventBridge에서 Quartz, Spring Batch, AWS SQS로 변경하는 주된 이유는 분산 처리 능력, 배치 작업 관리 및 로그 추적, 확장성 및 신뢰성, 성능 최적화 등을 통해 배치 시스템의 효율성과 안정성을 높이기 위해서입니다. 이 조합은 배치 처리 시스템에서 발생할 수 있는 문제를 보다 체계적으로 관리할 수 있는 장점을 제공합니다.

profile
발전하는 개발자가 되고싶어요

0개의 댓글