Application Load Balancer에 대한 리스너 규칙 추가 - Elastic Load Balancing

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Application Load Balancer에 대한 리스너 규칙 추가

리스너를 생성할 때 기본 규칙을 정의합니다. 언제든지 추가 규칙을 정의할 수 있습니다. 각 규칙은 작업과 조건을 지정해야 하며 선택적으로 변환을 지정할 수 있습니다. 자세한 내용은 다음 자료를 참조하세요.

Console
규칙을 추가하려면
  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

  2. 탐색 창에서 로드 밸런서를 선택합니다.

  3. 로드 밸런서를 선택합니다.

  4. 리스너 및 규칙 탭에서 프로토콜: 포트 열의 텍스트를 선택하여 리스너에 대한 세부 정보 페이지를 엽니다.

  5. 규칙 탭에서 규칙 추가를 선택합니다.

  6. (선택 사항) 규칙의 이름을 지정하려면 이름 및 태그를 확장하고 이름을 입력합니다. 태그를 추가하려면 추가 태그 추가를 선택하고 태그 키와 태그 값을 입력합니다.

  7. 각 조건에 대해 조건 추가를 선택하고 조건 유형을 선택한 다음 필요한 조건 값을 제공합니다.

    • 호스트 헤더 - 일치 패턴 유형을 선택하고 호스트 헤더를 입력합니다.

      값 일치 - 최대 128자입니다. 대/소문자를 구분하지 않습니다. 허용되는 문자는 a-z, A-Z, 0-9이고 특수 문자는 -_., 와일드카드(* 및 ?) 입니다. '.' 문자를 하나 이상 포함해야 합니다. 마지막 "." 문자 다음에는 알파벳만 포함할 수 있습니다.

      정규식 일치 - 최대 128자입니다.

    • 경로 - 일치 패턴 유형을 선택하고 경로를 입력합니다.

      값 일치 - 최대 128자입니다. 대소문자 구분. 허용되는 문자는 a-z, A-Z, 0-9이고 특수 문자는 _-.$/~"'@:+; &; and wildcards (* 및 ?)입니다.

      정규식 일치 - 최대 128자입니다.

    • 쿼리 문자열 - 키:값 페어 또는 키가 없는 값을 입력합니다.

      최대 128자입니다. 대/소문자를 구분하지 않습니다. 허용되는 문자는 a-z, A-Z, 0-9이며 특수 문자는 _-.$/~"'@:+&()!,;=; 및 와일드카드(* 및 ?)입니다.

    • HTTP 요청 메서드 - HTTP 요청 메서드를 입력합니다.

      최대 40자입니다. 대소문자 구분. 허용되는 문자는 A-Z이고 특수 문자는 -_입니다. 와일드카드는 지원되지 않습니다.

    • HTTP 헤더 - 일치 패턴 유형을 선택하고 헤더의 이름과 비교 문자열을 입력합니다.

      • HTTP 헤더 이름— 규칙은 이 헤더가 포함된 요청을 평가하여 일치하는 값을 확인합니다.

        값 일치 - 최대 40자입니다. 대/소문자를 구분하지 않습니다. 허용되는 문자는 a-z, A-Z, 0-9이며 특수 문자는 *?-!#$%&'+.^_`|~입니다. 와일드카드는 지원되지 않습니다.

        정규식 일치 - 최대 128자입니다.

      • HTTP 헤더 값— HTTP 헤더 값과 비교할 문자열을 입력합니다.

        값과 일치하는 최대 128자입니다. 대/소문자를 구분하지 않습니다. 허용되는 문자는 a-z, A-Z, 0-9; 공백입니다. 특수 문자는 !"#$%&'()+,./:;<=>@[]^_`{|}~-; 및 와일드카드(* 및 ?)입니다.

        정규식 일치 - 최대 128자입니다.

    • 소스 IP - 소스 IP 주소를 CIDR 형식으로 정의합니다. IPv4 및 IPv6 CIDR 모두 허용됩니다. 와일드카드는 지원되지 않습니다.

  8. (선택 사항) 변환을 추가하려면 변환 추가를 선택하고 변환 유형을 선택한 다음 일치시킬 정규식과 대체 문자열을 입력합니다.

  9. (선택 사항) HTTPS 리스너에 인증 규칙을 추가하려면 작업, 사용자 인증, 자격 증명 공급자 선택 및 필수 정보 제공을 선택합니다. 자세한 내용은 Application Load Balancer를 사용하여 사용자 인증 단원을 참조하십시오.

  10. 작업, 라우팅 작업에서 다음 라우팅 작업 중 하나를 선택하고 필요한 정보를 제공합니다.

    • 대상 그룹으로 전달 - 대상 그룹을 선택합니다. 다른 대상 그룹을 추가하려면 대상 그룹 추가를 선택하고, 대상 그룹을 선택하고, 상대 가중치를 검토하고, 필요에 따라 가중치를 업데이트합니다. 대상 그룹에 고정을 활성화한 경우 그룹 수준 고정을 활성화해야 합니다.

    • URL로 리디렉션 - URI 부분 탭에 각 부분을 별도로 입력하거나 전체 URL 탭에 전체 주소를 입력하여 URL을 입력합니다. 상태 코드에서 필요에 따라 임시(HTTP 302) 또는 영구(HTTP 301)을 선택합니다.

    • 고정 응답 반환 - 삭제된 클라이언트 요청에 대해 반환할 응답 코드를 입력합니다. 선택적으로 콘텐츠 유형응답 본문을 지정할 수 있습니다.

  11. 다음을 선택합니다.

  12. Priority에 1~50,000 범위의 값을 입력합니다. 규칙은 가장 낮은 값부터 가장 높은 값까지 우선 순위에 따라 평가됩니다.

  13. 다음을 선택합니다.

  14. 검토 및 생성 페이지에서 생성을 선택합니다.

