다디와 괴발개발

서버와 확장 (수직 확장 vs 수평 확장) 본문

DevOps

서버와 확장 (수직 확장 vs 수평 확장)

아임다디 2022. 2. 22. 15:56

애플리케이션, 웹 서비스를 배포 할 때 서버에 배포한다는 말을 흔히 들을 수 있다.

그렇다면, 서버는 어떻게 작동하고 사용자는 어떻게 서버에 접속하는지. 과도하게 사용자가 몰렸을 때 서버를 어떻게 확장할 수 있는지에 대해 작성해보았다.

먼저, 고객이 서비스에 어떻게 접속하는지 알아보자.

사용자 관점

사용자는 URL 주소를 통해 웹 서비스에 접속하게 된다.

이 때, 인터넷 서비스 제공자에서 URL 주소를 DNS 서버를 통해 IP 주소로 변경해준다

※ 용어 설명
- DNS 서버 : Domain Name System의 줄임말로, 도메인 네임과 상응하는 공용 IP 주소로 구성돼있다. DNS 서버는 도메인 네임을 아이피 주소로 변환하여 웹 컨텐츠에 접속할 수 있도록 해줌
- IP 주소 : 인터넷 상에 존재하는 웹 서버에 할당된 유일한 주소

서버 관점

사용자가 서버에 도달한 이후부터 서버는 어떤 일을 할까?

1. 경로 처리

  • 도메인 이름 이후에 등장하는 문자열에 해당
  • 웹 서버가 정해놓은 규칙(라우팅)에 따른다
  • https://www.codestates.com/course/devops에서 /course/devops 에 해당

2. 응답

  • 서버 내 자원을 사용자에게 제공하는 과정
  • HTML 페이지, JSON과 같은 응답을 제공함

웹 서비스의 사용자가 많아지면 서버 관리자는 서버를 확장해야되는 상황이 생긴다.

서버 확장에는 수직확장과 수평확장이 있는데, 둘의 개념과 장단점은 무엇일까?

수직 확장

수직 확장은 서버의 성능(CPU, RAM, 스토리지, 네트워크 I/O)를 높이는 방법

수평 확장

더 많은 서버를 도입하여 분담하는 방법

 

그렇다면, 사용자가 과도하게 몰려 트래픽이 많은 경우에는 어떤게 좋을까?

 

답은 수평 확장이다.

수직적 규모 확장은 무한대로 증가하는 트래픽을 따라잡기에는 한계가 존재하고 비용도 많이 든다

또한, 수직 확장은 장애 대응이 어렵다. 고성능 서버가 유일한 하드웨어인데 장애가 발생하면 서비스가 모두 중단되는 현상이 발생된다.

'DevOps' 카테고리의 다른 글

자동화와 프로비저닝  (0) 2022.02.24
분산 시스템이란 무엇인가?  (0) 2022.02.22
DevOps 데브옵스란 무엇인가?  (0) 2022.02.22
CI/CD 파이프라인  (0) 2022.02.21
웹 호스팅 vs 서버 호스팅 vs 클라우드 호스팅  (0) 2022.02.19