-
Notifications
You must be signed in to change notification settings - Fork 0
4. System Architecture & Purchase Flow
YeeunJ edited this page Jun 11, 2025
·
9 revisions

퍼블릭 서브넷에 위치한 유일한 인스턴스로, 외부에서 SSH 접속 및 CI/CD 파이프라인을 실행합니다.
Jenkins와 함께 Nginx를 이용해 외부 요청을 내부 App 서버로 프록시합니다.
사용자 인터페이스로, 브라우저나 모바일 앱에서 HTTP 요청을 보냅니다.
애플리케이션 서버(EC2)로 트래픽을 분산하고 헬스체크를 수행합니다.
Spring Boot 애플리케이션이 구동되며, 비즈니스 로직을 처리합니다.
예약·선착순 이벤트를 메시지 큐로 발행·소비하는 분산 로그 시스템입니다.
인기 상품 랭킹과 선착순 재고 차감 같은 인메모리 데이터 처리를 담당합니다.
회원·상품·주문·예약 등 영속성을 가진 데이터를 저장하는 관계형 데이터베이스입니다.
S3 Bucket 상품·브랜드·리뷰 이미지 파일을 저장하고, presigned URL로 안전하게 제공됩니다.


API 호출 시 DB에서 재고를 즉시 차감하고, 주문 테이블에 레코드 삽입


API 호출 시 ‘PENDING’ 상태로 예약을 DB에 저장하고 Kafka 이벤트 발행
예약 마감 시점에 소비자가 재고 차감 후 예약 상태를 ‘CONFIRMED’/‘FAILED’로 업데이트


API 호출 시 Redis에서 재고를 원자적으로 차감하여 즉시 성공/실패 응답
성공 시 Kafka 이벤트 발행 후, 백그라운드에서 주문을 DB에 삽입