- 부하를 분산 시키기 위해 2대의 WAS(Tomcat) 서버를 배포
- 2대의 WAS는 동일한 컨텐츠를 응답하며 서버 처리량이 다르지 않다고 판단해 Nginx의 기본 로드 밸런싱 알고리즘인 Round Robin으로 선택
- 세션을 고정할 방법을 고민
- Nginx의 ip_hash 로드밸런싱 알고리즘
- Tomcat 자체 세션 클러스터링
- Redis 세션 클러스터링
- 각 방식의 장단점을 고려해 Redis 세션 클러스터링을 선택
- 1GB 메모리 서버에 Redis 1대, Tomcat 2대, Nginx 1대 구축으로 메모리 부족 현상 발생
- 한정된 자원 속에서 안정적인 서비스를 위해 메모리 스와핑 설정
- Ubuntu 공식 문서를 통해 권장 크기인 2GB로 설정
- 게시글 등록과 게시글의 이미지 등록이 하나의 API를 통해 이루어지던 상황
- 통합된 API는 게시하려는 이미지가 증가할수록 API Latency가 증가하는 문제 발생
- 이미지 등록과 게시글 등록 API 분리를 결정
- API를 분리 후 Latency 개선
- API 분리 이전 [933ms] -> API 분리 이후 [110ms] (이미지 7개 등록 기준)
- 게시글 작성 중 이미지를 S3에 먼저 등록하기 때문에 게시글 등록을 완료하지 않으면 S3에 소유자가 없는 이미지가 누적되는 문제 발생
- S3 폴더 도입과 생명주기 설정을 통해 문제 해결
- 임시 폴더와 원본 폴더를 생성하고 임시 폴더에 남아있는 소유자 없는 이미지는 생성일 기준 24시간 뒤 자동으로 삭제되도록 S3 생명주기 설정으로 문제 해결
- Main
- Board List
- Board Create
- Board Detail




