AWS Lambda
개발자 가이드

별칭을 사용한 트래픽 이동

기본적으로 별칭은 단일 Lambda 함수 버전을 가리킵니다. 다른 함수 버전을 가리키도록 별칭을 업데이트하면 수신되는 요청 트래픽이 즉시 업데이트된 버전을 가리킵니다. 따라서 별칭이 새 함수로 인해 야기되는 모든 잠재적 불안정성에 노출됩니다. 이로 인한 영향을 최소화하기 위해 Lambda 별칭의 routing-config 파라미터를 구현하여 Lambda 함수의 다른 두 버전을 가리키고 각 버전으로 전송할 수신 트래픽의 비율을 지정할 수 있습니다.

예를 들어 수신 트래픽의 2%만 새 버전으로 라우팅되도록 하여 새 버전의 프로덕션 준비성을 분석하고 나머지 98%는 원래 버전으로 라우팅되도록 지정할 수 있습니다. 새 버전이 더 안정화되면 완전히 확신이 들 때까지 필요에 따라 비율을 점진적으로 업데이트할 수 있습니다. 그런 다음 별칭을 업데이트하여 모든 트래픽을 새 버전으로 라우팅할 수 있습니다.

별칭이 최대 두 개의 Lambda 함수 버전을 가리키도록 설정할 수 있습니다. 또한 다음과 같습니다.

  • 두 버전이 동일한 IAM 실행 역할을 가져야 합니다.

  • 두 버전이 동일한 AWS Lambda 함수 배달 못한 편지 대기열 구성을 가지거나 DLQ 구성이 없어야 합니다.

  • 별칭이 둘 이상의 버전을 가리키도록 설정할 때 $LATEST는 가리킬 수 없습니다.

별칭을 사용한 트래픽 이동(CLI)

CreateAlias 작업을 사용하여 가중치를 기반으로 두 함수 버전 간에 트래픽을 이동하도록 별칭을 구성하려면 routing-config 파라미터를 구성해야 합니다. 다음 예제에서는 별칭이 다른 두 함수 버전을 가리키도록 설정합니다. 버전 2는 호출 트래픽의 2%를 수신하고 나머지 98%는 버전 1이 수신합니다.

aws lambda create-alias --name alias name --function-name function-name \ --function-version 1 --routing-config AdditionalVersionWeights={"2"=0.02}

UpdateAlias 작업을 사용하여 새 버전(버전 2)으로 수신되는 트래픽의 비율을 업데이트할 수 있습니다. 예를 들어 다음과 같이 새 버전으로 수신되는 호출 트래픽을 5%로 올릴 수 있습니다.

aws lambda update-alias --name alias name --function-name function-name \ --routing-config AdditionalVersionWeights={"2"=0.05}

모든 트래픽을 버전 2로 라우팅하려면 UpdateAlias 작업을 사용하여 버전 2를 가리키도록 function-version 속성을 변경합니다. 동일한 명령에서 라우팅 구성을 재설정합니다.

aws lambda update-alias --name alias name --function-name function-name \ --function-version 2 --routing-config AdditionalVersionWeights={}

별칭을 사용한 트래픽 이동(콘솔)

아래에서 설명한 대로 Lambda 콘솔을 통해 별칭을 사용한 트래픽 이동을 구성할 수 있습니다.

  1. Lambda 함수를 열고 이전에 게시한 버전이 두 개 이상 있는지 확인합니다. 그렇지 않은 경우 AWS Lambda 버전 관리 소개 단원으로 이동하여 버전 관리에 대해 알아보고 첫 번째 함수 버전을 게시합니다.

  2. [Actions] 메뉴에서 [Create alias]를 선택합니다.

  3. Create a new alias(새 별칭 생성) 창에서 별칭이 가리킬 Lambda 함수의 이름*, 설명(선택 사항) 및 버전* 값을 지정합니다. 여기서는 버전 1을 사용합니다.

  4. [Additional version]에서 다음을 지정합니다.

    1. 두 번째 Lambda 함수 버전을 지정합니다.

    2. 함수의 가중치 값을 입력합니다. 가중치는 별칭이 호출될 때 해당 버전에 할당되는 트래픽의 비율입니다. 첫 번째 버전에는 남은 가중치가 할당됩니다. 예를 들어 [Additional version]에 10%를 지정할 경우 첫 번째 버전에 자동으로 90%가 할당됩니다.

  5. Create를 선택합니다.

호출된 버전 확인

별칭이 두 함수 버전 간에 트래픽을 이동하는 경우 호출된 Lambda 함수 버전이 어떤 것인지 두 가지 방법으로 확인할 수 있습니다.

  1. CloudWatch Logs – 매 함수 호출 시 Lambda에서 호출된 버전 ID가 포함된 START 로그 항목을 자동으로 CloudWatch Logs로 내보냅니다. 예를 들면 다음과 같습니다.

    19:44:37 START RequestId: request id Version: $version

    Lambda는 Executed Version 차원을 사용하여 실행된 버전을 기준으로 측정치 데이터를 필터링합니다. 별칭 호출에만 적용됩니다. 자세한 내용은 AWS Lambda CloudWatch 차원 단원을 참조하십시오.

  2. 응답 페이로드(동기식 호출) – 동기식 함수 호출에 대한 응답에 호출된 함수 버전을 나타내는 x-amz-executed-version 헤더가 포함되어 있습니다.