1️⃣ 파일 스토리지 

서버가 1대일 때는 로컬 디스크에 파일 저장해도 문제 없습니다.

하지만 2대가 되면:

  • WAS1에 업로드
  • 다음 요청은 WAS2로 라우팅
  • 파일 없음 → 오류

해결 방법

  • S3 같은 오브젝트 스토리지
  • EFS 같은 공유 스토리지
  • 최소한 공통 마운트 경로

👉 실무에서 세션보다 파일 문제로 장애나는 경우가 많습니다.


2️⃣ DB 커넥션 수

서버가 2대가 되면:

  • DB 커넥션 풀도 2배
  • Auto Scaling이면 순간적으로 3~4배

DB max_connections 초과로 장애 발생 가능.

체크 포인트

  • HikariCP maxPoolSize
  • RDS max_connections
  • 커넥션 사용 패턴

3️⃣ 캐시 일관성

서버 메모리 캐시 사용 시:

  • WAS1 캐시
  • WAS2 캐시

데이터 불일치 발생.

해결

  • Redis 등 외부 캐시 사용
  • 로컬 캐시는 TTL 짧게

4️⃣ 스케줄러/배치 중복 실행

Spring @Scheduled 같은 작업이 있다면:

서버 2대에서 동일 작업이 동시에 실행됩니다.

예:

  • 만료 세션 정리
  • 예약 상태 갱신
  • 정산 배치

해결

  • 분산 락 (Redis, DB lock)
  • Leader election
  • 별도 배치 서버 분리

👉 이거 고려 안 하면 이중화 후 바로 사고 납니다.


5️⃣ 로그/모니터링

서버가 1대일 때는 로그 파일 하나만 보면 됩니다.

2대 이상이면:

  • 로그 중앙 수집 필요
  • 장애 시 어느 서버 문제인지 파악 필요

최소 구성

  • 중앙 로그 수집
  • 헬스체크 모니터링
  • 5xx 알람

6️⃣ 환경 변수 / 암호화 키

서버 간 다음 값이 동일해야 합니다:

  • JWT secret
  • 세션 암호화 키
  • 쿠키 서명 키
  • SSO 관련 키

다르면 서버 간 인증 불일치 발생.


7️⃣ 트랜잭션 / 동시성

특히 예약/정산 시스템이라면:

  • 중복 요청
  • 동시 처리
  • 재시도 정책

이중화되면 동시성 이슈가 더 자주 드러납니다.


8️⃣ 배포 전략

서버 2대 이상이면:

  • 무중단 배포?
  • 롤링?
  • 블루그린?

DB 마이그레이션 전략도 포함됩니다.


📌 정리

이중화 시 고려해야 할 핵심은:

  1. 세션
  2. 파일
  3. 캐시
  4. 배치/스케줄러
  5. DB 커넥션
  6. 환경 키 일관성
  7. 모니터링
  8. 배포 전략

한 줄 요약

클라우드에서 서버 이중화는 인프라 설정이 아니라
애플리케이션 상태와 운영 전략의 문제다

LIST

+ Recent posts