Search

[Auto Scaling 자동 동기화-1] ALB 만들고 EC2와 연결하여 확인하기

PublishDate
2021/01/01
Category
AWS
Tag & Keyword
LoadBalancer
준비물 : 2개의 EC2 인스턴스(Amazon Linux 2) , SSH 원격접속 프로그램(MobaXterm)

Auto Scaling 자동 동기화 시리즈 시나리오

다음 사진은 ELB 와 Auto Scaling EC2로 생성한 간단한 고가용성 아키텍처다.
이미지를 기반으로 실행하는 Auto Scaling은 다음과 같은 불편함을 가진다.
AutoScaling은 손쉽게 고가용성을 달성하게 해주지만 지정한 이미지를 기준으로 EC2를 생성한다.
실행중인 EC2 새로 생성된 EC2 사이에 상태 차이가 발생한다.
기존 서버 내부 파일을 변경하는 경우에도 변경 전 이미지로 EC2가 추가되기 때문에 동일한 상태를 유지하기 어렵다.
매번 서버 내부 정보가 바뀔 때 이미지를 새로 생성하고 AutoScaling 구성을 다시 설정하는 것은 사실상 불가능하다.
내가 생각한 요구사항은 다음과 같다.
1.
서버들이 파일을 한 공간에 저장하고
2.
Auto Scaling으로 생성된 새로운 서버도 별도의 설정 없이 해당 공간에 접근할 수 있으며
3.
Auto Scaling으로 서버가 추가될 때 모든 변경된 파일들을 자동으로 받을 수 있는 환경!
생각해낸 아키텍처는 다음과 같다.
EFS (NFS or NAS로 생각하면 좋을 것 같다) 를 통해 모든 EC2가 한 공간에 파일을 저장한다.
EFS 마운트 정보를 가진 AMI를 생성하여 생성되는 모든 EC2가 EFS에 마운트된다.
System Manager의 Run-Command 기능을 활용하여 Auto Scaling에서 정한 태그를 가진 모든 서버에 명령을 실행
AutoScaling을 통해 EC2가 Scale-Out(추가)될 때 CloudWatch가 해당 이벤트를 감지하여 Run-Command를 자동으로 실행
ALB 생성부터 차근차근 시작한다.

시작 전

시리즈 포스팅 링크
여기를 눌러 EC2 Instance를 생성할 수 있다.
여기를 눌러 CentOS, Ubuntu와 같은 타 배포판에서 AWS CLI 환경을 구성할 수 있다.
Amazon Linux 2 AMI는 프리티어이면서 AWS CLI환경이 구성된 이미지다.
목적 : Application Load Balancer를 만들고 EC2 Instance와 연결하여 로드밸런싱 환경을 구축한다.
기능 확인을 위한 최소한의 환경만 구성하였다.

Application Load Balancer

대상그룹 생성
Load Balancer 생성

EC2 연동 테스트

테스트

결론

ALB를 생성하여 HTTP로 접근하는 웹서버에 대한 로드밸런싱을 수행할 수 있다.