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

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

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

리스너를 생성할 때 기본 규칙을 정의합니다. 언제든지 추가 규칙을 정의할 수 있습니다. 각 규칙은 작업과 조건을 지정해야 합니다. 자세한 내용은 작업 유형조건 유형 섹션을 참조하세요.

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

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

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

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

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

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

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

    • 호스트 헤더 - 호스트 헤더를 입력합니다. 예를 들어 *.example.com입니다.

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

    • 경로 - 경로를 입력합니다. 예를 들어 /item/*입니다.

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

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

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

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

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

    • HTTP 헤더 - 헤더의 이름을 입력하고 비교 문자열을 하나 이상 추가합니다.

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

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

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

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

    • 소스 IP - 소스 IP 주소를 CIDR 형식으로 정의합니다.

      IPv4 및 IPv6 CIDR 모두 허용됩니다. 와일드카드는 지원되지 않습니다.

  8. (선택 사항) 인증 규칙을 추가하려면 자격 증명 공급자를 선택한 사용자 인증을 선택하고 필요한 정보를 제공합니다. 자세한 내용은 Application Load Balancer를 사용하여 사용자 인증 단원을 참조하십시오.

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

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

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

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

  10. 다음을 선택합니다.

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

  12. 다음을 선택합니다.

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

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

다음 예제에서는 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