본문 바로가기
👾 Server/☁️AWS

Production Server(운영 서버)와 아키텍처 (Feat. AWS)

by kukim 2022. 3. 26.

이 글은 책 AWS 인프라 구축 가이드 - 김담형 1,2장과 하단 Reference 참고했습니다. 잘못된 내용이 있다면 편하게 말씀해주세요 🙏🏻


Production Server(운영 서버)

Production Server(운영 서버)실제 사용자들을 대상으로 실제 서비스하는 서버이다. 보통 로컬, 개발 서버는 테스트 목적으로 사용되어 문제가 발생해도 큰 문제가 발생하지 않지만 운영 서버 문제 발생한다는 것은 해당 서비스의 치명적인 문제다. 운영 서버는 장애가 발생하면 안 되고 빠르게 응답해야 하며 많은 트래픽에 대응할 수 있어야 한다. 

운영 서버 관리는 크게 3단계로 나뉜다.

1. 환경 구성 : 서비스할 코드를 구동시킬 수 있는 서버 인프라 구축

2. 코드 배포 : 구성한 환경에 최신 버전의 코드(서비스)를 빠르고 안전하게 배포

3. 모니터링 : 안정적인 서비스 운영을 위해 서버와 코드에 어떤 이상이 없는지 파악하고 대응할 수 있게 모니터링

 

클라우드와 운영 서버

클라우드는 단순히 컴퓨팅 서버 제공뿐만 아니라 운영 서버 관리에 필요한 많은 서비스를 제공한다. 직접 HW를 구입하여 인프라를 구축하지 않아도, 모든 컴퓨터에 코드 배포하지 않아도, 모니터링을 위해 SW 설정도 간편하게 할 수 있고 서버 확장(Scale-out)도 매우 간편히 할 수 있다. 다시 말해 필요한 사양의 서버를 몇 번의 클릭으로 추가, 제거할 수 있고 사용한 시간만큼만 지불하고 안정적으로 사용할 수 있다.

 

AWS

AWS는 전세계에 IDC(Internet Data Center)가 존재하고 전 세계 클라우드 시장 33%를 점유하고 있다. 

 

AWS의 IDC 용어

리전(Region) : 인프라 구축하고 있는 지리 영역, 보통 가까운 리전을 선택하면 네트워크 지연 시간 최소화할 수 있고 자연재해 문제를 방지하기 위해 거리가 먼 (서울 리전, 미국 리전) 리전에 서버를 이중화하기도 한다.

가용역역(AZ, Availability zone) : 실제 IDC가 있는 곳, 한 리전에 여러 개 가용 영역이 있다.

엣지로케이션(Edge Location) : AWS의 CDN 캐시 서버가 있는 곳이다. 

 


운영 서버 아키텍처

단일 서버

책 AWS 인프라 구축 가이드 : 그림 2.1 (http://bit.ly/aws_infra_guide)

하나의 서버에 애플리케이션과 DB가 함께 있다.

 

단점

- 장애 확률이 높다. (하나의 서버(HW)에 애플리케이션과 db가 같은 자원 공유한다)

- 자원 효율적으로 사용하기 어렵다. (고성능 PC가 필요하다)

- 보안성이 떨어진다.

- 스케일 아웃이 어렵다.

 

애플리케이션 / 데이터 베이스 서버 분리

책 AWS 인프라 구축 가이드 : 그림 2.2 (http://bit.ly/aws_infra_guide)

단일 서버 구성에서 db를 별도의 서버로 분리하여 구성한다.

 

장점

- 단일 서버보다 장애 확률이 낮다. 효율적인 자원 사용 가능하고 단일 서버보다 보안성이 확보된다.

단점

- 서버 사이의 지연 시간이 있고 네트워크 보안을 고려해야 한다.

- 여전히 스케일 아웃이 어렵다.

 

서버 단위의 로드 밸런서

책 AWS 인프라 구축 가이드 : 그림 2.3 (http://bit.ly/aws_infra_guide)

클라이언트가 애플리케이션을 실행하는 서버와 직접 통신하는 대신 로드밸런서라는 서버와 통신한다. 애플리케이션 서버를 여러 대 사용할 수 있고 로드 밸런서가 애플리케이션 서버들의 상태를 보고 적절하게 분산하여 클라이언트 요청을 분할해준다.

 

장점

- 스케일 아웃 가능

- 일부 서버 장애 발생해도 서비스 장애 최소화할 수 있다.

단점

- 로드밸런서 장애 발생 시 나머지 서버 정상이어도 전체 서비스 장애가 발생한다.

- 운영 서버 구성이 복잡해진다.

서버 내 앱 단위의 로드 밸런서

책 AWS 인프라 구축 가이드 : 그림 2.4 (http://bit.ly/aws_infra_guide)

여러 서버에게 요청을 분할하는 서버 단위의 로드 밸런서 외에도 여러 애플리케이션 프로세스들에 요청을 분산시키는 앱 단위의 로드 밸런서 추가한다.

 

장점

- 하나의 서버에 여러 개의 프로세스를 실행해 하나의 서버에서 여러 개의 요청을 동시에 처리할 수 있다. 서버 자원을 효율적으로 사용할 수 있다.

 


Reference

서비스 운영이 쉬워지는 AWS 인프라 구축 가이드 1,2장 - 김담형

운영 서버의 환경의 구성 - velog

댓글