일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- SageMaker
- CHECK
- fcm
- amazonqcli
- kubernetes
- lambda
- cloudwatch
- IaC
- serverless
- 병목
- sns
- terraform
- Lamda
- aws
- Validation
- rds
- Today
- Total
잡다한 IT 지식
AWS Lambda 503 Server Error: Service Unavailable for url 본문
문제 상황
부하 테스트를 위해 Locust를 사용하여 서비스에 트래픽을 유입시켰고, 다음과 같은 문제가 발생했다.
- RPS 30 ~ 40 수준에서 HTTP 503 Service Unavailable 에러가 반복적으로 발생
- 평균 응답 속도는 약 300ms로 정상 범위 내에 있었음
추측
HTTP 503 에러는 일반적으로 다음과 같은 상황에서 발생한다.
- 서버가 유지보수 중이거나 다운됨
- 서버가 과부하 상태로 더 이상 요청을 처리할 수 없음
우리 서비스는 AWS Lambda 기반의 서버리스 아키텍처로 구성되어 있어, 트래픽 증가 시 자동으로 함수 인스턴스가 확장되며 요청을 처리해야 한다.
그런데도 503 에러가 발생했다는 것은, Lambda 함수의 동시 실행 수가 제한되어 있고, 해당 제한에 도달했을 가능성이 높다고 판단했다.
해결 과정
1. CloudWatch에서 Lambda 동시성 지표 확인
함수의 ConcurrentExecutions 메트릭을 확인해보니, 동시 실행 수가 정확히 10에서 멈춰 있다.
2. Lambda 함수 설정에서 동시성 제한 확인
현재 Lambda 함수는 Reserved Concurrency를 사용하지 않고, Unreserved Concurrency를 사용 중이다.
그런데, 예약되지 않은 계정 동시성이 10밖에 되지 않는다.
3. Service Quotas 확인
계정 전체에 허용된 동시성 한도가 기본값인 1000이 아닌 10으로 설정되어 있다.
따라서, Lambda 확장 한계에 도달하여 더 이상 확장이 불가능했고, 이로 인해 503 에러가 발생했다.
해결
AWS 콘솔에서 Lambda 동시성 제한 상향 요청을 제출하여 최대 동시성을 1000으로 설정했다.
3시간쯤 지나서 요청이 처리됐단 이메일이 도착했다.
이후 다시 부하테스트를 시도했을 때, 최대 동시성이 12까지 도달했으며 에러가 발생하지 않았다.
'AWS > 트러블슈팅' 카테고리의 다른 글
AWS fcm 병목 지점 찾기 (0) | 2025.07.10 |
---|---|
SageMaker Serverless Endpoint와 Lambda 간 통신 불가 트러블슈팅 (0) | 2025.07.09 |
CloudFront VPC Origin 구성 시 겪은 막막한 에러 – 원인은 AZ 미지원 (0) | 2025.05.19 |