기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
리스너 규칙의 조건 유형
조건은 수신 요청이 리스너 규칙을 적용하기 위해 충족해야 하는 기준을 정의합니다. 요청이 규칙의 조건과 일치하는 경우 요청은 규칙의 작업에 지정된 대로 처리됩니다. 각 규칙 조건에는 유형과 구성 정보가 있습니다. Application Load Balancer는 리스너 규칙에 대해 다음과 같은 조건 유형을 지원합니다.
조건 유형
host-header
-
각 요청의 호스트 이름을 기반으로 라우팅합니다. 자세한 내용은 호스트 조건 단원을 참조하세요.
http-header
-
각 요청의 HTTP 헤더를 기반으로 라우팅합니다. 자세한 내용은 HTTP 헤더 조건 단원을 참조하세요.
http-request-method
-
각 요청의 HTTP 요청 메서드를 기반으로 라우팅합니다. 자세한 내용은 HTTP 요청 메서드 조건 단원을 참조하세요.
path-pattern
-
요청 URL의 경로 패턴을 기반으로 라우팅합니다. 자세한 내용은 경로 조건 단원을 참조하세요.
query-string
-
쿼리 문자열의 키/값 페어 또는 값을 기반으로 라우팅합니다. 자세한 내용은 쿼리 문자열 조건 단원을 참조하세요.
source-ip
-
각 요청의 소스 IP 주소를 기반으로 라우팅합니다. 자세한 내용은 소스 IP 주소 조건 단원을 참조하십시오.
조건 기본 사항
-
각 규칙에는 선택적으로
host-header
,http-request-method
,path-pattern
및source-ip
조건 중 하나 이상을 포함할 수 있습니다. 또한 각 규칙에는 선택적으로http-header
및query-string
조건 중 하나 이상을 포함할 수 있습니다. -
조건당 최대 3개의 일치 평가를 지정할 수 있습니다. 예를 들어 각
http-header
조건에 대해 요청의 HTTP 헤더 값과 비교할 최대 3개의 문자열을 지정할 수 있습니다. 문자열 중 하나가 HTTP 헤더 값과 일치하면 조건이 충족됩니다. 모든 문자열이 일치하도록 요구하려면 일치 평가마다 조건 하나를 만듭니다. -
규칙당 최대 5개의 일치 평가를 지정할 수 있습니다. 예를 들어 조건 5개 각각에 일치 평가가 하나씩 있는 규칙을 만들 수 있습니다.
-
http-header
,host-header
,path-pattern
,query-string
조건의 일치 평가에 와일드카드 문자를 포함시킬 수 있습니다. 규칙당 와일드카드 문자는 5개로 제한됩니다. -
규칙은 표시되는 ASCII 문자에만 적용되며 제어 문자(0x00에서 0x1f 및 0x7f)는 제외됩니다.
데모
데모는 고급 요청 라우팅
HTTP 헤더 조건
HTTP 헤더 조건을 사용하여 요청의 HTTP 헤더를 기반으로 요청을 라우팅하는 규칙을 구성할 수 있습니다. 표준 또는 사용자 지정 HTTP 헤더 필드의 이름을 지정할 수 있습니다. 헤더 이름과 일치 평가는 대/소문자를 구분하지 않습니다. 비교 문자열에서는 *(0개 이상의 문자 일치) 및 ?(정확히 1자 일치) 와일드카드 문자가 지원됩니다. 와일드카드 문자는 헤더 이름에서는 지원되지 않습니다.
Application Load Balancer 속성routing.http.drop_invalid_header_fields
이 활성화되면 정규식()을 준수하지 않는 헤더 이름이 삭제됩니다A-Z,a-z,0-9
. 정규식을 준수하지 않는 헤더 이름도 추가할 수 있습니다.
예 에 대한 HTTP 헤더 조건 예제 AWS CLI
규칙을 만들거나 수정할 때 조건을 지정할 수 있습니다. 자세한 내용은 create-rule 및 modify-rule 명령을 참조하세요. 다음 조건은 지정된 문자열 중 하나와 일치하는 User-Agent 헤더가 있는 요청에 의해 충족됩니다.
[ { "Field": "http-header", "HttpHeaderConfig": { "HttpHeaderName": "User-Agent", "Values": ["*Chrome*", "*Safari*"] } } ]
HTTP 요청 메서드 조건
HTTP 요청 메서드 조건을 사용하여 요청의 HTTP 요청 메서드를 기반으로 요청을 라우팅하는 규칙을 구성할 수 있습니다. 표준 또는 사용자 지정 HTTP 메서드를 지정할 수 있습니다. 일치 평가는 대/소문자를 구분합니다. 와일드카드 문자는 지원되지 않으므로 메서드 이름이 정확히 일치해야 합니다.
GET 및 HEAD 요청을 동일한 방식으로 라우팅하는 것이 좋습니다. HEAD 요청에 대한 응답이 캐싱될 수 있기 때문입니다.
예 에 대한 HTTP 메서드 조건 예제 AWS CLI
규칙을 만들거나 수정할 때 조건을 지정할 수 있습니다. 자세한 내용은 create-rule 및 modify-rule 명령을 참조하세요. 다음 조건은 지정된 메서드를 사용하는 요청에 의해 충족됩니다.
[ { "Field": "http-request-method", "HttpRequestMethodConfig": { "Values": ["CUSTOM-METHOD"] } } ]
호스트 조건
호스트 조건을 사용하여 호스트 헤더의 호스트 이름을 기반으로 요청을 라우팅하는 규칙을 정의할 수 있습니다(호스트 기반 라우팅이라고도 함). 그러면 단일 로드 밸런서를 사용하여 여러 하위 도메인과 여러 최상위 도메인을 지원할 수 있습니다.
호스트 이름은 대/소문자를 구별하지 않고 최대 128자까지 가능하며 다음과 같은 문자를 포함할 수 있습니다.
-
A~Z, a~z, 0~9
-
- .
-
* (0개 이상의 문자에 해당)
-
?(정확히 한 글자에 해당)
'.' 문자를 하나 이상 포함해야 합니다. 마지막 "." 문자 다음에는 알파벳만 포함할 수 있습니다.
호스트 이름 예제
-
example.com
-
test.example.com
-
*.example.com
규칙 *.example.com은 test.example.com과 일치하나 example.com과 일치하지 않습니다.
예 에 대한 호스트 헤더 조건 예제 AWS CLI
규칙을 만들거나 수정할 때 조건을 지정할 수 있습니다. 자세한 내용은 create-rule 및 modify-rule 명령을 참조하세요. 다음 조건은 지정된 문자열과 일치하는 호스트 헤더가 있는 요청에 의해 충족됩니다.
[ { "Field": "host-header", "HostHeaderConfig": { "Values": ["*.example.com"] } } ]
경로 조건
경로 조건을 사용하여 요청의 URL을 기반으로 요청을 라우팅하는 규칙을 정의할 수 있습니다(경로 기반 라우팅이라고도 함).
경로 패턴은 쿼리 파라미터가 아닌 URL의 경로에만 적용됩니다. 표시되는 ASCII 문자에만 적용되며 제어 문자(0x00에서 0x1F 및 0x7f)는 제외됩니다.
규칙 평가는 URI 정규화가 발생한 후에만 수행됩니다.
경로 패턴은 대/소문자를 구별하고 최대 128자이며 다음과 같은 문자를 포함할 수 있습니다.
-
A~Z, a~z, 0~9
-
_ - . $ / ~ " ' @ : +
-
&(& 사용)
-
* (0개 이상의 문자에 해당)
-
?(정확히 한 글자에 해당)
프로토콜 버전이 gRPC인 경우 조건은 패키지, 서비스 또는 메서드에 따라 달라질 수 있습니다.
HTTP 경로 패턴의 예
-
/img/*
-
/img/*/pics
gRPC 경로 패턴의 예
-
/package
-
/package.service
-
/package.service/method
경로 패턴은 요청을 라우팅하는 데 사용되지만 요청을 변경하지 않습니다. 예를 들어 /img/*
(이)라는 경로 패턴을 가진 규칙은 /img/picture.jpg
에 대한 요청을 /img/picture.jpg
에 대한 요청으로서 지정된 대상 그룹에 전달합니다.
예 에 대한 경로 패턴 조건 예 AWS CLI
규칙을 만들거나 수정할 때 조건을 지정할 수 있습니다. 자세한 내용은 create-rule 및 modify-rule 명령을 참조하세요. 다음 조건은 지정된 문자열이 포함된 URL이 있는 요청에 의해 충족됩니다.
[ { "Field": "path-pattern", "PathPatternConfig": { "Values": ["/img/*"] } } ]
쿼리 문자열 조건
쿼리 문자열 조건을 사용하여 쿼리 문자열의 키/값 페어 또는 값을 기반으로 요청을 라우팅하는 규칙을 구성할 수 있습니다. 일치 평가는 대/소문자를 구분하지 않습니다. *(0개 이상의 문자 일치) 및 ?(정확히 1자 일치) 와일드카드 문자가 지원됩니다.
예 에 대한 쿼리 문자열 조건 예제 AWS CLI
규칙을 만들거나 수정할 때 조건을 지정할 수 있습니다. 자세한 내용은 create-rule 및 modify-rule 명령을 참조하세요. 다음 조건은 키/값 페어 "version=v1" 또는 “example”로 설정된 키가 포함된 쿼리 문자열이 있는 요청에 의해 충족됩니다.
[ { "Field": "query-string", "QueryStringConfig": { "Values": [ { "Key": "version", "Value": "v1" }, { "Value": "*example*" } ] } } ]
소스 IP 주소 조건
소스 IP 주소 조건을 사용하여 요청의 소스 IP 주소를 기반으로 요청을 라우팅하는 규칙을 구성할 수 있습니다. IP 주소는 CIDR 형식으로 지정해야 합니다. IPv4 및 IPv6 주소를 모두 사용할 수 있습니다. 와일드카드 문자는 지원되지 않습니다. 소스 IP 규칙 조건에 대한 255.255.255.255/32
CIDR을 지정할 수 없습니다.
클라이언트가 프록시 뒤에 있는 경우, 이는 클라이언트의 IP 주소가 아니라 프록시의 IP 주소입니다.
이 조건은 X-Forwarded-For 헤더의 주소에 의해 충족되지 않습니다. X-Forwarded-For 헤더에서 주소를 검색하려면 http-header
조건을 사용합니다.
예 에 대한 소스 IP 조건 예제 AWS CLI
규칙을 만들거나 수정할 때 조건을 지정할 수 있습니다. 자세한 내용은 create-rule 및 modify-rule 명령을 참조하세요. 다음 조건은 지정된 CIDR 블록 중 하나에 소스 IP 주소가 있는 요청에 의해 충족됩니다.
[ { "Field": "source-ip", "SourceIpConfig": { "Values": ["192.0.2.0/24", "198.51.100.10/32"] } } ]