ec2 인스턴스 생성
#!/bin/bash
# Use this for your user data (script from top to bottom)
# install httpd (Linux 2 version)
yum update -y
yum install -y httpd
systemctl start httpd
systemctl enable httpd
echo "<h1>Hello World from $(hostname -f)</h1>" > /var/www/html/index.html
인스턴스 갯수 : 2
생성결과
load balancer 생성
로드 밸런서 생성 클릭
Application Load Balancer 클릭
기본구성
로드 밸런서 이름만 입력하고 나머지 패스
네트워크 매핑
로드 밸런서를 배포할 곳과 가용 영역을 선택
모든 가용영역(AZ)에 배포
보안그룹
'새 보안그룹을 생성' 클릭
HTTP 트래픽만 허용함
방금 새로 생성한 보안그룹으로 교체
리스너 및 라우팅
'대상 그룹 생성' 클릭
http(80)으로 접속하는 경우 대상그룹을 생성
인스턴스들을 묶어 타겟으로 만드는 방법을 선택
대상 그룹 이름만 변경하고 나머지는 패스
'다음' 클릭
앞서 생성한 인스턴스를 대상으로 등록하고 '아래에 보류 중인 것으로 포함' 클릭
두대의 인스턴스를 모두 포트 80에 대기상태로 추가함
'대상 그룹 생성' 클릭
로드밸런서 생성 화면에서 위에서 생성한 대상그룹을 선택이 가능해진다.
이제 선택된 대상그룹은 지금 생성하는 로드밸런서의 80포트에 있는 리스너와 연결됨
'로드 밸런서 생성' 클릭
생성완료
프로비저닝 중(시간이 걸림)
활성화 됨
테스트
로드밸런서의 DNS이름을 복사해서 새 탭에 붙여 넣으면 앞서 대상그룹에 있는 인스턴스 두대가 번갈아 가면서 호출되는것을 확인 가능하다.
대상그룹에서 확인하면 정상 작동중인것을 확인할수있다.
만약 두대중 한대를 중지시키면
아래와 같이 상태가 변경된다.
로드밸런서를 통해서만 ec2 인스턴스로 트래픽 허용
현재는 EC2의 Public IP로 직접 접속을 하여도 트래픽이 허용된다.
이제는 로드밸런서 DNS를 통하여야만 인스턴스로 트래픽이 허용되도록 해보자
리스너 규칙 추가
로드밸런서 목록에서 위에서 생성한 로드밸런서를 클릭
아래 화면에서 리스너를 클릭
기본규칙은 모든 요청을 대상그룹으로 보내라는것임
'규칙추가' 클릭
'조건추가' 클릭