예약된 동시성 설정 3단계
1단계: 설정 메뉴 진입
Lambda 콘솔에서 해당 함수를 선택합니다.
[구성(Configuration)] 탭으로 이동한 뒤, 왼쪽 메뉴에서 [동시성(Concurrency)]을 클릭합니다.
2단계: 동시성 예약하기
[편집(Edit)] 버튼을 누릅니다.
[예약된 동시성(Reserved concurrency)] 항목에 원하는 숫자를 입력합니다. (예: 50)
[저장]을 클릭합니다.
3단계: 계산식 확인 (수학적 원리)
동시성을 예약하면 해당 수치만큼 전체 리전 풀(Pool)에서 즉시 빠져나갑니다.
$$Unreserved = TotalRegionalLimit - \sum(ReservedConcurrency)$$
만약 리전 한도가 1,000인데 500을 특정 함수에 예약했다면, 나머지 모든 함수가 나눠 쓸 수 있는 공간은 500으로 줄어듭니다.
예약된 동시성의 "두 얼굴" (중요!)
예약된 동시성은 단순히 최소 보장 기능만 있는 게 아닙니다. 두 가지 역할을 동시에 수행합니다.
보장(Guarantee): 다른 함수들이 아무리 바빠도 예약된 만큼의 실행 용량은 항상 확보해 줍니다.
제한(Ceiling): 해당 함수가 예약된 수치를 초과해서 실행되지 않도록 막는 '천장' 역할도 합니다. (예약을 50으로 하면, 51번째 요청은 즉시 스로틀링됩니다.)
예약된 동시성 vs 프로비저닝된 동시성
많은 분이 헷갈려 하시는 두 개념을 깔끔하게 비교해 드립니다.
구분 | 예약된 동시성 (Reserved) | 프로비저닝된 동시성 (Provisioned) |
핵심 목적 | 용량 확보 및 격리 | 콜드 스타트(Cold Start) 제거 |
작동 방식 | 파이 조각을 떼어놓음 | 함수를 미리 '예열'해 둠 |
제한 기능 | 설정값 이상 실행 불가 | 설정값 이상은 일반 동시성으로 처리 |
추가 비용 | 무료 (기본 기능) | 유료 (예열 비용 발생) |
Tip
"0으로 예약하면 강력한 'Kill Switch'가 됩니다."
만약 특정 함수에 심각한 버그가 발견되어 즉시 모든 실행을 중단시켜야 한다면, 예약된 동시성을 0으로 설정해 보세요. 어떤 이벤트가 들어와도 즉시 차단되는 가장 확실한 긴급 정지 버튼이 됩니다. 또한, 무분별한 예약은 전체 리전의 유연성을 떨어뜨리니 '정말 죽으면 안 되는 핵심 함수'에만 전략적으로 할당하세요.
댓글
댓글 0개
이 문서에는 댓글을 달 수 없습니다.