Application Load Balancer(ALB)

leekyungryul·2024년 1월 21일
0

aws

목록 보기
4/6

ec2 인스턴스 생성

  • 이름 : my application server
  • AMI : Amazon Linux 2023 AMI
  • 유형 : t2.micro
  • 보안그룹 : 기존 보안그룹 사용
  • 고급 세부정보
    사용자 데이터에 아래 스크립트 추가
#!/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를 통하여야만 인스턴스로 트래픽이 허용되도록 해보자

  • 보안그룹 수정
    현재는 각 인스턴스의 보안그룹 인바운드 규칙은 다음과 같다.

    기존에 있던 http 유형은 삭제하고 새로 추가해서 로드밸런서의 보안그룹을 소스정보에 매핑한다.

    위와 같이 하면 인스턴스로 직접 접속은 불가해진다.

리스너 규칙 추가

로드밸런서 목록에서 위에서 생성한 로드밸런서를 클릭


아래 화면에서 리스너를 클릭

기본규칙은 모든 요청을 대상그룹으로 보내라는것임
'규칙추가' 클릭


'조건추가' 클릭







profile
끊임없이 노력하는 개발자

0개의 댓글