본문 바로가기

AWS

[AWS] 운영 서버 환경 구성 - 다중 서버 ( 오토 스케일링, 로드 밸런서 )

AWS에서 Auto Scaling 그룹을 이용해 다중 서버를 구성해보자 😃

Auto Scaling: 트래픽에 따라 서버의 수를 자동으로 늘리고 줄이는 것

 

Auto Scaling Group

- AWS에서 제공하는 자동 다중 서버 서비스

- 같은 사양, 같은 환경, 같은 코드를 가지고 있는 똑같은 EC2 인스턴스들의 묶음

- 자원 사용량 또는 시간을 기준으로 Auto Sacling을 설정할 수 있음

 

생성하는 방법 ✔

1. 다중 서버로 만들고자 하는 인스턴스의 현재 환경을 스냇숍으로 생성해서 AMI으로 만든다.

2. 시작 템플릿에 AMI을 이용해 어떤 설정(사양, 보안 그룹, 네트워크 설정 등)의 인스턴스를 띄울지 정의하고, 생성한다.

3. 이 시작 템플릿을 이용해 인스턴스를 실행할 Auto Scaling 그룹을 만든다.

 

Auto Scaling Group을 생성할 때 네트워크 유형은 VPC로 설정했다.

 

* VPC (Virtual Private Cloud)

VPC를 적용한 구조


AWS Elastic Load Balancing을 이용해 서버 트래픽을 분산 관리해보자 😃

요청을 전달할 서버들을 묶어둔 개념적인 그룹인 대상 그룹(Target Group)을 생성한다.

=> 로드 밸런서 생성할 때 라우팅 구성 설정을 통해 요청한 포트에 따라 다양한 대상 그룹으로 그 요청을 전달하는 것이 가능해진다.

 

로드 밸런서는 상태 검사(Health Check)를 실시한다.

=> 상태 검사 경로를 GET /health로 등록해두면 로드 밸런서는 주기적으로 서버들에게 요청을 보내고, 문제가 있다면 정상 상태가 될 때까지 클라이언트의 요청을 전달하지 않는다.

=> nginx 서버와 같은 웹 서버만 살아있어도 서버가 정상이라고 판단해도 된다면, nginx에서만 GET /health를 설정해도 되지만, 애플리케이션까지 실제로 올바르게 실행 중이어야 한다면, 애플리케이션에서 처리해서 상태 코드 200을 응답하도록 설정해야 한다.