Application Load Balancer의 대상 그룹 속성을 편집합니다. - Elastic Load Balancing

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

Application Load Balancer의 대상 그룹 속성을 편집합니다.

Application Load Balancer의 대상 그룹을 생성한 후 대상 그룹 속성을 편집할 수 있습니다.

등록 취소 지연

Elastic Load Balancing은 등록 취소 중인 대상으로 요청을 전송하는 것을 중지합니다. 기본적으로 Elastic Load Balancing은 등록 취소 프로세스를 완료하기 전에 300초 동안 대기하는데, 이는 대상에 대해 진행 중인 요청을 완료하는 데 도움이 될 수 있습니다. Elastic Load Balancing이 대기하는 시간을 변경하려면 등록 취소 지연 값을 업데이트합니다.

등록 취소하는 대상의 초기 상태는 draining입니다. 등록 취소 지연이 경과한 후 등록 취소 프로세스가 완료되며 대상 상태는 unused입니다. 대상이 Auto Scaling 그룹의 일부인 경우 종료 및 대체될 수 있습니다.

등록을 취소하는 대상에 진행 중인 요청이 없고 활성 연결이 없는 경우 Elastic Load Balancing은 등록 취소 지연 시간이 경과할 때까지 대기하지 않고 등록 취소 프로세스를 즉시 완료합니다. 하지만 대상 등록 취소가 완료되더라도 대상 상태는 등록 취소 지연 제한 시간이 초과될 때까지 draining으로 표시됩니다. 제한 시간이 초과되면 대상은 unused 상태로 전환됩니다.

등록 취소 지연이 경과되기 전에 등록을 취소하는 대상이 연결을 종료하면 클라이언트는 500 레벨 오류 응답을 수신합니다.

콘솔을 사용하여 등록 취소 지연 값을 업데이트하려면
  1. 에서 Amazon EC2 콘솔을 엽니다 https://console.aws.amazon.com/ec2/.

  2. 탐색 창의 Load Balancing 아래에서 대상 그룹을 선택합니다.

  3. 대상 그룹의 이름을 선택하여 세부 정보 페이지를 엽니다.

  4. 그룹 세부 정보 탭의 속성 섹션에서 편집을 선택합니다.

  5. 속성 편집 페이지에서 필요에 따라 등록 취소 지연 값을 변경합니다.

  6. Save changes(변경 사항 저장)를 선택합니다.

를 사용하여 등록 취소 지연 값을 업데이트하려면 AWS CLI

modify-target-group-attributes명령을 deregistration_delay.timeout_seconds 속성과 함께 사용합니다.

느린 시작 모드

기본적으로, 대상은 대상 그룹으로 등록되자 마자 전체 요청 공유를 받기 시작하고 초기 상태 확인을 전달합니다. 느린 시작 모드를 사용하면 로드 밸런서가 대상으로 전체 요청 공유를 보내기 전에 대상에 워밍업 시간이 제공됩니다.

대상 그룹에 대해 느린 시작을 활성화한 후 대상 그룹이 정상으로 간주하면 해당 대상이 느린 시작 모드로 들어갑니다. 느린 시작 모드의 대상은 구성된 느린 시작 기간이 경과하거나 대상이 비정상 상태가 되면 느린 시작 모드를 종료합니다. 느린 시작 모드에서는 로드 밸런서가 대상으로 보낼 수 있는 요청의 수를 선형으로 증가시킵니다. 정상 대상이 느린 시작 모드를 종료한 후에는 로드 밸런서가 대상으로 전체 요청 공유를 보낼 수 있습니다.

고려 사항
  • 대상 그룹을 위해 느린 시작을 활성화하면, 대상 그룹으로 이미 등록된 정상 대상은 느린 시작 모드를 시작하지 않습니다.

  • 비어있는 대상 그룹을 위해 느린 시작을 활성화한 다음 단일 등록 작업을 사용하여 대상을 등록하면, 이러한 대상들은 느린 시작 모드를 시작하지 않습니다. 느린 시작 모드 상태가 아닌 정상 대상이 최소한 하나 이상 있는 경우에만 새로 등록된 대상이 느린 시작 모드를 시작합니다.

  • 느린 시작 모드에서 대상을 등록 취소하는 경우 대상이 느린 시작 모드를 종료합니다. 동일한 대상을 다시 등록할 경우 대상 그룹이 정상으로 간주하면 느린 시작 모드로 전환됩니다.

  • 느린 시작 모드의 대상이 비정상 상태가 되면 대상이 느린 시작 모드를 종료합니다. 대상이 정상 상태가 되면 다시 느린 시작 모드로 전환됩니다.

  • 미해결 요청이 가장 적거나 가중치가 적용된 임의 라우팅 알고리즘을 사용할 때는 슬로우 스타트 모드를 활성화할 수 없습니다.

