웹사이트 검색

AWS 애플리케이션 로드 밸런서에서 호스트 기반 라우팅을 구성하는 방법


이 페이지에서

  1. 이 가이드의 개요
  2. EC2 인스턴스 구성
  3. 대상 그룹 구성
  4. 대상 그룹에 EC2 인스턴스 등록
  5. Application Load Balancer 생성
  6. 호스트 기반 전달 규칙 추가\n
  7. Route 53에 도메인 등록
  8. 설정 확인 중…\n
  9. 결론

AWS에서 ELB 또는 Elastic Load Balancing은 애플리케이션의 요구에 따라 서버를 추가하거나 해제할 수 있는 개념입니다. 애플리케이션에서 들어오는 트래픽은 여러 대상에 분산됩니다. 이러한 대상은 하나 이상의 가용 영역에 있는 EC2 인스턴스, 컨테이너 및 IP 주소일 수 있습니다. 지원되는 AWS Elastic Load Balancer 유형은 Application Load Balancer(ALB), Network Load Balancer(NLB), Gateway Load Balancer(최근 출시) 및 Classic Load Balancer입니다. 이러한 로드 밸런서는 구성이 다릅니다. 예를 들면 다음과 같습니다.

<올 스타일=텍스트-정렬:왼쪽>

  • Application Load Balancer: 2개 이상의 EC2 인스턴스 간에 들어오는 애플리케이션 트래픽을 자동으로 분산하여 작동합니다. 요청 내용에 따라 라우팅 규칙을 정의할 수 있습니다(콘텐츠 기반 라우팅). 레이어 7 로드 밸런서입니다.
  • 네트워크 로드 밸런서: NLB는 IP 프로토콜 데이터(TCP 및 UDP)를 사용하여 EC2, 마이크로서비스 및 컨테이너와 같은 AWS 리소스에 대한 연결을 라우팅합니다. 레이어 4 로드 밸런서입니다.
  • 게이트웨이 로드 밸런서: EC2 인스턴스에서 실행되는 NextGen 방화벽(NGFW), IPS, IDS 등과 같은 타사 가상 어플라이언스와 함께 사용됩니다. 여러 가상 어플라이언스의 트래픽에 대해 단일 게이트웨이를 배치하여 작동하며 이러한 여러 가상 어플라이언스는 수요에 따라 확장하거나 축소할 수 있습니다. 이는 네트워크의 안정성에 좋습니다. Layer 3(Gateway)와 Layer 4(Load Balancing) 로드 밸런서입니다.
  • 클래식 로드 밸런서: CLB는 여러 EC2 인스턴스 간의 로드 밸런싱에 사용되는 AWS의 레거시 로드 밸런서입니다. EC2-Classic 네트워크 내에서 설계된 애플리케이션에 권장됩니다. 레이어 4/7 로드 밸런서입니다. 이 로드 밸런서를 피하려면 AWS에서 권장합니다.\n

    이 가이드 개요


    이 자습서에서는 AWS의 Application Load Balancer에 대한 경로 기반 라우팅을 구성합니다. 이 작업에 필요한 제한된 권한을 가진 IAM 사용자 계정을 사용할 것입니다. 이 실험을 위해 다음과 같은 리소스가 있습니다.

    <올 스타일=텍스트-정렬:왼쪽>

  • 각각 최소 하나의 EC2 인스턴스를 포함하는 두 개의 가용 영역.\n
  • VPC에는 위의 두 가용 영역 각각에 최소 하나의 퍼블릭 서브넷이 있습니다. 이 퍼블릭 서브넷은 로드 밸런서를 구성하는 데 사용됩니다.\n
  • 각 인스턴스에 웹 서버를 설치하고 보안 그룹을 사용하여 이러한 인스턴스에 대한 포트 80 액세스를 허용합니다.\n

    EC2 인스턴스 구성

    이 가이드에서는 apache Httpd가 설치된 두 개의 Amazon Linux EC2 인스턴스를 구성했습니다. 한 서버에는 "Welcome User? Sign in to continue...\ 내용이 포함된 'signin' 디렉토리와 index.html 파일이 있습니다.

    다른 서버에는 "New User? Sign Up First...\ 내용이 포함된 'signup' 디렉토리와 index.html 파일이 있습니다.

    'signin' 및 'signup' 디렉터리는 모두 루트 디렉터리(/var/www/html) 안에 있습니다.

    대상 그룹 구성

    1단계. 요청을 라우팅하기 위해 먼저 각 서버에 대해 하나씩 두 개의 대상 그룹을 생성합니다. EC2 콘솔을 열고 왼쪽 패널에서 '대상 그룹'을 찾아 선택합니다(로드 밸런싱 아래에 있음).

    2단계. 새 페이지에서 '대상 그룹 만들기' 버튼을 클릭합니다.

    <올 스타일=텍스트-정렬:왼쪽>

  • 대상 유형 선택: 여기에서 '인스턴스'를 선택합니다.\n
  • 대상 그룹 이름: 대상 그룹에 적합한 이름을 지정합니다(이 경우 '로그인').\n
  • 프로토콜: HTTP\n
  • 포트: 80
  • VPC: 여기에서 VPC 이름을 선택합니다.\n
  • 프로토콜 버전: 기본적으로 선택된 것을 유지합니다.(HTTP1)\n

    '상태 확인' 설정에서:

    상태 확인 프로토콜: HTTP

    상태 확인 경로: '사용하려는 경로'(이 경우 '/signin')

    '고급 상태 확인 설정'을 기본값으로 유지합니다. 필요한 경우 태그를 추가합니다(선택 사항). 계속하려면 '다음'을 클릭하십시오.

    대상 그룹에 EC2 인스턴스 등록

    3단계. 이제 위의 대상 그룹에 EC2 인스턴스 중 하나를 추가합니다. 인스턴스를 선택한 다음 '아래 보류로 포함' 버튼을 클릭합니다.

    애플리케이션 로드 밸런서 생성

    1단계. EC2 콘솔에서 로드 밸런서로 이동하여 로드 밸런서 생성 버튼을 클릭한 다음 새 페이지에 표시된 'Application Load Balancer'를 선택합니다.

    6단계. 선택적 단계는 건너뛸 수 있습니다. 이제 요약을 검토하고 '로드 밸런서 생성' 버튼을 누르십시오.

    호스트 기반 전달 규칙 추가

    1단계. 이제 다시 '로드 밸런서' 페이지로 이동하여 여기에서 대상 로드 밸런서를 찾으십시오.

    2단계. ALB 상태가 활성으로 변경되면 포워딩 규칙을 진행합니다. 로드 밸런서 이름을 클릭한 다음 수신기 탭으로 이동합니다.

    3단계. '규칙' 열에서 '규칙 보기/편집'을 클릭한 다음 '+' 기호와 '규칙 삽입'을 차례로 클릭합니다.

    4단계. 'IF(모두 일치) 열에서 '+ 조건 추가' 드롭다운 화살표를 클릭하고 규칙 유형으로 '호스트'를 선택하고 호스트 이름 또는 도메인 이름('www.signin.tecofers.com '는 'is' 레이블에 해당하는 텍스트 필드에 있습니다.

    5단계. 'Then' 열에서 '+작업 추가' 드롭다운 화살표를 클릭하고 작업으로 '전달 대상'을 선택합니다. 여기에서 대상 그룹 'Sign-In'을 선택합니다.
    호스트 이름 또는 도메인 이름(여기서는 'www.signup.tecofers.com')을 사용하여 대상 그룹 'SignUp'에 대해 위의 2단계와 3단계를 반복합니다. 규칙을 저장하면 두 가지 규칙이 생깁니다.

    마지막 규칙은 위의 두 가지 조건이 충족되지 않으면 기본 조치에 대한 것입니다.

    Route 53에 도메인 등록

    인터넷을 통한 호스트 기반 라우팅에 대한 호스트/도메인을 등록하려면 Route 53 내부의 호스트 이름/도메인 이름과 함께 해당 EC2 인스턴스의 DNS 이름을 추가해야 합니다.

    1단계. 관리 콘솔에서 Route 53 대시보드를 열고 '호스팅 영역 생성'을 클릭합니다.

    도메인: 호스팅 영역에 해당하는 하위 도메인입니다.

    레코드 유형: 여기에서 A 유형을 선택합니다.

    값/라우팅 트래픽:

      \n
    1. 애플리케이션 및 Classic Load Balancer에 대한 별칭 선택\n
    2. 로드 밸런서가 있는 지역 선택
    3. 대상 로드 밸런서를 선택합니다.\n

    이제 위의 레코드가 다음과 같이 표시됩니다.

    설정 확인 중…

    모든 것이 예상대로 작동하는지 확인하려면 웹 브라우저를 열고 로드 밸런서의 DNS를 붙여넣고 다음을 추가합니다.

    1) '가입' 대상의 호스트 이름

    2) '로그인' 대상의 호스트 이름

    결론

    축하합니다. 마침내 AWS 애플리케이션 로드 밸런서에서 호스트 기반 라우팅을 위한 작업 시나리오를 구성했습니다.