DevOps/DevOps

클라우드 서비스에 대한 규모 확장의 종류 (수직확장, 수평확장)

chanstory 2022. 11. 30. 17:54
반응형

서버의 클라이언트들에 대한 서비스를 제공할 때 상황에 맞게 규모를 확장해야 하는 경우가 있다.

 

1대의 컴퓨터로 서버의 역할을 수행할 때 서버가 감당할 수 없을 만큼의 큰 규모의 클라이언트가 동시에 서버에 접속하게 된다면

제대로된 서비스를 제공할 수 없게된다.

 

이때 규모확장을 고려하게 될것이다.

 

규모확장의 종류로는 수직확장과 수평확장이 있다.

 

수직확장이란

- 서버의 성능 (CPU, RAM, 스토리지, 네트워크 등)을 높이는 방법

- 장점 : 하나의 서버로 동작 가능한 정도의 수요를 보인다면 수직확장이 적절하다.

- 단점  1. 수직적 규모 확장에는 한계가 존재한다 (가격, 성능 한계 등)

           2. 장애 대응에 어려움이 있다. 아무리 고 성능의 하드웨어를 사용한다고 해도 하드웨어 고장 시 서비스가 중단되어 버린다.

               (업타임, 즉 가동시간이 줄어들게 되어 가용성이 줄어든다.)

 

 

수평확장이란

- 더 많은 서버를 도입하는 방법 (트래픽이 많을 경우에는 수평확장이 답)

- 목적에 따라 수평확장을 진행한다 (분산 시스템)

- 분산시스템 : 구성요소가 네트워크로 연결된 서로 다른 컴퓨터에 있는 시스템으로, 메시지를 서로 전달/통신하고 작업을 조정한다.

- 각 다른 프로그램이 각기 다른 시스템에서 별도로 실행 됨 (각 컴퓨터 = 노드)

 

분산시스템 용어
- 성능 (Performance) : 높은 처리량(throughput) + 낮은 대기시간(latency)
- 확장성 (Scalability) : 증가하는 작업량을 처리할 수 있는가
                                  이로 인한 시스템 확장이 가능한가를 따져보는 기준
- 가용성 (Availability) : 시스템이 정상적으로 사용 가능한 정도를 의미
가용성 = 업타임 / (업타임 + 다운타임)
업타임 : 작동중인 시간, 다운타임 : 작동중이지 않은 시간

 

분산 시스템 장.단점

- 장점

  => 성능 : 한대의 컴퓨터 성능을 높이기 위한 한계가 존재하므로 여러대의 비교적 낮은 성능의 컴퓨터가, 한대의 고성능 컴퓨터의 성능을 낼 수 있다.

  => 확장성 : 한대의 컴퓨터로 트래픽을 처리하고 데이터를 저장하는데 한계가 있으므로 분산 시스템을 구축하여 데이터 및 트래픽을 여러 컴퓨터에서 분할하여 저장 및 처리 한다.

  => 가용성 : 한대의 컴퓨터가 중단시간 없이 계속 동작하는 것은 불가능 (하드웨어 신뢰성, 주변환경 이슈, 천재지변 등의 원인이 있다.)

한 컴퓨터가 담당하는 일을  수평확장을 통하여 여러대의 똑같은 클론을 만들어 작업을 수행한다면 컴퓨터에서 생기는 장애에 대하여 다른 컴퓨터에서 효율적으로 대응할 수 있다.

  => 중복성 : 높은 가용성을 위해 한 컴퓨터의 클론을 만든다는 것은, 그 안에 존재하는 데이터 역시 복제되어야 한다. 이러한 데이터 중복 메커니즘은 가용성을 얻기 위해 필요한 작업이다. 데이터의 무결성 필요함.

 

 

분산시스템을 구축해야 하는 이유

- 한대의 컴퓨터는 성능적 한계가 있고 장애 대응이 어려우므로 여러대의 컴퓨터로 분산시켜 성능, 비용, 확장성, 장애대응에 대한 부분을 효과적으로 해결할 수 있다. 

 

반응형