콘솔을 사용하여 느린 시작 지속시간 값을 업데이트하려면
  1. 에서 Amazon EC2 콘솔을 엽니다 https://console.aws.amazon.com/ec2/.

  2. 탐색 창의 Load Balancing 아래에서 대상 그룹을 선택합니다.

  3. 대상 그룹의 이름을 선택하여 세부 정보 페이지를 엽니다.

  4. 그룹 세부 정보 탭의 속성 섹션에서 편집을 선택합니다.

  5. 속성 편집 페이지에서 필요에 따라 느린 시작 기간의 값을 변경합니다. 느린 시작 모드를 비활성화하려면 지속시간을 0으로 설정합니다.

  6. Save changes(변경 사항 저장)를 선택합니다.

를 사용하여 슬로우 스타트 기간 값을 업데이트하려면 AWS CLI

modify-target-group-attributes명령을 slow_start.duration_seconds 속성과 함께 사용하십시오.

Application Load Balancer 대상 그룹을 위한 영역 간 로드 밸런싱

로드 밸런서의 노드는 클라이언트로부터 요청을 가져와서 등록된 대상에 분산합니다. 교차 영역 로드 밸런싱이 켜진 경우 각 로드 밸런서 노드가 등록된 모든 가용 영역에 있는 등록된 대상 간에 트래픽을 분산합니다. 교차 영역 로드 밸런싱이 꺼진 경우 각 로드 밸런서 노드가 해당 가용 영역에 있는 등록된 대상 간에만 트래픽을 분산합니다. 이는 영역 장애 도메인이 지역보다 선호되는 경우 정상 영역이 비정상 영역의 영향을 받지 않도록 하거나 전반적인 지연 시간을 개선하기 위한 것일 수 있습니다.

Application Load Balancer를 사용하면 교차 영역 로드 밸런싱이 로드 밸런서 수준에서 항상 켜져 있으며 끌 수 없습니다. 대상 그룹의 경우 기본적으로 로드 밸런서 설정을 사용하지만 대상 그룹 수준에서 교차 영역 로드 밸런싱을 명시적으로 해제하여 기본값을 재정의할 수 있습니다.

고려 사항
  • 교차 영역 로드 밸런싱이 꺼져 있는 경우 대상 고정성이 지원되지 않습니다.

  • 교차 영역 로드 밸런싱이 꺼져 있는 경우 대상으로서의 Lambda 함수는 지원되지 않습니다.

  • 대상에 매개 변수가 AvailabilityZone 설정되어 있는 ModifyTargetGroupAttributes API 경우 를 통해 영역 간 부하 분산을 해제하려고 하면 오류가 all 발생합니다.

  • 대상을 등록할 때는 AvailabilityZone 파라미터가 필요합니다. 교차 영역 로드 밸런싱이 꺼진 경우에만 특정 가용 영역 값을 사용할 수 있습니다. 그렇지 않으면 파라미터가 무시되고 all(으)로 처리됩니다.

모범 사례
  • 대상 그룹별로 활용할 것으로 예상되는 모든 가용 영역에서 충분한 대상 용량을 계획하세요. 참여하는 모든 가용 영역에서 충분한 용량을 계획할 수 없다면 교차 영역 로드 밸런싱을 유지하는 것이 좋습니다.

  • 여러 대상 그룹으로 Application Load Balancer를 구성할 때는 모든 대상 그룹이 구성된 지역 내의 동일한 가용 영역에 속해 있는지 확인하세요. 이는 영역 간 부하 분산이 꺼져 있는 동안 가용 영역이 비어 있는 것을 방지하기 위한 것입니다. 이렇게 하면 빈 가용 영역에 들어오는 모든 HTTP 요청에 대해 503 오류가 발생하기 때문입니다.

  • 빈 서브넷을 생성하지 마십시오. 애플리케이션 로드 밸런서는 빈 서브넷의 영역 IP 주소를 노출하므로 DNS 요청에 대해 503 오류가 발생합니다. HTTP

  • 교차 영역 로드 밸런싱이 해제된 대상 그룹의 가용 영역당 계획된 대상 용량이 충분하지만 가용 영역의 모든 대상이 비정상 상태가 되는 경우가 있을 수 있습니다. 비정상 대상이 모두 포함된 대상 그룹이 하나 이상 있는 경우 로드 밸런서 노드의 IP 주소가 제거됩니다. DNS 대상 그룹에 정상 대상이 하나 이상 있으면 IP 주소가 복원됩니다. DNS

