티스토리 뷰

Infra/AWS

운영 서버의 특징

kkoon9 2022. 2. 6. 22:00
서비스 운영이 쉬워지는 aws 인프라 구축 가이드 책을 읽고 공부한 내용을 정리한 글입니다.

운영 서버란 개발이나 테스트 목적이 아닌 실제 사용자들을 대상으로 서비스하는 서버를 말합니다.

운영 서버는 테스트 서버와는 다르게 다음과 같은 세 가지를 특징으로 가져야 합니다.

  • 트래픽 대응
  • 빠른 응답 속도
  • 높은 가용성

운영 서버 관리의 세 가지

  • 환경 구성
  • 코드 배포
  • 모니터링

1. 환경 구성

운영 서버 관리의 첫 번째 단계인 환경 구성에 대해 알아봅시다.

자주 사용 되는 아키텍처 [1]. 단일 서버

운영 서버 아키텍처의 가장 기본적인 구성인 단일 서버 아키텍처입니다.

💥단일 서버의 문제점

  • 전체 서비스에 장애가 생길 확률이 높습니다.
  • 서버 자원을 효율적으로 사용하기 어렵습니다.
  • 보안성이 떨어집니다.
  • 스케일 아웃이 힘듭니다.

자주 사용 되는 아키텍처 [2].  애플리케이션/데이터베이스 서버 분리

단일 서버 구성에서 데이터베이스를 별도의 서버로 분리한 구성입니다.

애플리케이션과 데이터베이스가 다른 자원을 사용하기 때문에 단일 서버에서 나온 문제점 일부가 해결될 수 있습니다.

하지만 두 대의 서버를 관리하기 때문에 구성이 조금 더 복잡해지고 서버 사이의 지연 시간 네트워크 보안 등을 고려해야 합니다.

💥애플리케이션/데이터베이스 분리 서버의 문제점

그리고 클라이언트에서는 하나의 서버를 바라보고 있기 때문에 서버 자원 확장을 위해 스케일 아웃은 여전히 힘듭니다.

자주 사용 되는 아키텍처 [3]. 서버 단위의 로드 밸런서

클라이언트는 애플리케이션 서버가 아닌 로드 밸런서 서버와 통신하는 형태의 서버 구성입니다.

로드 밸런서가 클라이언트에게서 받은 요청을 뒤에 있는 서버들에게 나누어줍니다.

뒤에 있는 서버들 역시 요청을 처리하면 응답은 로드 밸런서를 통해 클라이언트에게 전달됩니다.

로드 밸런서를 사용하게 되면 스케일 아웃이 가능해집니다.

애플리케이션 서버 중 일부 서버에 장애가 발생하더라도 로드 밸런서에서 정상 서버에만 요청을 주면 되기 때문에 서비스 장애를 최소화 할 수 있습니다.

💥로드 밸런서 서버의 문제점

모든 요청이 로드 밸런서를 통해 지나가기 때문에 로드 밸런서에 장애가 생기면 전체 서비스 장애로 이루어질 수 있습니다.

자주 사용 되는 아키텍처 [4]. 서버 내 앱 단위의 로드 밸런서

서버 단위 로드 밸런서 외에도 여러 애플리케이션 프로세스들에 요청을 분산 시키는 앱 단위 로드 밸런서가 추가된 형태의 구성입니다.

서버 내 똑같은 애플리케이션을 여러 프로세스로 만들어 실행하고, 외부에서 들어온 요청을 프로세스 중 하나로 보내주는 역할을 합니다.

장점

  • 하나의 서버에서 여러 개의 요청을 동시에 처리 가능합니다.
  • 서버 자원을 최대한으로 사용할 수 있는 만큼의 프로세스를 실행할 수 있습니다.
  • 서버 자원도 더욱 효율적으로 사용할 수 있습니다.

2. 코드 배포

운영 서버 관리의 두 번째 단계인 코드 배포에 대해 배워봅시다.

1. 무중단/중단 배포

서비스를 중단하지 않는다는 것은 사용자들이 서비스를 사용하는데 아무런 지장 없이 배포를 진행하는 경우를 뜻합니다.

중단 배포는 "서버 정기 점검" 이라고 생각하면 됩니다.

중단 배포를 하는 이유는 무중단 배포를 하기에는 너무 큰 비용이 발생하는 경우가 있기 때문입니다.

 

2. 현재 위치 배포(In-place deployment)

여러 대의 서버를 배포할 때 새롭게 서버를 생성하거나 줄이지 않고 배포하는 방법입니다.

무중단 배포의 기법 중 하나입니다.

현재 위치 배포 1단계

현재 네 대의 서버는 v1.0.1 서비스를 운영 중이며 로드 밸런서가 앞에서 클라이언트의 요청을 고르게 나누어주고 있습니다.

모든 서버는 v1.0.2 서비스를 새롭게 배포하려고 합니다.

현재 위치 배포 2단계

4대 중 2대의 인스턴스를 로드 밸런서에서 제외합니다.

로드 밸런서는 제외된 인스턴스들에게 요청을 보내지 않게 됩니다.

현재 위치 배포 3단계

로드 밸런서에 제외된 인스턴스들은 v1.0.2 서비스 코드를 배포합니다.

현재 위치 배포 4단계

v1.0.2 서비스 중인 인스턴스를 로드 밸런서에 연결해줍니다.

그리고 나머지 v1.0.1 서비스하고 있는 인스턴스를 로드 밸런서에 제외시키고 배포해줍니다.

현재 위치 배포 마무리

현재 위치 배포 장점

새로운 인스턴스를 생성할 필요가 없어서 더 간단하고 빨리 진행할 수 있습니다.

현재 위치 배포 단점

배포 중에는 클라이언트 요청을 처리할 수 있는 인스턴스의 수가 줄어듭니다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함