이것저것 해보기🌼

[AWS TechCamp] AWS 핵심 서비스로 웹 애플리케이션 구축하기 ③ - 로드밸런서 구성하기 본문

AWS

[AWS TechCamp] AWS 핵심 서비스로 웹 애플리케이션 구축하기 ③ - 로드밸런서 구성하기

realtree 2024. 6. 25. 16:58

실습 안내

본 실습은 2024년  AWS TechCamp에서 진행한 AWS 핵심 서비스로 웹 애플리케이션을 구축하는 방법에 대한 실습입니다.

 

AWS TechCamp 바로가기

https://aws.amazon.com/ko/events/seminars/aws-techcamp/

 

AWS TechCamp

AWS TechCamp 온라인 세션의 경우 3월 (Modern App) 6월 (AI/ML), 9월 (Data), 11월 (Every App) 총 4회 제공합니다. 세션은 3일 동안 진행되며 클라우드 클라우드 서비스가 생소한 분들을 위한 기초 과정 (레벨 100)

aws.amazon.com

 

 

이전 포스팅 바로가기

실습 ② - 웹 서버 생성하기

https://realtree.tistory.com/79

 

[AWS TechCamp] AWS 핵심 서비스로 웹 애플리케이션 구축하기 ② - 웹 서버 생성하기

실습 안내본 실습은 2024년  AWS TechCamp에서 진행한 AWS 핵심 서비스로 웹 애플리케이션을 구축하는 방법에 대한 실습입니다. AWS TechCamp 바로가기 https://aws.amazon.com/ko/events/seminars/aws-techcamp/  AWS Te

realtree.tistory.com

 

실습 목표

지난 번에 두개의 가용영역에 웹 서버를 구동했다면 이번 과정에서 로드 밸런서를 이용해 트래픽을 분산처리 할 예정이다.

AWS의 ELB에는 아래와 같은 종류가 있는데 오늘 사용할 것은 ALB이다.

  • Application Load Balancer
  • Network Load Balancer
  • Gateway Load Balancer
  • Classic Load Balancer

 

1. 로드밸런서 생성하기

신규 로드밸런서를 만들고 아래와 같이 설정한다.

 

 

보안 그룹은 '새 보안 그룹 생성' 을 눌러서 로드 밸런서를 위한 보안그룹을 따로 만들어준다.

VPC 도 내가 만들었던 VPC로 잘 설정해주어야 로드밸런서 선택 창에서 보여진다.

인바운드 규칙은 유형으로는 HTTP, 소스로는 내 IP 를 선택한다.

로드 밸런서 만든 뒤에 웹 서버의 보안 그룹에 변경이 필요하다.

 

그 다음 리스너 및 라우팅에서 대상 그룹 생성 버튼을 누른다.

인스턴스에 대한 로드 밸런싱을 하고, HTTP 접속이 가능하다는 설정이다.

 

 

그 다음 대상 등록에 보이는 두 개의 인스턴스 webserver 1  webserver 2  아래에 보류 중인 것으로 포함 버튼을 통해 대상으로 등록한다.

 

대상 그룹 생성을 완료하고 다시 로드밸런서 선택 창으로 돌아와서

리스너 및 라우팅 에서 대상 그룹으로 지정해준다.

이렇게 설정하고 로드밸런서 생성을 시작한다.

 

2. 웹 서버 보안그룹 변경하기

이제 기존에 만들었던 웹 서버 보안그룹의 인바운드 규칙을 바꿔줘야한다.

그 이유는 아래 구조에서 볼 수 있듯이, 기존에는 내 IP로 직접 웹 서버 접속을 했다면, 이제는 로드밸런서를 한번 거치기 때문이다.

  • 내 IP -> 로드밸런서
  • 로드밸런서 -> 웹 서버

이렇게 접근이 가능해져야한다.

안 그러면 로드밸런서가 아무리 내 트래픽을 분산시켜봐야 웹 서버 접근이 불가능하기 때문이다.

 

그래서 웹 서버 보안그룹(webserver-sg) 의 인바운드 규칙에서 내 IP 의 http 접근을 제거하고, 로드밸런서 보안그룹(webalb-sg)이 HTTP로 접근 가능하게 새로 추가한다.

 

 

 

여기까지 설정을 완료하면, 이제 로드밸런서 DNS 주소로 접속 시도해본다.

 

이제 매번 접속시 마다 가용영역 A와 C로 분산되는 과정을 로드밸런서가 대신 해주는 것이다.

그래서 Application Load Balancer에서 기본으로 제공하는 라운드 로빈 알고리즘으로 그때그때 InstanceID, Availabilty Zone이 달라지게 된다.

 

이제 대상그룹에서 내가 설정한 EC2 들의 상태를 한눈에 확인할 수 있다. 

그런데 왜 Unhealthy로 나오지?