교차 영역 로드 밸런싱 해제

Application Load Balancer 대상 그룹에 대해 언제든지 교차 영역 로드 밸런싱을 끌 수 있습니다.

콘솔을 사용하여 교차 영역 로드 밸런싱을 해제하려면
  1. 에서 Amazon EC2 콘솔을 엽니다 https://console.aws.amazon.com/ec2/.

  2. 탐색 창의 Load Balancing(로드 밸런싱)에서 Target Groups(대상 그룹)을 선택합니다.

  3. 대상 그룹의 이름을 선택하여 세부 정보 페이지를 엽니다.

  4. Attributes(속성) 탭에서 Edit(편집)을 선택합니다.

  5. Edit target group attributes(대상 그룹 속성 편집) 페이지에서 Cross-zone load balancing(교차 영역 로드 밸런싱)에 대해 Off(해제)를 선택합니다.

  6. Save changes(변경 사항 저장)를 선택합니다.

를 사용하여 영역 간 로드 밸런싱을 해제하려면 AWS CLI

modify-target-group-attributes명령을 사용하고 load_balancing.cross_zone.enabled 속성을 로 false 설정합니다.

aws elbv2 modify-target-group-attributes --target-group-arn my-targetgroup-arn --attributes Key=load_balancing.cross_zone.enabled,Value=false

다음은 응답의 예입니다.

{ "Attributes": [ { "Key": "load_balancing.cross_zone.enabled", "Value": "false" }, ] }

교차 영역 로드 밸런싱 설정

Application Load Balancer 대상 그룹에 대해 언제든지 교차 영역 로드 밸런싱을 켤 수 있습니다. 대상 그룹 수준의 교차 영역 로드 밸런싱 설정은 로드 밸런서 수준의 설정을 재정의합니다.

콘솔을 사용하여 교차 영역 로드 밸런싱을 설정하려면
  1. 에서 Amazon EC2 콘솔을 엽니다 https://console.aws.amazon.com/ec2/.

  2. 탐색 창의 Load Balancing(로드 밸런싱)에서 Target Groups(대상 그룹)을 선택합니다.

  3. 대상 그룹의 이름을 선택하여 세부 정보 페이지를 엽니다.

  4. Attributes(속성) 탭에서 Edit(편집)을 선택합니다.

  5. Edit target group attributes(대상 그룹 속성 편집) 페이지에서 Cross-zone load balancing(교차 영역 로드 밸런싱)에 대해 On(사용)을 선택합니다.

  6. Save changes(변경 사항 저장)를 선택합니다.

를 사용하여 영역 간 로드 밸런싱을 활성화하려면 AWS CLI

modify-target-group-attributes명령을 사용하고 load_balancing.cross_zone.enabled 속성을 로 true 설정합니다.

aws elbv2 modify-target-group-attributes --target-group-arn my-targetgroup-arn --attributes Key=load_balancing.cross_zone.enabled,Value=true

다음은 응답의 예입니다.

{ "Attributes": [ { "Key": "load_balancing.cross_zone.enabled", "Value": "true" }, ] }

자동 목표 가중치 () ATW

자동 목표 가중치 (ATW) 는 애플리케이션을 실행하는 대상을 지속적으로 모니터링하여 예외라고 하는 심각한 성능 편차를 탐지합니다. ATW실시간 데이터 이상 탐지를 통해 타겟으로 라우팅되는 트래픽의 양을 동적으로 조정할 수 있는 기능을 제공합니다.

자동 목표 가중치 (ATW) 는 계정의 모든 Application Load Balancer에서 예외 항목 탐지를 자동으로 수행합니다. 이상 대상이 식별되면 해당 대상이 라우팅되는 트래픽의 양을 줄여 대상을 자동으로 안정화하려고 ATW 시도할 수 있습니다. 이를 이상 완화라고 합니다. ATW트래픽 분배를 지속적으로 최적화하여 대상 그룹 실패율을 최소화하는 동시에 대상별 성공률을 극대화합니다.

