지예환Ewan Jee
프로젝트 목록
외부 요청예전 외부 파드API Gateway서비스응답 비교 불일치 4 → 0대시보드 2개, 52패널10 → 30 → 70 → 100%준비 시점 15초 → 35초

6 / 6. 100% 구간 약 1,600만 요청 중 서버 오류는 1건이었고, 예전 외부 파드는 개발, 알파, 운영 환경 모두 0개로 줄였습니다.

무신사: Retention 팀

API Gateway 단계 전환

2026.06 ~ 2026.08, 전환 계획과 실행 리드

  • 23개7일 동안 옮긴 공개 API
  • 1건100% 구간 약 1,600만 요청 중 서버 오류
  • 0개예전 외부 파드(개발

공개 API 23개와 라우트 규칙 26개를 7일에 걸쳐 10%, 30%, 70%, 100%로 API Gateway에 옮겼고, 100% 구간 약 1,600만 요청 중 서버 오류는 1건이었습니다. 전환 뒤에는 개발, 알파, 운영 환경의 예전 외부 파드를 0개로 줄였습니다.

문제

공개 API 23개와 라우트 규칙 26개로 들어오는 외부 요청이 예전 외부 파드를 거쳐 서비스로 가고 있었고, 이 길을 API Gateway로 옮겨야 했습니다.

운영 트래픽이 흐르는 중에 길을 바꾸는 일이라, 문제를 “트래픽을 한 번에 옮기지 않고, 단계마다 확인하고 되돌릴 수 있게 옮긴 뒤 예전 길을 치우는 것”으로 정했습니다.

접근

결정

결과

기록과 자동화

배운 점

  1. 위험한 전환 전에는 관측 대시보드부터 만듭니다.
    • 상황: 공개 API 23개와 라우트 규칙 26개를 운영 트래픽이 흐르는 중에 옮겨야 했습니다.
    • 한 일: 전환 전용 대시보드 2개(52패널)를 첫 전환 PR보다 4시간 12분 먼저 만들었습니다.
    • 결과: 7일 만에 100%까지 옮겼고, 100% 구간 약 1,600만 요청 중 서버 오류는 1건이었습니다.
  2. 경로를 옮기기 전에 새 경로와 예전 경로의 응답이 같은지부터 비교합니다.
    • 상황: 26개 경로를 게이트웨이로 옮겨야 했습니다.
    • 한 일: 두 경로의 응답을 비교하는 검증을 첫 단계로 두었습니다.
    • 결과: 불일치 4건을 찾아 0건으로 만든 뒤 전환했습니다.
  3. 트래픽 경로를 바꾼 뒤 이상이 생기면, 내가 한 작업보다 배포 이벤트가 난 시각부터 대조합니다.
    • 상황: 전환 중 배포가 끝나지 않고 멈췄고, 트래픽 라우팅 경고가 약 900건 쌓였습니다.
    • 한 일: 처음에는 직접 실행한 수동 동기화를 원인으로 설명했지만, 경고가 처음 난 시각을 다시 대조해 다른 라우트 교체 PR이 적용되고 45초 뒤였음을 찾았습니다.
    • 결과: 설명을 바로잡고 교정 PR 2건으로 복구했습니다.
  4. 되돌리는 길도 운영 전에 한 번 실행해 봅니다.
    • 상황: 운영 트래픽을 옮기기 전에, 문제가 생기면 되돌릴 수 있는지 확인해야 했습니다.
    • 한 일: 알파 환경에서 100%로 옮긴 뒤 약 1시간 21분 만에 계획된 롤백을 실행했습니다.
    • 결과: 되돌리는 순서를 확인한 뒤 운영 트래픽을 10%부터 옮겼습니다.