Lambda 함수를 호출할 때 502 및 500 오류를 해결하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2019년 9월 25일

AWS Lambda 함수를 호출하려고 하면 502 또는 500 서버 측 오류와 함께 요청이 실패합니다. 이 오류를 해결하려면 어떻게 해야 합니까?

해결 방법

표시되는 특정 Lambda Invoke API 오류를 식별한 다음 오류에 대한 문제 해결 단계를 따릅니다. 발생 가능한 오류 목록(설명 포함)은 Lambda 호출 API 참조에서 오류를 확인하십시오.

EC2AccessDeniedException

Lambda 함수의 실행 역할이 Amazon Virtual Private Cloud(Amazon VPC)에서 Amazon Elastic Compute Cloud(Amazon EC2)에 액세스하려면 다음과 같은 권한이 있어야 합니다.

  • ec2: CreateNetworkInterface
  • ec2: DescribeNetworkInterfaces
  • ec2: DeleteNetworkInterface

이러한 권한은 AWS 관리형 정책 AWSLambdaVPCAccessExecutionRole에 포함되어 있습니다. 자세한 내용은 실행 역할 및 사용자 권한을 참조하십시오.

EC2ThrottledException

AWS는 서비스 성능을 지원하기 위해 지역별로 각 AWS 계정에 대한 Amazon EC2 API 요청을 조절합니다. 자세한 내용은 쿼리 API 요청 빈도를 참조하십시오.

Amazon CloudWatch를 사용하여 AWS 계정에서 수행한 Amazon EC2 API 요청의 양을 검토합니다. 계정이 최대 허용 요청 빈도를 초과하는 경우 Lambda 외부에서 수행하는 이러한 요청의 양을 줄입니다.

EC2UnexpectedException

이 오류는 가장 일반적으로 Lambda가 탄력적 네트워크 인터페이스(ENI)를 생성하려고 시도하는 동안 500 오류를 수신할 때 발생합니다. 지수 백오프 알고리즘을 사용하여 요청을 다시 시도하십시오. 자세한 내용은 AWS의 오류 재시도 횟수 및 지수 백오프를 참조하십시오.

InvalidSecurityGroupIDException

Lambda 함수 구성에서 올바른 Amazon VPC 보안 그룹 ID를 지정했는지 확인합니다. 자세한 내용은 VPC의 리소스에 액세스하도록 Lambda 함수 구성을 참조하십시오.

ENILimitReachedException

Amazon VPC 지원 Lambda 함수는 연결된 서브넷에서 ENI를 생성합니다. 이러한 함수가 확장되면 더 많은 ENI가 생성됩니다. 계정당 및 지역당 ENI 제한이 있습니다. 현재 제한을 보려면 Amazon EC2 콘솔의 제한을 참조하십시오.

Amazon VPC에는 Lambda 함수의 요구 사항을 충족하기에 충분한 ENI 용량이 있어야 합니다. 함수의 ENI 요구 사항을 추정하려면 다음 공식을 사용합니다.

Projected peak concurrent executions * (Memory in GB / 3 GB)

Amazon VPC의 현재 ENI 한도가 요구 사항을 충족하지 않는 경우 AWS 지원 센터를 통해 한도 증가를 요청할수 있습니다. [Requests]의 [Limit]에서 [Network Interfaces per Region]을 선택합니다.)

SubnetIPAddressLimitReachedException

서브넷의 크기는 서브넷의 CIDR 블록에 의해 정의됩니다. Amazon VPC에서 지정하는 CIDR 블록에 Amazon VPC 지원 Lambda 함수의 요구 사항에 맞는 충분한 여유 IP 주소가 있는지 확인합니다. 자세한 내용은 VPC 및 서브넷 크기 조정을 참조하십시오.

KMSAccessDeniedException

Lambda 함수의 AWS Identity and Access Management(AWS IAM) 권한과 AWS Key Management Service(AWS KMS) 키 정책을 확인합니다.

고객 마스터 키(CMK)에 대한 사용자 지정 키 정책을 사용하는 경우 Lambda 함수의 실행 역할에 대한 IAM 정책이 작업 kms: Decrypt를 허용해야 합니다. 기본 키 정책을 사용하는 경우 Lambda 실행 역할에 이미 AWS KMS 액세스에 대한 충분한 권한이 있습니다.

또한 Lambda 함수를 생성하고 업데이트하는 IAM 사용자CMK를 사용할 수 있는 권한이 있어야 합니다.

자세한 내용은 AWS KMS에서 키 정책 사용을 참조하십시오.

KMSDisabledException

CMK가 활성화되었는지 확인합니다. 자세한 내용은 키 활성화 및 비활성화를 참조하십시오.

KMSInvalidStateException

CMK가 AWS KMS Decrypt API 요청에 대해 잘못된 상태에 있습니다. CMK가 활성화되었는지 확인합니다.

자세한 내용은 키 상태가 고객 마스터 키 사용에 미치는 영향을 참조하십시오.

KMSNotFoundException

요청에 지정된 CMK는 Lambda 함수와 동일한 AWS 지역 및 계정에 있어야 합니다. 지역이 다른 경우 동일한 지역에서 다른 CMK를 사용하거나 새 CMK를 생성합니다.

InvalidRuntimeException

함수 코드에 올바른 Lambda 런타임을 사용하도록 Lambda 함수를 구성합니다.

InvalidZipFileException

Lambda 배포 패키지에 대한 권한을 확인합니다. 자세한 내용은 배포 패키지를 업로드할 때 Lambda "permission denied" 또는 "unable to import module" 오류를 해결하려면 어떻게 해야 합니까?를 참조하십시오.

또한 배포 패키지 파일을 올바르게 생성했는지 확인합니다. 자세한 내용은 배포 패키지 생성을 참조하십시오.

ServiceException

드물지만 Lambda 서비스 자체에 내부 오류가 발생할 수 있습니다. 500 오류가 발생하면 AWS 서비스 상태 대시보드에서 Lambda를 사용할 수 없는지 확인합니다. 자세한 내용은 AWS가 작동하지 않습니까?를 참조하십시오.

Lambda를 사용할 수 있는 경우 요청을 다시 시도하여 Lambda 함수를 호출합니다. 문제가 지속되면 AWS 지원 센터의 AWS Support에 문의하십시오.


이 문서가 도움이 되었습니까?

AWS에서 개선해야 할 부분이 있습니까?


도움이 필요하십니까?