고려 사항:
  • 현재 이상 탐지는 대상에서 오는 HTTP 5xx 응답 코드 및 대상으로의 연결 장애를 모니터링합니다. 이상 탐지는 항상 켜져 있으며 끌 수 없습니다.

  • ATWLambda를 타겟으로 사용할 때는 지원되지 않습니다.

이상 탐지

ATW이상 탐지는 대상 그룹의 다른 대상과 동작에서 상당한 편차를 보이는 대상을 모니터링합니다. 이상 현상이라고 하는 이러한 편차는 한 대상의 오류 백분율을 대상 그룹 내 다른 대상의 오류 백분율과 비교하여 결정됩니다. 이러한 오류는 연결 오류일 수도 있고 오류 코드일 수도 있습니다. HTTP 그러면 상대방보다 훨씬 높은 수치를 보고하는 대상은 변칙적인 것으로 간주됩니다.

이상 징후를 탐지하려면 대상 그룹에 최소 세 개의 정상 표적이 있어야 합니다. 대상이 대상 그룹에 등록된 경우 먼저 상태 확인을 통과해야 트래픽 수신을 시작할 수 있습니다. 대상이 대상을 수신하면 대상 모니터링을 ATW 시작하고 이상 결과를 지속적으로 게시합니다. 예외가 없는 대상의 경우 예외 결과는 다음과 같습니다. normal 이상이 있는 대상의 경우 예외 결과는 다음과 같습니다. anomalous

ATW이상 탐지는 대상 그룹 상태 점검과는 별개로 작동합니다. 대상이 모든 대상 그룹 상태 검사를 통과하더라도 오류율이 높아져 여전히 비정상 상태로 표시될 수 있습니다. 대상이 변칙 상태가 되어도 대상 그룹 상태 점검 상태에는 영향을 주지 않습니다.

이상 탐지 상태

ATW대상에 대해 수행하는 이상 탐지 상태를 지속적으로 게시합니다. OR를 사용하여 언제든지 현재 상태를 볼 수 있습니다. AWS Management Console AWS CLI

콘솔을 사용하여 이상 탐지 상태를 보려면
  1. 에서 Amazon EC2 콘솔을 엽니다 https://console.aws.amazon.com/ec2/.

  2. 탐색 창의 Load Balancing 아래에서 대상 그룹을 선택합니다.

  3. 대상 그룹의 이름을 선택하여 세부 정보 페이지를 엽니다.

  4. 대상 그룹 세부 정보 페이지에서 대상 탭을 선택합니다.

  5. 등록된 대상 테이블의 예외 항목 탐지 결과 열에서 각 대상의 예외 항목 상태를 볼 수 있습니다.

    이상이 감지되지 않은 경우 결과는 다음과 같습니다. normal

    이상이 감지된 경우 결과는 다음과 같습니다. anomalous

를 사용하여 이상 탐지 결과를 보려면 AWS CLI

Include.member.N속성 값을 로 설정한 상태로 describe-target-health명령을 사용합니다. AnomalyDetection

이상 현상 완화

중요

의 예외 항목 완화 기능은 가중치 기반 랜덤 라우팅 ATW 알고리즘을 사용할 때만 사용할 수 있습니다.

ATW이상 완화 기능은 트래픽을 변칙 대상으로부터 자동으로 멀어지게 하여 공격 대상을 복구할 기회를 제공합니다.

완화 기간 중:
  • ATW비정상적인 대상으로 라우팅되는 트래픽의 양을 주기적으로 조정합니다. 현재 이 주기는 5초마다 한 번씩입니다.

  • ATW변칙 대상으로 라우팅되는 트래픽의 양을 예외 항목 완화를 수행하는 데 필요한 최소량으로 줄입니다.

  • 더 이상 변칙으로 감지되지 않는 대상은 대상 그룹의 다른 정상 대상과 동등한 수준에 도달할 때까지 점점 더 많은 트래픽이 해당 대상으로 라우팅됩니다.

예외 항목 완화 기능을 켜십시오. ATW

언제든지 예외 항목 완화를 켤 수 있습니다.

