목록 보기
비트윈의 멀티티어 아키텍처를 위한 프레젠터 이야기
아키텍처

비트윈의 멀티티어 아키텍처를 위한 프레젠터 이야기

타다
타다
2015년 11월 30일

두줄요약

ELB의 장기 대량 TCP 연결과 프로토콜 복잡성 문제를 해결하기 위해 프레젠터 게이트웨이를 구축했습니다. TCP 멀티플렉싱, C++ 연결 처리, Route53 가중치 라우팅으로 성능과 운영성을 확보했습니다.

문제 상황

  • 클라이언트가 ELB를 거쳐 채팅 서버에 직접 TCP 연결하던 구조의 복잡한 서버 선택 과정
  • PC 버전·푸시 서버 대응을 위한 장기 대량 연결, SSL 핸드셰이크 성능, ELB 스케일링 한계

구조와 흐름

  • 인증 패킷 기반 샤드 판별 후 동일 채팅 서버로 패킷을 중계하는 프레젠터 게이트웨이
  • 다수의 클라이언트 TCP 연결을 소수의 내부 연결로 처리하는 Multiplexing Protocol과 Stream 추상화
  • Route53 DNS Round Robin 및 가중치 라우팅으로 프레젠터 연결 분산

선택 이유

  • OpenSSL·libevent 기반 folly 활용으로 C++ 연결 유지 모듈 구성
  • Netty·Alfred 기반 Java 로직 모듈 분리로 인증 처리와 릴레이 담당
  • 이후 패킷의 무파싱 단순 릴레이로 API 변경 시 프레젠터 업데이트 최소화

성능/운영 포인트

  • SSL Session Ticket 등 네트워크 최적화 기술의 직접 적용 가능성
  • 연결 수와 CPU 사용량을 반영한 Route53 가중치의 주기적 갱신
  • AutoScaling Group LifeCycleHook 기반의 연결 소진 후 안전한 스케일 인

다음 읽기

#AWS 주제를 이어서 읽기

비트윈 시스템 아키텍처

비트윈의 HTTP·TCP 채팅 서비스와 커플 단위 샤딩 기반 아키텍처를 설명했습니다. 다계층 구조와 HBase 트랜잭션으로 확장성·장애 격리를 개선하는 방향을 제시했습니다.

타다
타다
아키텍처
전체 보기

댓글 0개

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...