ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Chat Server 분석
    Back-End/ETC 2021. 9. 7. 21:56

    채팅서버 구현 방향성을 살펴 보기위해 몇가지 방안 비교 (지극히 주관적)

    - 채팅은 양방향 통신을 위해 소켓(Socket) 통신을 해야한다. 큐 시스템은 추후에 고려

    1. AWS Serverless ( API GW(socket) + Lambda + DynamoDB)

    • 장점 
      • 서버리스 구조로 구축해 두면 운영과정에서 좀 더 유연함 및 편리함
    • 단점
      • 사용 환경에 따라 WebSokcet 비용이 많이 나갈 수 있다.
      • Read/Write에 비례하여 DynamoDB 비용 상승확률이 높아짐
    • API GW (WebSocket API)
      • 소개 - https://docs.aws.amazon.com/ko_kr/apigateway/latest/developerguide/apigateway-websocket-api-overview.html 
      • 비용예시 
      •   
        채팅 애플리케이션: 1,000명의 사용자가 하루 기준 12시간 동안 채팅 애플리케이션에 연결됩니다. 각 사용자는 하루 기준 100개의 메시지를 보내고, 500개의 메시지를 받습니다. 각 메시지 크기는 3KB입니다.
        아래 예제는 미국 동부(버지니아 북부)의 요금을 보여 줍니다.
        메시징 요금
        매달 총 메시지 수 = (100(보낸 메시지) + 500(받은 메시지)) * 1000(사용자) * 30(일) = 1800만 개
        총 메시징 요금 = 18,000,000/1,000,000 * 1.00 USD(백만 개 기준) = 18 USD
        연결 요금
        매달 총 연결 시간(분) = 1000(사용자) * 12(시간) * 60(분) * 30(일) = 21,600,000
        총 연결 요금 = 21,600,000/1,000,000 * 0.25 USD(백만 개당 요금) = 5.40 USD
        총 요금 = 18 USD(메시징 요금) + 5.40 USD(연결 요금) = 23.40 USD
        https://aws.amazon.com/ko/api-gateway/pricing/
    • Lambda * 3 ( onConnect , sendMessage, onDisconnect )
      • 비용
      • 함수에 512MB 메모리를 할당하고 한 달에 3백만 회 실행하며 매번 1초간 실행되었다면 요금은 다음과 같이 계산됩니다.
        월별 컴퓨팅 요금
        월별 컴퓨팅 요금은 GB-초당 0.00001667 USD이고 프리 티어에서 400,000GB-초를 제공합니다.
        총 컴퓨팅(초) = 3M * (1초) = 3,000,000초
        총 컴퓨팅(GB-초) = 3,000,000 * 512MB/1024 = 1,500,000GB-초
        총 컴퓨팅 – 프리 티어 컴퓨팅 = 월별 청구 대상 컴퓨팅 GB-초
        1,500,000GB-초 – 400,000 프리 티어 GB-초 = 1,100,000GB-초
        월별 컴퓨팅 요금 = 1,100,000 * 0.00001667 USD = 18.34 USD
         
        월별 요청 요금
        월별 요청 요금은 1백만 회 요청당 0.20 USD이고 프리 티어에서 월별 1백만 회 요청을 제공합니다.

        총 요청 수 – 프리 티어 요청 수 = 월별 청구 대상 요청 수
        3백만 회 요청 – 1백만 회 프리 티어 요청 = 2백만 회 월별 청구 대상 요청
        월별 요청 요금 = 2백만 회* 0.2 USD/월 = 0.40 USD
         
        총 월별 요금

        총 요금 = 컴퓨팅 요금 + 요청 요금 = 18.34 USD + 0.40 USD = 월별 18.74 USD
        https://aws.amazon.com/ko/lambda/pricing/
    • DynamoDB
    • Ref

     

     

    2. Serverless + Redis 버전 ( 1번에서 dynamoDB -> Redis ( Amazon ElastiCache))

    • 장점
      • 사용량이 많을 경우 db사용시 보다 비용 효과적일 수 있다.
        • R/W 성능 및 네트워크 성능에 따라 다르다
    • 단점
      • Redis 유지비용 ( 클러스터를 위해 최소 2대이상)
        • 사용량이 적을경우 낭비가 심할 수 있다.
        • 24시간 켜져 있어야 한다.
      • 인프라 관리를 위해 추가 노력이 필요 ( 관련 vpc 구축 및 장애대책 플랜 등)

     

    3. Node EC2 Server + Redis

    • 장점
      • 최저 인스턴스 사용이라면 비용이 적을 수 있다.
    • 단점
      • 서비스가 커질수록 유지 및 관리가 힘들다. (비용 및 안정성)

     

    'Back-End > ETC' 카테고리의 다른 글

    Jenkins + Unity  (0) 2022.01.09
    Jenkins + GitHub  (0) 2022.01.08
    Github Action + Unity  (0) 2021.11.21
    리더보드 (Ranking) 서버  (0) 2021.08.26
    Serverless.yml simple example  (0) 2021.08.21
Designed by Tistory.