콘솔을 사용하여 예외 항목 완화를 켜려면
  1. 에서 Amazon EC2 콘솔을 엽니다 https://console.aws.amazon.com/ec2/.

  2. 탐색 창의 Load Balancing 아래에서 대상 그룹을 선택합니다.

  3. 대상 그룹의 이름을 선택하여 세부 정보 페이지를 엽니다.

  4. 대상 그룹 세부 정보 페이지의 속성 탭에서 편집을 선택합니다.

  5. 대상 그룹 속성 편집 페이지의 트래픽 구성 섹션에서 로드 밸런싱 알고리즘에서 가중치 무작위가 선택되어 있는지 확인합니다.

    참고: 가중치 무작위 알고리즘을 처음 선택하면 예외 항목 탐지가 기본적으로 켜집니다.

  6. 예외 항목 완화에서 예외 항목 완화 켜기가 선택되어 있는지 확인하십시오.

  7. Save changes(변경 사항 저장)를 선택합니다.

다음을 사용하여 예외 항목 완화를 활성화하려면 AWS CLI

modify-target-group-attributes명령을 속성과 함께 사용하십시오. load_balancing.algorithm.anomaly_mitigation

예외 항목 완화 상태

대상에 대해 완화를 수행할 때마다 ATW OR를 사용하여 언제든지 현재 상태를 볼 수 있습니다. AWS Management Console AWS CLI

콘솔을 사용하여 이상 완화 상태를 보려면
  1. 에서 Amazon EC2 콘솔을 엽니다 https://console.aws.amazon.com/ec2/.

  2. 탐색 창의 Load Balancing 아래에서 대상 그룹을 선택합니다.

  3. 대상 그룹의 이름을 선택하여 세부 정보 페이지를 엽니다.

  4. 대상 그룹 세부 정보 페이지에서 대상 탭을 선택합니다.

  5. 등록된 대상 테이블의 완화 적용 중 열에서 각 대상의 예외 항목 완화 상태를 볼 수 있습니다.

    완화가 진행 중이 아닌 경우 상태는 입니다. yes

    완화 작업이 진행 중인 경우 상태는 입니다. no

를 사용하여 예외 항목 완화 상태를 보려면 AWS CLI

Include.member.N속성 값이 로 설정된 상태에서 describe-target-health명령을 사용합니다. AnomalyDetection

Application Load Balancer에 대한 고정 세션

기본적으로, Application Load Balancer는 선택한 로드 밸런싱 알고리즘에 따라 각 요청을 등록된 대상으로 독립적으로 라우팅합니다. 한편, 고정 세션 기능(세션 어피니티라고도 함)을 사용해 로드 밸런서가 사용자의 세션을 특정 대상에 바인딩하도록 할 수 있습니다. 이렇게 하면 세션 중에 사용자로부터 들어오는 모든 요청이 동일한 대상으로 전송됩니다. 이 기능은 클라이언트에게 지속적인 경험을 제공하기 위해 상태 정보를 유지하는 서버에 유용합니다. 고정 세션을 사용하려면 클라이언트가 쿠키를 지원해야 합니다.

Application Load Balancer는 기간 기반 쿠키와 애플리케이션 기반 쿠키를 둘 다 지원합니다. 고정 세션은 대상 그룹 레벨에서 활성화됩니다. 전체 대상 그룹에 대해 기간 기반 고정, 애플리케이션 기반 고정, 고정 없음을 조합하여 사용할 수 있습니다.

고정 세션 관리에서 핵심은 로드 밸런서가 얼마나 오래 사용자 요청을 동일한 대상으로 일관되게 라우팅하는지를 결정하는 것입니다. 애플리케이션이 자체 세션 쿠키를 가지고 있는 경우에는 애플리케이션 기반 고정을 사용할 수 있으며 로드 밸런서 세션 쿠키는 애플리케이션의 세션 쿠키에 지정된 기간을 따릅니다. 애플리케이션이 자체 세션 쿠키를 가지고 있지 않은 경우에는 기간 기반 고정을을 사용하여 원하는 기간이 지정된 로드 밸런서 세션 쿠키를 생성할 수 있습니다.

로드 밸런서 생성 쿠키의 내용은 회전 키를 사용하여 암호화됩니다. 로드 밸런서가 생성한 쿠키는 해독하거나 변경할 수 없습니다.

두 고정 유형 모두에서, Application Load Balancer는 모든 요청 후에 생성하는 쿠키의 만료 기간을 재설정합니다. 쿠키가 만료되면 세션은 더 이상 고정되지 않으며 클라이언트는 쿠키 저장소에서 쿠키를 제거해야 합니다.

요구 사항
  • HTTP/HTTPS로드 밸런서.

  • 각 가용 영역에 있는 하나 이상의 정상 상태 인스턴스입니다.

