면접을 본 곳에서 대량 발송 처리를 위한 Messaging System 아키텍쳐 구성도를 과제로 요청을 해서 만들어 봤습니다.
과거에 msp 업무를 진행하면서 이런 서비스를 구성 해본적이 경험이 없어 많이 고민을 했습니다.
주로 했던 고민에 첫번째는 다양한 메시지 서비스 (RabbitMQ, Apache Kafka, SQS) 들이 있는데 어떤 서비스를 사용 할 것인가 ?
두번째는 사용을 해본적이 없어 해당 구성도를 그려도 되는가? 를 가장 고민을 했습니다.
요청 사항
- 1,000 TPS 처리 가능하여야 함
- 발송 전에 회원 검증, 과금, 템플릿 검수 등 내부 로직이 수반 되어야 함
- 발송 이후 고객에게 성공 유무를 전송하여야 함.
결과물
* SQS FIFO를 높은 처리량 모드 변경이 필요합니다.
* FIFO 대기열 값으로 오토 스케일링 설정합니다.
* 구성도에서는 FIFO 대기열을 1개만 존재하지만 SNS 와 SQS를 같이 사용하여 팬 아웃 구조로 사용하여 서비스 속도를 증가할 수 있을 것 같습니다.
* 성공 여부를 어떤 방식으로 전송하는 기준이 정확지 않아서 SNS 서비스를 사용하였습니다.
후기
1. 조금 더 다양한 서비스 workshop, awsskillbuilder 을 진행하면서 구성을 이해하는 노력이 필요하다.
2. 다양한 서비스가 합쳐지면 요구사항에 "1,000 TPS 처리" 가능 할까? 어떻게 측정해야되는가??
'etc.' 카테고리의 다른 글
[DNS]네이버 클라우드 스터디 (0) | 2023.04.03 |
---|---|
[git] 특정 브랜치 지정해서 clone (0) | 2023.03.14 |
AWS SAA-C03 합격 후기 (0) | 2023.01.27 |
[참석 후기] AWSKRUG 보안 소모임 온라인 밋업 (0) | 2022.12.21 |
chat.openai 후기 (0) | 2022.12.06 |