01. 사용자 수에 따른 규모 확장성

2025. 10. 5. 16:20·공부기록/CS

로드밸런서 - 웹 계층의 자동 복구 (Failover)와 다중화(Redundancy) 방안

로드밸런스 (부하 분산기)

부하 분산 집합에 속한 웹 서버들에게 트래픽 부하를 고르게 분산하는 역할을 한다.

사용자 -> 서버로 다이렉트 접속이 아닌,

사용자 -> 로드밸런서 -> 서버로 접속하게 된다.

 

이렇게 되면 서버에 대규모 트래픽이 몰릴 때, 서버가 다운 될 때

사용자가 웹 사이트 자체에 접속이 안되는 상황을 막을 수 있다.

 

사용자는 로드밸런서의 퍼블릭 IP주소로 접속을 하고,

서버는 직접 클라이언트의 접속을 처리하지 않는다.

 

서버 간 통신은 private(사설) IP 주소로 이루어진다.

사설 IP 주소는 같은 네트워크에 속한 서버 사이의 통신에'만' 쓰이는 IP 주소로,

인터넷을 이용한 사설 IP 주소 접속은 불가하다.

따라서 로드밸런서는 사설 IP 주소를 이용해서 웹서버와 통신한다. 

[사용자] --로드밸런서의 Public IP 주소--> [로드밸런서] --웹서버의 사설 IP 주소--> [웹서버]

데이터베이스 다중화 - 데이터 계층의 자동 복구와 다중화 방안

데이터의 원본은 주(master) 서버에, 데이터의 사본은 부(slave) 서버에 저장하는 방식으로,

마스터에서만 쓰기 연산을 지원하고, 부 데이터베이스는 읽기 연산만 지원한다.

개수 : 주 데이터베이스 <= 부 데이터베이스

 

데이터베이스 다중화의 장점 

1) 성능 향상 

읽기 연산은 부 데이터베이스로 서버가 분산된다. -> 병렬 처리될 수 있는 질의가 늘어나 성능이 향상된다.

 

2) 안정성 

DB서버 중 일부가 파괴되어도 데이터 보존이 된다. -> 물리적으로 떨어진 곳에 다중화 가능

 

3) 가용성 (Availablity) 

데이터를 여러 지역에 복제해 둠으로써, 하나의 DB 서버에 장애가 발생하더라도 다른 서버 데이터로 서비스 가능하다.

 


응답시간(Latency) 의 개선 - 캐시와 CDN의 이용

캐시와 캐시서버

캐시를 사용하면 1) 성능 개선, 2) 데이터베이스의 부하 줄이기, 3) 캐시 계층의 규모 독립적 확장 가능

 

CDN 콘텐츠 전송 네트워크

정적 콘텐츠를 전송하는데 쓰이는 분산된 네트워크이다. 

정적 콘텐트(이미지, 영상 등)을 캐싱할 수 있다.


무상태 웹 계층 - 웹계층의 수평적 확장

상태 정보에 의존적인 아키텍처의 단점

사용자 A의 요청은, A 자신의 상태 정보가 저장되어 있는 서버로만 전송되어야 한다.

이걸 로드밸런서가 고정 세션이라는 기능으로 지원할 수 있지만,

부담이 되고, 서버의 장애 처리도 복잡해진다.

 

무상태 아키텍처 - 상태 정보를 공유 저장소에서 관리한다!

그래서 등장한 무상태 아키텍처

상태정보를 웹서버 계층에서 분리시킨다. 

-> 안정성도 확보되고, 규모 확장도 쉬워진다.


메시지 큐 - 비동기 통신을 지원하는 컴포넌트

메시지 큐를 이용하면 시스템 컴포넌트 분리를 통한 시스템의 규모 확장이 가능하게 한다.

메시지 큐의 특징은 무손실을 보장한다는 것이다.

(한 번 들어오면 소비자가 꺼낼 때까지 안전하게 보관된다.)

서비스/서버 간의 결합이 느슨해져서 규모 확장이 보장되어야 하는 안정적인 애플리케이션을 구성하기 좋다.

캐시와 캐시서버

캐시를 사용하면 1) 성능 개선, 2) 데이터베이스의 부하 줄이기, 3) 캐시 계층의 규모 독립적 확장 가능

 


데이터베이스의 규모 확장 - 샤딩 

샤딩(Sharding)

대규모 데이터베이스를 샤드라는 작은 단위로 분할하는 기술이다.

(굉장히 해싱과 유사한 것 같다)

데이터베이스 규모 확장을 실현하기에 좋지만, 복잡해지고 문제도 생겨난다.

 

저작자표시 비영리 변경금지 (새창열림)

'공부기록 > CS' 카테고리의 다른 글

[면접대비 CS 공부] DNS / TCP&UDP의 차이점 / IP 클래스 / 교착상태  (1) 2026.01.05
02. 개략적인 규모 추정  (0) 2025.10.06
[정처기 실기 대비] 화이트박스 테스트 - 조건 커버리지, 분기 커버리지, 조건/분기 커버리지  (2) 2025.08.05
[정처기 실기 대비] 라우팅 프로토콜 - RIP, OSPF  (6) 2025.07.13
[정처기 실기 대비] 네트워크 보안 관련 프로토콜, IPsec, SSL, S-HTTP  (1) 2025.07.12
'공부기록/CS' 카테고리의 다른 글
  • [면접대비 CS 공부] DNS / TCP&UDP의 차이점 / IP 클래스 / 교착상태
  • 02. 개략적인 규모 추정
  • [정처기 실기 대비] 화이트박스 테스트 - 조건 커버리지, 분기 커버리지, 조건/분기 커버리지
  • [정처기 실기 대비] 라우팅 프로토콜 - RIP, OSPF
Lyv
Lyv
  • Lyv
    inimizi
    Lyv
  • 전체
    오늘
    어제
    • 분류 전체보기 (60)
      • 이것저것 도전 (5)
        • 공모전 (0)
        • 우테코 (5)
      • PS (16)
        • 삼성기출 (2)
        • LeetCode & Codility (4)
        • Programmers (6)
        • BaekJoon (4)
      • 공부기록 (33)
        • CS (16)
        • 영어 (1)
        • iOS (1)
        • 프로그래밍 언어 (0)
        • Web (4)
        • Linux (1)
        • Docker (2)
        • Network (4)
        • IaC (3)
      • 프로젝트 경험 (0)
      • DailyLog (4)
      • 취준Log (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    우테코프리코스
    os
    문제풀이
    PS
    이미지
    운영체제
    리눅스
    운영체제intro
    til
    프로그래머스
    우테코
    ansible
    c언어
    정처기실기
    컨테이너
    IAC
    스케줄링
    코테
    공부기록
    디자인패턴
    프리코스회고
    백준
    자동화
    대학생
    C++
    DP
    manifest
    정처기
    FastAPI
    네트워크
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
Lyv
01. 사용자 수에 따른 규모 확장성
상단으로

티스토리툴바