고려 사항
  • 교차 영역 로드 밸런싱이 비활성화된 경우 스티키 세션이 지원되지 않습니다. 교차 영역 로드 밸런싱이 비활성화된 상태에서 고정 세션을 활성화하려고 시도하면 실패합니다.

  • 애플리케이션 기반 쿠키의 경우, 각 대상 그룹에 대해 쿠키 이름을 개별적으로 지정해야 합니다. 그러나 기간 기반 쿠키의 경우, AWSALB은(는) 모든 대상 그룹에서 사용되는 유일한 이름입니다.

  • Application Load Balancer의 여러 계층을 사용하는 경우, 애플리케이션 기반 쿠키를 사용하여 모든 계층에서 고정 세션을 활성화할 수 있습니다. 그러나 기간 기반 쿠키를 사용하면 하나의 레이어에서만 고정 세션을 활성화할 수 있습니다. AWSALB이(가) 사용할 수 있는 유일한 이름이기 때문입니다.

  • Application Load Balancer가 기간 기반 고정성 AWSALBCORS 쿠키와 AWSALB 기간 기반 고정성 쿠키를 모두 수신하는 경우 의 값이 우선합니다. AWSALBCORS

  • 애플리케이션 기반 고정은 가중 대상 그룹에서 작동하지 않습니다.

  • 대상 그룹이 여러 개인 전달 작업이 있고 하나 이상의 대상 그룹에 고정 세션이 활성화되어 있으면 대상 그룹 레벨에서 고정을 활성화해야 합니다.

  • WebSocket 연결은 본질적으로 고정적입니다. 클라이언트가 연결 업그레이드를 요청하는 경우 연결 업그레이드를 수락하기 위해 WebSockets HTTP 101 상태 코드를 반환하는 대상이 연결에 사용되는 대상입니다. WebSockets WebSockets 업그레이드가 완료된 후에는 쿠키 기반 고정성이 사용되지 않습니다.

  • Application Load Balancer는 쿠키 헤더에서 Max-Age 속성 대신 Expires 속성을 사용합니다.

  • 애플리케이션 로드 밸런서는 인코딩된 쿠키 값을 지원하지 않습니다. URL

기간 기반 고정

기간 기반 고정은 로드 밸런서 생성 쿠키(AWSALB)를 사용하여 대상 그룹의 동일한 대상으로 요청을 라우팅합니다. 쿠키는 세션을 대상에 매핑하는 데 사용됩니다. 애플리케이션에 자체 세션 쿠키가 없는 경우, 고유한 고정 기간을 지정하고 로드 밸런서가 사용자 요청을 동일한 대상으로 일관되게 라우팅하는 기간을 관리할 수 있습니다.

처음 클라이언트의 요청을 받으면 로드 밸런서는 (선택한 알고리즘을 기반으로) 요청을 대상으로 라우팅하고 AWSALB(이)라는 쿠키를 생성합니다. 선택한 대상에 대한 정보를 인코딩하고, 쿠키를 암호화하고, 클라이언트에 대한 응답에 쿠키를 포함합니다. 로드 밸런서에서 생성된 쿠키는 만료 기간이 7일이며 이는 구성할 수 없습니다.

후속 요청에서 클라이언트는 AWSALB 쿠키를 포함해야 합니다. 로드 밸런서는 쿠키를 포함하는 클라이언트로부터 요청을 수신하면 이를 감지하고 해당 요청을 동일한 대상으로 라우팅합니다. 쿠키가 있지만 디코딩할 수 없거나 등록이 해제되었거나 비정상 상태인 대상을 참조하는 경우 로드 밸런서는 새 대상을 선택하고 새 대상에 대한 정보로 쿠키를 업데이트합니다.

출처 간 리소스 공유 (CORS) 요청의 경우 일부 브라우저에서는 고정성을 SameSite=None; Secure 활성화해야 합니다. 이러한 브라우저를 지원하기 위해 로드 밸런서는 항상 두 번째 고정성 쿠키를 생성합니다. 이 쿠키에는 속성뿐 아니라 원래 고정 쿠키와 동일한 정보가 포함됩니다. AWSALBCORS SameSite 클라이언트는 비요청을 포함하여 두 쿠키를 모두 수신합니다. CORS

