20190122

서버 N대 성능

Scalability

  • Scale Up : 기존 서버의 성능을 향상
  • Scale Out : 서버의 수를 n대로 늘려서 성능을 향상

SPOF

  • Single Point Of Failure
  • 한 부분이 죽으면 서버 전체가 죽는 포인트
  • 해당 포인트를 전부 제거하기는 어렵다
    • 내 서비스가 어느정도까지 SPOF를 제거해야 하는지에 대한 고려가 필요하다

DB Master/Slave

  • Master의 문제를 대비하기 위하여 Master의 복제본 Slave를 운영하는 방식

  • Failover
    • Master에 문제가 있을 때, Slave를 Master로 변경한다
  • Failback
    • Master의 문제가 해결되었을 때, 다시 Master의 자리를 회복한다

Load Balancing

  • Load Balancer 가 갖는 고유한 IP
    • VIP(Virtual IP)
  • DNS는 Domain Name과 해당 IP를 맵핑
  • ex) L4, L7, HAPoxy

  • reverse proxy
    • 클라이언트가 proxy에 request
    • 즉, 클라이언트는 최종목적지 주소를 모른다
  • forward proxy
    • 클라이언트가 목적지로 request
    • proxy가 대신 요청
    • 즉, 클라이언트가 최종목적지 주소를 알고있다

Session Problem

  • Sticky session
    • 한 번 접속한 서버로만 계속 접속하는 로드밸런싱
    • 가장 많이 사용되는 방식, load balancer(L7)가 알아서 해주기에 편리함
  • Session clustering
    • 여러대의 서버가 세션을 복제하여 갖는다
    • 서버 대수가 많아지면 data sync 맞추기 어렵다
  • Global session
    • session을 갖는 별도의 서버

Cache Problem

  • Global cache
    • 모든 노드가 동일한 하나의 캐시공간을 공유
    • 보통 해당 Cache 서버는 NoSQL 서버를 사용하고 일반적으로 Redis 등을 이용하며, 일반적으로 Cache 서버는 RAM이 거대한 특성이 있다
  • Distributed cache
    • 각각의 노드가 각각 캐시 데이터를 갖고 있다
    • 다만 모든 노드가 전체 캐시를 전부 갖는 것이 아니라, 전체 데이터의 일부를 나눠 갖고 있다
    • 데이터 참조시 자신의 캐시에 없을 경우 다른 캐시를 확인해보는 방식으로 동작한다