AWS CLI
규칙을 추가하려면

create-rule 명령을 사용합니다.

다음 예제에서는 forward 작업과 host-header 조건이 포함된 규칙을 생성합니다.

aws elbv2 create-rule \ --listener-arn listener-arn \ --priority 10 \ --conditions "Field=host-header,Values=example.com,www.example.com" \ --actions "Type=forward,TargetGroupArn=target-group-arn"

두 대상 그룹 간에 트래픽을 분산하는 전달 작업을 생성하려면 대신 다음 --actions 옵션을 사용합니다.

--actions '[{ "Type":"forward", "ForwardConfig":{ "TargetGroups":[ {"TargetGroupArn":"target-group-1-arn","Weight":50}, {"TargetGroupArn":"target-group-2-arn","Weight":50} ] } }]'

다음 예제에서는 fixed-response 작업과 source-ip 조건이 포함된 규칙을 생성합니다.

aws elbv2 create-rule \ --listener-arn listener-arn \ --priority 20 \ --conditions '[{"Field":"source-ip","SourceIpConfig":{"Values":["192.168.1.0/24","10.0.0.0/16"]}}]' \ --actions "Type=fixed-response,FixedResponseConfig={StatusCode=403,ContentType=text/plain,MessageBody='Access denied'}"

다음 예제에서는 redirect 작업과 http-header 조건이 포함된 규칙을 생성합니다.

aws elbv2 create-rule \ --listener-arn listener-arn \ --priority 30 \ --conditions '[{"Field":"http-header","HttpHeaderConfig":{"HttpHeaderName":"User-Agent","Values":["*Mobile*","*Android*","*iPhone*"]}}]' \ --actions "Type=redirect,RedirectConfig={Host=m.example.com,StatusCode=HTTP_302}"
CloudFormation
규칙을 추가하려면

AWS::ElasticLoadBalancingV2::ListenerRule 유형의 리소스를 정의합니다.

다음 예제에서는 forward 작업과 host-header 조건이 포함된 규칙을 생성합니다. 조건이 충족되면 규칙이 지정된 대상 그룹으로 트래픽을 전송합니다.

Resources: myForwardListenerRule: Type: 'AWS::ElasticLoadBalancingV2::ListenerRule' Properties: ListenerArn: !Ref myListener Priority: 10 Conditions: - Field: host-header Values: - example.com - www.example.com Actions: - Type: forward TargetGroupArn: !Ref myTargetGroup

또는 조건이 충족될 때 두 대상 그룹 간에 트래픽을 분산하는 전달 작업을 생성하려면 다음과 Actions 같이를 정의합니다.

Actions: - Type: forward ForwardConfig: TargetGroups: - TargetGroupArn: !Ref TargetGroup1 Weight: 50 - TargetGroupArn: !Ref TargetGroup2 Weight: 50

다음 예제에서는 fixed-response 작업과 source-ip 조건이 포함된 규칙을 생성합니다.

Resources: myFixedResponseListenerRule: Type: 'AWS::ElasticLoadBalancingV2::ListenerRule' Properties: ListenerArn: !Ref myListener Priority: 20 Conditions: - Field: source-ip SourceIpConfig: Values: - 192.168.1.0/24 - 10.0.0.0/16 Actions: - Type: fixed-response FixedResponseConfig: StatusCode: 403 ContentType: text/plain MessageBody: "Access denied"

다음 예제에서는 redirect 작업과 http-header 조건이 포함된 규칙을 생성합니다.

Resources: myRedirectListenerRule: Type: 'AWS::ElasticLoadBalancingV2::ListenerRule' Properties: ListenerArn: !Ref myListener Priority: 30 Conditions: - Field: http-header HttpHeaderConfig: HttpHeaderName: User-Agent Values: - "*Mobile*" - "*Android*" - "*iPhone*" Actions: - Type: redirect RedirectConfig: Host: m.example.com StatusCode: HTTP_302