현재 아키텍처는 로드 밸런서가 적용되어 있으며, 라운드로빈 방식으로 EC2 서버에 트래픽을 배정하고 있습니다. 이에 따른 문제와 질문은 다음과 같습니다.


문제:
채팅 요청이 많아져 서버를 증설할 경우, 1번 채팅방에 연결된 클라이언트들이 서로 다른 서버에 할당됩니다. 예를 들어, 클라이언트 A는 서버 A에 연결되고, 클라이언트 B는 서버 B에 연결됩니다. 하지만 두 클라이언트는 동일한 1번 채팅방에 속해 있음에도 불구하고 서로에게 메시지를 전송할 수 없습니다.


잠정적 해결책:
Nginx에서 특정 채팅방 토픽마다 고정된 서버로 라우팅을 설정하면, 이 문제를 일시적으로 해결할 수 있습니다. 그러나, 이 방법은 매번 서버 설정을 변경할 때마다 Nginx 설정 파일을 수정해야 하므로 비효율적입니다.


질문:

서버가 여러 대로 분산되었을 때, Nginx가 각기 다른 서버로 트래픽을 분배해도 모든 클라이언트가 동일한 채팅방에서 정상적으로 채팅을 주고받을 수 있는 방법은 무엇인가요?