콘솔을 사용하여 기간 기반 고정을 활성화하는 방법
  1. 에서 Amazon EC2 콘솔을 엽니다 https://console.aws.amazon.com/ec2/.

  2. 탐색 창의 Load Balancing 아래에서 대상 그룹을 선택합니다.

  3. 대상 그룹의 이름을 선택하여 세부 정보 페이지를 엽니다.

  4. 그룹 세부 정보 탭의 속성 섹션에서 편집을 선택합니다.

  5. [Edit attributes] 페이지에서 다음을 수행합니다.

    1. 고정성을 선택합니다.

    2. 고정 유형에서 로드 밸런서 생성 쿠키를 선택합니다.

    3. [Stickiness duration]에서 1초에서 7일 사이의 값을 지정합니다.

    4. Save changes(변경 사항 저장)를 선택합니다.

지속 시간 기반 고정성을 활성화하려면 다음을 사용하십시오. AWS CLI

modify-target-group-attributes명령을 및 속성과 함께 사용하십시오. stickiness.enabled stickiness.lb_cookie.duration_seconds

다음 명령을 사용하여 기간 기반 고정을 활성화합니다.

aws elbv2 modify-target-group-attributes --target-group-arn ARN --attributes Key=stickiness.enabled,Value=true Key=stickiness.lb_cookie.duration_seconds,Value=time-in-seconds

다음 예와 유사하게 출력되어야 합니다:

{ "Attributes": [ ... { "Key": "stickiness.enabled", "Value": "true" }, { "Key": "stickiness.lb_cookie.duration_seconds", "Value": "86500" }, ... ] }

애플리케이션 기반 고정

애플리케이션 기반 고정은 클라이언트 대상 고정에 대한 사용자 고유의 기준을 설정할 수 있는 유연성을 제공합니다. 애플리케이션 기반 고정을 활성화하면 로드 밸런서는 선택한 알고리즘을 기반으로 첫 번째 요청을 대상 그룹 내의 대상으로 라우팅합니다. 대상은 고정을 활성화하기 위해 로드 밸런서에 구성된 쿠키와 일치하는 사용자 지정 애플리케이션 쿠키를 설정해야 합니다. 이 사용자 지정 쿠키에는 애플리케이션에 필요한 모든 쿠키 속성이 포함될 수 있습니다.

Application Load Balancer가 대상으로부터 사용자 지정 애플리케이션 쿠키를 수신하면, 애플리케이션 쿠키라는 암호화된 새 쿠키가 자동으로 생성되어 고정 정보를 캡처합니다. 이 로드 밸런서에서 생성한 애플리케이션 쿠키는 애플리케이션 기반 고정성이 활성화된 각 대상 그룹에 대한 고정 정보를 캡처합니다.

로드 밸런서에서 생성한 애플리케이션 쿠키는 대상에 의해 설정된 사용자 지정 쿠키의 속성을 복사하지 않습니다. 여기에는 구성할 수 없는 7일의 자체 만료 기간이 있습니다. 클라이언트에 대한 응답에서 Application Load Balancer는 사용자 지정 쿠키의 값 또는 만료 속성이 아니라, 대상 그룹 수준에서 사용자 지정 쿠키가 구성된 이름만 검증합니다. 이름이 일치하는 한, 로드 밸런서는 클라이언트에 대한 응답에서 로드 밸런서가 생성한 애플리케이션 쿠키 및 대상에서 설정한 사용자 지정 쿠키와 같이 두 쿠키를 모두 전송합니다.

후속 요청에서, 클라이언트는 고정을 유지하기 위해 쿠키를 둘 다 다시 보내야합니다. 로드 밸런서는 애플리케이션 쿠키를 해독하고 구성된 고정 기간이 여전히 유효한지 여부를 확인합니다. 그런 다음 쿠키에 있는 정보를 사용하여 대상 그룹 내의 동일한 대상으로 요청을 전송하여 고정을 유지합니다. 또한, 로드 밸런서는 사용자 지정 애플리케이션 쿠키를 검사하거나 수정하지 않고 대상으로 프록시합니다. 후속 응답에서 로드 밸런서가 생성한 애플리케이션 쿠키의 만료 및 로드 밸런서에 구성된 고정 기간이 재설정됩니다. 클라이언트와 대상 사이의 고정성을 유지하려면 쿠키의 만료 및 고정 기간이 경과하지 않아야 합니다.

대상이 실패하거나 비정상 상태가 되면 로드 밸런서는 해당 대상으로의 요청 라우팅을 중지하고 선택한 로드 밸런싱 알고리즘을 기반으로 정상 상태의 대상을 새로 선정합니다. 로드 밸런서는 세션을 정상 상태의 새 대상에 “고정”된 것으로 간주하고, 실패한 대상이 다시 오더라도 요청을 정상 상태의 새 대상으로 계속 라우팅합니다.

