자주 사용되는 운영 서버 아키텍처들에 대해 정리해보자
1. 단일 서버
- 가장 기본적인 구성
- 매우 단순한 구성인 만큼 테스트 서버나 간단한 애플리케이션을 구동할 때 사용
- 단점
1. 전체 서비스에 장애가 생길 확률 높음
2. 서버의 자원을 효율적으로 사용하기 어려움
3. 보안성이 떨어짐
4. 서버의 수를 여러대로 늘려서 자원을 확장하는 스케일 아웃(scale-out) 작업이 힘듬
2. 애플리케이션/데이터베이스 서버 분리
- 단일 서버 구성에서 DB만 별도로 뺀 구성
- 전체 서비스 장애 확률, 효율적인 자원 사용 어려움, 보안성 저하 등의 단점이 해결됨
- 단점
1. 구성이 복잡해짐
2. 서버사이의 지연시간과 네트워크 보안을 고려하기 시작해야함
3. 스케일 아웃은 여전히 힘듬
3. 서버 단위의 로드 밸런서
- 클라이언트가 실행 서버와 직접 통신하는 대신 로드 밸런서(서버)와 통신하고, 그 뒤에 여러 대의 애플리케이션 서버를 두는 방식
- 스케일 아웃이 가능해짐
- 서비스 장애 최소화 가능
- 단점
1. 모든 요청이 로드 밸런서를 통해서 하기 때문에 여기에 장애가 생기면 전체 서비스 장애가 발생할 수 있음
2. 구성이 매우 복잡해짐
4. 서버 내 앱 단위의 로드 밸런서
- 서버 안의 애플리케이션 단위에서도 로그 밸런서가 추가된 구성
- 하나의 서버에 여러개의 프로세스를 실행해 하나의 서버에서 여러 개의 요청을 동시에 퍼리할 수 있게 됨
- 서버 자원을 최대한 사용할 수 있는 만큼 프로세스를 실행해 서버 자원도 효율적으로 사용 가능
'개인공부 > BE' 카테고리의 다른 글
[Ops] DevOps에 대한 (간략한) 정리 (0) | 2022.03.14 |
---|---|
[Node.js] 네이버 파파고 API Node.js에서 사용하기 (0) | 2022.02.23 |
[Server] AWS 인프라 구축 가이드 - 3 AWS Auto Scaling을 이용한 다중 서버 구성 (2) (0) | 2022.02.01 |
[Server] AWS 인프라 구축 가이드 - 3 AWS Auto Scaling을 이용한 다중 서버 구성 (1) (0) | 2022.01.18 |
[Server] AWS 인프라 구축 가이드 - 2 웹 서버와 웹 애플리케이션 서버 (0) | 2022.01.10 |