Cloud Infra Architecture (AWS)/AWS SAA-C03

AWS Application Load Balancer(ALB)란? 실습

seongduck 2023. 1. 4. 01:51

ALB 특징

  • HTTP/HTTPS 요청을 로드 밸런싱 해야 하는 경우 사용
  • Web 앱 처리에 적합 (당연히 HTTP이므로)
  • 리스너 규칙을 기반으로 라우팅 설정이 가능함
  • 데이터 전송 보안을 위한 HTTPS 프롵오콜 사용시 SSL/TLS 인증서를 배포해야 함
  • 인증서는 ACM (AWS Certificate Manger)사용 또는 클라이언트 인증서 사용 가능

 

Listener 규칙

  • 조건을 걸어준다. (ex) 크롬 등 HTTP로 80포트로 들어오면 if 조건에 따라 그에 맞는 Target Group으로 라우팅 (트래픽전달) 한다.
  • Host Header : 각 요청의 호스트 이름을 기반으로 라우팅 (ex) aaa.example.com 접속시 이와 연결된 Target Group으로 연결해줌)
  • Path : 요청의 URL의 경로 패턴을 기반으로 라우팅 (www.abc.com/audio, www.abc.video)]
  • Http Header : 각 요청의 HTTP 헤더를 기반으로 라우팅
  • Http request method : 각 요청의 HTTP 요청 매서드를 기반으로 라우팅
  • Query String : 쿼리 문자열의 키/값 페어 또는 값을 기반으로 라우팅
  • Source IP : 각 요청의 소스 IP 주소를 기반으로 라우팅

 

로드 벨런서 생성 및 실습


지난번 만들었던 Target Group인 TG-ALB 대상으로 로드 벨런서를 만들어주자

 

 

 

가용영역은 다 선택한다.

그리고 앞서 만든 Web_Access를 클릭해서 보안그룹을 설정해준다.

Http통신을 할 것이므로 보안그룹에서 미리 뚫어놓은 Http포트가 있는 걸로 선택을 해야한다.

 

리스너도 만들어주고 로드벨런서 생성을 누른다.

생성 완료!!

 

로드 벨런서 접속은 여기 DNS 이름을 통해 URL 창에 넣어주면 정상적으로 접속할 수 있다.

 

  • 접속을 해보면 이전에 인스턴스 2개를 만들었는데 그중 1개로 접속된 것을 확인할 수 있다.
  • 다시 그 접속된 창을 Refresh하면 나머지 1개 인스턴스로 접속된 것을 볼 수 있다.
  • 즉 로드 밸런서로 접속을 하면 동적으로 한 페이지에 고정적으로 접속되는 것이 아닌 사용자가 없는 빈페이지, 빈공간으로 접속되게 해주는 역할을 한다.
  • 이것은 어플리케이션단에서 작용하는 로드 벨런서였다.
  • 하지만 보안 적용이 안된 http이므로 보안적용을 해서 Https로 만들어주자

 

Http => Https로 보안 인증하여 안전하게 바꾸기


로드 벨런서 항목에 들어가 원하는 로드 벨런서를 선택하고 아래 리스너를 클릭한다.

 

HTTPS로 프로토콜을 설정하고 포트는 443으로 설정한다.

HTTP로 접속하더라도 HTTPS로 접속하게 된다. (Redirect를 선택했으므로)

 

SSL/TLS 인증서가 필요하지만 AWS에서 제공하는 ACM을 통해 그부분을 대체해서 할 수 있다.