크로스 오리진 리소스 공유 (CORS) 요청의 경우 고정성을 활성화하기 위해 로드 밸런서는 사용자 에이전트 버전이 Chromium80 이상인 경우에만 로드 밸런서가 생성한 애플리케이션 쿠키에 SameSite=None; Secure 속성을 추가합니다.

대부분의 브라우저는 쿠키를 4K로 제한하기 때문에 로드 밸런서는 애플리케이션 쿠키를 4K보다 큰 여러 쿠키로 분할합니다. Application Load Balancer는 최대 16K 크기의 쿠키를 지원하므로 클라이언트로 전송하는 샤드를 최대 4개까지 생성할 수 있습니다. 클라이언트에 표시되는 애플리케이션 쿠키 이름은 “-”로 시작하며 프래그먼트 번호를 포함합니다. AWSALBAPP 예를 들어 쿠키 크기가 0-4K인 경우 클라이언트에는 -0이 표시됩니다. AWSALBAPP 쿠키 크기가 4-8k인 경우 클라이언트는 AWSALBAPP -0과 AWSALBAPP -1을 보는 식입니다.

콘솔을 사용하여 애플리케이션 기반 고정을 활성화하는 방법
  1. 에서 Amazon EC2 콘솔을 엽니다 https://console.aws.amazon.com/ec2/.

  2. 탐색 창의 Load Balancing 아래에서 대상 그룹을 선택합니다.

  3. 대상 그룹의 이름을 선택하여 세부 정보 페이지를 엽니다.

  4. 그룹 세부 정보 탭의 속성 섹션에서 편집을 선택합니다.

  5. [Edit attributes] 페이지에서 다음을 수행합니다.

    1. 고정성을 선택합니다.

    2. 고정 유형에서 애플리케이션 기반 쿠키를 선택합니다.

    3. [Stickiness duration]에서 1초에서 7일 사이의 값을 지정합니다.

    4. 앱 쿠키 이름에서 애플리케이션 기반 쿠키의 이름을 입력합니다.

      쿠키 이름에는 AWSALB, AWSALBAPP 또는 AWSALBTG을(를) 사용하지 마세요. 이 단어는 로드 밸런서에서 사용하도록 예약되어 있습니다.

    5. Save changes(변경 사항 저장)를 선택합니다.

를 사용하여 애플리케이션 기반 고정성을 활성화하려면 AWS CLI

modify-target-group-attributes명령을 다음 속성과 함께 사용하십시오.

  • stickiness.enabled

  • stickiness.type

  • stickiness.app_cookie.cookie_name

  • stickiness.app_cookie.duration_seconds

애플리케이션 기반 고정을 활성화하려면 다음 명령을 사용합니다.

aws elbv2 modify-target-group-attributes --target-group-arn ARN --attributes Key=stickiness.enabled,Value=true Key=stickiness.type,Value=app_cookie Key=stickiness.app_cookie.cookie_name,Value=my-cookie-name Key=stickiness.app_cookie.duration_seconds,Value=time-in-seconds

다음 예와 유사하게 출력되어야 합니다:

{ "Attributes": [ ... { "Key": "stickiness.enabled", "Value": "true" }, { "Key": "stickiness.app_cookie.cookie_name", "Value": "MyCookie" }, { "Key": "stickiness.type", "Value": "app_cookie" }, { "Key": "stickiness.app_cookie.duration_seconds", "Value": "86500" }, ... ] }
수동 재조정

확장 시 대상 수가 크게 증가하면 고정으로 인해 하중이 불균등하게 분산될 가능성이 있습니다. 이 시나리오에서는 다음 두 옵션을 사용하여 대상에 대한 부하를 재조정할 수 있습니다.

  • 애플리케이션에 의해 생성된 쿠키에 대한 만료일을 현재 날짜 및 시간 이전으로 설정합니다. 이렇게 하면 클라이언트가 쿠키를 Application Load Balancer에 보내지 못하게되어, 고정을 설정하는 프로세스가 다시 시작됩니다.

  • 로드 밸런서의 애플리케이션 기반 고정 구성에서 매우 짧은 기간을 설정합니다(예: 1초). 이렇게 하면 대상에 의해 설정된 쿠키가 만료되지 않은 경우에도 Application Load Balancer가 고정을 다시 설정합니다.