[AWS] Auto Scaling을 통해 scale-out을 자동화

김지엽·2024년 2월 6일
0
post-thumbnail

1. 개요

대용량 트래픽 개선을 위해 scale-out을 선택했고, ec2 서버를 여러대 사용하게 되었다. 하지만 다음과 같은 문제가 있었다.

  • 현재 ec2 4대를 구동하고 있는데, 항상 4대의 서버가 필요한가?
  • 만약 현재 구동하고 있는 ec2 서버 이상의 트래픽이 발생할 경우에 이를 어떻게 대처할까?

이를 해결하기 위해 scale-out 또는 scale-up을 유연하게 자동으로 하기 위해서 aws에 지원하는 auto scaling을 도입하게 되었다.

2. auto scaling 순서 흐름

3. auto scaling 생성

- AMI 생성

ec2 인스턴스에서 이미지 생성을 클릭한다.

이미지 이름 및 설명을 입력하고 이미지를 생성한다.

재부팅안함 활성화시 현재 실행중인 ec2를 재부팅 하지 않고 이미지를 생성한다.

- 템플릿 생성

템플릿 이름 및 해당 버전의 설명을 입력한다.

위에서 생성한 이미지를 선택해 설정한다.

인스턴스 유형을 설정한다.

키페어를 설정한다.

생성되는 ec2의 보안그룹을 설정한다.

- 대상그룹 및 로드밸런서 생성

로드밸런서 설정

- Auto Scaling 그룹 생성

그룹 이름 설정하기

위에서 생성한 템플릿을 시작 템플릿으로 설정

네트워크 가용 영역 설정

위에서 생성한 로드밸런서에 연결

이 연결을 통해 auto scaling에서 ec2 생성시 로드밸런서의 대상그룹에 자동으로 등록된다.

ec2가 제대로 작동되고 있는지 확인여부를 체크한다.

ec2가 생성되고 처음 초기화될때에는 시간 소요가 제법 있기에 처음의 상태확인을 유예시킬수 있다.

auto scaling 생성하거나 수정시 현재 원하는 인스턴스 개수를 결정한다.

최소용량과 최대용량을 설정해서 scaling시 인스턴스의 최소, 최대 개수를 설정한다.

대상추적 크기조정 정책를 설정해 어떤 기준으로 인스턴의 개수를 scaling 할지 결정할 수 있다. 일반적으로 cpu 사용률을 기준으로 하는데 이건 배포하는 서비스에 맞게 설정한다.

scaling시 이벤트에 따라 이메일로 알림을 보내게 설정한다(선택)

결과

다음과 같이 설정한 현재 용량인 2개의 ec2가 생성되었다.

로드밸런서의 대상그룹에도 정상적으로 등록된 것을 확인할 수 있다.

참고

AWS 공식 문서

profile
욕심 많은 개발자

0개의 댓글