Skip to content

[Experiment/V2] 이미지 처리 비동기 전환 #76

@seonghooncho

Description

@seonghooncho

배경

v1에서는 Spring 요청 경로에서 이미지 압축/업로드를 직접 수행한다.
다음 단계인 v2에서는 같은 압축 정책과 같은 실험 환경을 유지한 채, 이미지 처리를 요청 경로 밖으로 분리해 비동기 방식의 효과를 정량 비교해야 한다.

상위 이슈:

선행 단계:

목표

  • POST /posts 요청 경로에서 이미지 처리 제거
  • SQS + Lambda 기반 비동기 이미지 처리 도입
  • POST /posts p95, Spring CPU, image completion latency p95, SQS oldest message age 측정 가능 상태 확보

구현 범위

  • SQS Standard Queue 추가
  • Lambda 추가
  • Spring은 게시글 저장 후 이미지 처리 요청 메시지 발행
  • Lambda는 temp 이미지 다운로드 -> 압축 -> 썸네일 생성 -> 최종 업로드 수행
  • 게시글 상태를 PENDING -> COMPLETED | FAILED로 갱신
  • completion latency 측정 가능하도록 최소 상태/시간 필드 유지

고정 조건

다음 항목은 v1과 동일하게 유지한다.

  • App EC2 타입
  • k6 EC2 타입
  • Java / JVM 옵션
  • Mongo 환경
  • 테스트 이미지 세트
  • 압축 정책
  • 대표 시나리오
  • 리전

핵심 지표

  • POST /posts p95
  • API error rate
  • Spring CPU
  • image completion latency p95
  • SQS oldest message age

대표 시나리오

  1. Medium / 10 RPS steady
  2. Heavy / 20 RPS steady
  3. 5 -> 30 RPS burst

완료 조건

  • 요청 경로에서 이미지 처리가 제거된다
  • Lambda가 동일 압축 로직으로 이미지 처리를 수행한다
  • 대표 시나리오 3종을 동일 조건으로 재실행할 수 있다
  • 태그 exp-v2-async 기준으로 결과를 기록할 수 있다

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions