변경된 UI에서 Application Load Balancer의 경로 기반 라우팅을 실시해 봤습니다.

변경된 UI에서 Application Load Balancer의 경로 기반 라우팅을 실시해 봤습니다.

변경된 UI에서 Application Load Balancer의 경로 기반 라우팅을 실시해 봤습니다.
Clock Icon2025.05.27

안녕하세요 클래스메소드 김재욱(Kim Jaewook) 입니다. 이번에는 변경된 UI에서 Application Load Balancer의 경로 기반 라우팅을 실시해 봤습니다.

UI가 변경되기 전 실시했던 경로 기반 라우팅 설정은 아래 블로그를 통해 확인할 수 있습니다.

https://dev.classmethod.jp/articles/jw-port-path-based-routing-via-listener-rules-in-application-load-balancer/#toc----

https://dev.classmethod.jp/articles/about-the-application-load-balancer/

사전 준비

먼저 경로 기반 라우팅을 실시하기에 앞서 사전 준비가 필요합니다.

  • EC2 인스턴스에 Apache 설치
  • 보안 그룹 설정
  • 타겟 그룹 생성
  • ALB 생성

이렇게 4가지 설정이 끝났다면 경로 기반 라우팅을 설정할 수 있습니다.

먼저 간단하게 Apache를 설치하고 Apache의 루트 폴더에 index.html 페이지롤 복사합시다.

sudo yum install httpd
sudo systemctl start httpd
sudo systemctl status httpd

cp /usr/share/httpd/noindex/index.html /var/www/html/index.html

Apache 설치가 끝났다면, 경로 기반 라우팅을 위해 루트 디렉토리가 되는 경로를 하나 만들어 둡시다.

web 폴더를 하나 생성하고 해당 폴더에 index.html 파일을 생성합니다. 이 파일에는 임의로 [web test page]라는 텍스트를 입력했습니다.

sudo mkdir web
sudo vi index.html

이어서 EC2 인스턴스의 보안 그룹입니다. 특별한 설정은 필요 없고 ALB의 보안 그룹에 대한 HTTP 포트를 열어줍니다.

jw-blgalbkeo-2

ALB의 보안 그룹도 특별한 설정 없이 HTTPS로의 경로를 열어줍시다.

jw-blgalbkeo-3

이제 ALB를 생성하기에 앞서 타겟 그룹을 생성해야 하는데, 타겟 그룹에서는 [상태 검사 경로]를 조금 전 루트 디렉터리로 설정 예정이었던 [web]을 입력하도록 합시다.

jw-blgalbkeo-1

이렇게 모든 설정이 끝났다면 ALB를 생성합시다.

경로 기반 라우팅 설정

이제 사전 준비가 끝났다면, 경로 기반 라우팅을 설정합시다. 먼저 생성한 ALB를 선택하여 [규칙]을 클릭합니다.

jw-blgalbkeo-4

가장 기본이 되는 규칙을 변경합시다.

jw-blgalbkeo-5

먼저 라우팅 액션에서 [고정 응답 변환]을 선택합니다. 이어서 콘텐츠 유형은 [text/html]을 선택하고 응답 본문에 html 코드를 기입합니다. 이렇게 설정함으로써 [www.example.com]로 접속했을 때 지정한 html 코드를 보여주어 잘못된 접근을 알리고 [www.example.com/web/]으로 접근했을 때만 원하는 페이지를 출력하게 할 수 있습니다.

jw-blgalbkeo-6

html 코드는 아래를 참고해 주세요.

<!DOCTYPE html>
<html>
  <head><title>404 Not Found</title></head>
  <body><h1>이 페이지는 존재하지 않습니다.</h1></body>
</html>

이제 [www.example.com/web/]으로 접속했을 때의 규칙을 추가합시다.

jw-blgalbkeo-7

규칙은 [경로]를 선택하고 경로는 [/web/*] 입력합니다. 타겟 그룹은 기존에 생성했던 타겟 그룹을 그대로 선택하고 규칙 생성을 끝마칩니다.

jw-blgalbkeo-8

※ 규칙을 설정할 때 어떤 규칙을 먼저 적용할지 "우선 순위(priority)" 를 설정할 수 있습니다. 이 우선 순위는 숫자 값에 따라 결정되며, 1이 10보다 먼저 적용됩니다.

결과 확인

결과 확인을 위해서 [www.example.com]으로 접속을 해 보면, [이 페이지는 존재하지 않습니다.] 라는 페이지가 출력됩니다. 다른 경로 기반 라우팅을 설정하지 않는 이상 [www.example.com/web/] 이외의 페이지에서는 동일하게 페이지가 출력되지 않을 것입니다.

jw-blgalbkeo-9

반대로 경로 기반을 설정한 [www.example.com/web/]로 접속해 보면 성공적으로 웹 페이지가 출력되는 것을 확인할 수 있습니다.

jw-blgalbkeo-10

본 블로그 게시글을 읽고 궁금한 사항이 있으신 분들은 jaewookkim533@yahoo.com로 보내주시면 감사하겠습니다.

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.