Site icon 지락문화예술공작단

AWS Application Load Balancer(ALB) 고급 요청 라우팅 기능 출시

AWS Application Load Balancer(ALB) 고급 요청 라우팅 기능 출시

AWS의 부하 분산 서비스인 Application Load Balancer는 2016년 6월에 출시되었습니다! 콘텐츠 기반 라우팅을 지원하는 이 서비스는 서버리스 및 컨테이너 기반 애플리케이션에서 작동하며 유연하게 크기를 조정할 수 있습니다. 많은 AWS 고객이 포트 전송(컨테이너 기반 애플리케이션에 유용함), 상태 확인, 서비스 검색, 리디렉션, 고정 응답기본 인증 등의 다른 ALB 기능을 활용하면서 기존의 호스트 및 경로 기반 라우팅을 사용하여 HTTP 및 HTTPS 애플리케이션을 구동하고 있습니다.

오늘은 고급 요청 라우팅(Advanced Request Routing)의 새로운 기능을 소개합니다.

고급 요청 라우팅

이 호스트 기반 라우팅 기능을 사용하면 Host 헤더를 사용하여 원하는 대상 그룹으로 트래픽을 라우팅하는 규칙을 작성할 수 있습니다. 오늘 이 기능이 확장되고 일반화됨에 따라 이제 표준 및 사용자 지정 HTTP 헤더 및 메서드, 쿼리 문자열과 소스 IP 주소를 기반으로 규칙을 작성하고 트래픽을 라우팅할 수 있습니다. 또한 보다 강력한 규칙 및 조건을 사용할 수 있습니다. 즉, 규칙에 다수의 조건(AND 사용)을 사용하고 각 조건에서 여러 값에 대한 일치 항목(OR 사용)을 지정할 수 있게 됩니다.

이 새로운 기능을 사용하여 애플리케이션 아키텍처를 간소화하고 프록시 플릿 없이 라우팅을 수행하고 불필요한 트래픽을 로드 밸런서에서 차단할 수 있습니다. 다음은 몇 가지 사용 사례입니다.

고급 요청 라우팅 사용하기

기존 규칙을 편집하기만 하면 기존 Application Load Balancer에서 이 기능을 사용할 수 있습니다. 고정된 일반 텍스트 응답을 반환하는 단순한 규칙부터 시작하도록 하겠습니다. 이 게시물의 예제는 테스트 및 설명을 위한 것이며 실제로는 더 실용적이고 흥미로운 규칙을 작성하게 될 것입니다.

curl을 사용하여 테스트할 수 있습니다.

$ curl http://TestALB-156468799.elb.amazonaws.com
Default rule reached!

[Insert Rule]을 클릭하여 몇 가지 고급 요청 라우팅을 설정합니다.

그런 다음 [Add condition]을 클릭하고 사용 가능한 옵션을 검사합니다.

[Http header]를 선택한 후 이름이 user이고 값이 jeff인 쿠키를 찾는 조건을 생성합니다. 그런 다음 고정된 응답을 반환하는 작업을 생성합니다.

[Save]를 클릭하고 변경 내용이 적용될 때까지 잠시 기다린 후 한 쌍의 요청을 실행합니다.

$ curl http://TestALB-156468799.elb.amazonaws.com
Default rule reached!

$ curl --cookie "user=jeff" http://TestALB-156468799.elb.amazonaws.com
Hello Jeff

하나 이상의 일치하는 IP 주소 CIDR 블록을 찾는 규칙을 생성할 수도 있습니다.

$ curl http://TestALB-156468799.elb.amazonaws.com
Hello EC2 Instance

쿼리 문자열 기준으로 일치를 수행할 수 있습니다(A/B 테스트에서 매우 유용함).

$ curl http://TestALB-156468799.elb.amazonaws.com?ABTest=A
A/B test, option A selected 

특정 필드 이름의 존재 유무만 확인하면 되는 경우에는 와일드카드를 사용할 수도 있습니다.

일치하는 표준 또는 사용자 지정 HTTP 메서드를 찾을 수 있습니다. 여기서는 READ라는 이름의 메서드를 만들겠습니다.

$ curl --request READ http://TestALB-156468799.elb.amazonaws.com
Custom READ method invoked

작업은 매우 유연하게 생성할 수 있습니다. 새로운 기능은 아니지만 검토하는 것이 좋을 것입니다.

[Forward to]는 요청을 대상 그룹(EC2 인스턴스 세트, Lambda 함수 또는 IP 주소 목록)으로 라우팅합니다.

[Redirect to]는 301 (permanent) 또는 302 (found) 응답을 생성하며 HTTP와 HTTPS를 전환할 때 사용될 수도 있습니다.

[Return fixed response]는 앞서 보여드린 것과 같이 원하는 응답 코드가 포함된 정적 응답을 생성합니다.

[Authenticate]는 Amazon Cognito 또는 OIDC 공급자를 사용하여 요청을 인증합니다(HTTPS 리스너만 해당).

주요 사항
다음은 이 신선하고 강력한 새 기능에 대해 알아두어야 할 몇 가지 다른 사항입니다.

지표Rule EvaluationsHTTP fixed response count CloudWatch 지표를 검토하면 규칙과 관련된 활동에 대한 자세한 내용을 확인할 수 있습니다(자세히 알아보기).

프로그래밍 방식 액세스ALB APICLI(CloudFormation 지원이 곧 제공될 예정임)를 사용하여 규칙을 생성, 수정, 검사 및 삭제할 수도 있습니다.

규칙 일치 – 규칙은 문자열 일치를 통해 작동하므로 규칙이 의도한 대로 기능하는지 테스트하고 두 번 확인하십시오. ALB 액세스 로그의 matched_rule_priorityactions_executed 필드는 테스트 디버깅 시 유용하게 사용될 수 있습니다(자세히 알아보기).

제한 – 각 ALB에는 기본값을 제외한 최대 100개의 규칙이 포함될 수 있습니다. 각 규칙은 최대 5개의 값을 참조하고 최대 5개의 와일드카드를 사용할 수 있습니다. 조건 수는 참조되는 고유한 값의 수로만 제한됩니다.

정식 출시

모든 AWS 리전에서 추가 요금 없이 고급 요청 라우팅을 사용할 수 있습니다(Application Load Balancer에 대한 일반 요금 지불).

Jeff;

 

Source: AWS Application Load Balancer(ALB) 고급 요청 라우팅 기능 출시

Exit mobile version