Lambda 런타임 버전 롤백하기
Lambda 런타임 버전 롤백하기 (Rolling back a Lambda runtime version)
드물게 새 런타임 버전이 기존 함수와 호환되지 않는 경우, 런타임 버전을 이전 버전으로 롤백할 수 있어요. 이렇게 하면 애플리케이션이 계속 작동하고 중단을 최소화하면서, 최신 런타임 버전으로 돌아가기 전에 비호환성을 해결할 시간을 얻을 수 있어요.
Lambda는 특정 런타임 버전을 얼마나 오래 사용할 수 있는지 시간 제한을 두지 않아요. 다만 최신 보안 패치, 성능 개선, 기능을 활용하려면 최대한 빨리 최신 런타임 버전으로 업데이트할 것을 강력히 권장해요. Lambda는 런타임 업데이트 호환성 문제가 발생하는 드문 경우에만 임시 완화책으로 이전 런타임 버전으로의 롤백 옵션을 제공해요. 오래된 런타임 버전을 장기간 사용하는 함수는 결국 성능 저하나 인증서 만료 같은 문제가 생겨 제대로 작동을 멈출 수 있어요.
런타임 버전은 다음 두 가지 방법으로 롤백할 수 있어요.
- Manual 런타임 업데이트 모드 사용
- 게시된 함수 버전(published function versions) 사용
본문
Manual 런타임 업데이트 모드로 런타임 버전 롤백
Auto 런타임 버전 업데이트 모드나 $LATEST 런타임 버전을 사용 중이라면 Manual 모드로 런타임 버전을 롤백할 수 있어요. 롤백하려는 함수 버전의 런타임 버전 업데이트 모드를 Manual로 바꾸고 이전 런타임 버전의 ARN을 지정해요. 이전 런타임 버전의 ARN을 찾는 방법은 Lambda 런타임 버전 변경 식별을 참고하세요.
참고
함수의
$LATEST버전을 Manual 모드로 구성하면 함수가 사용하는 CPU 아키텍처나 런타임 버전을 변경할 수 없어요. 이를 변경하려면 Auto 또는 Function update 모드로 바꿔야 해요.
게시된 함수 버전으로 런타임 버전 롤백
게시된 함수 버전은 생성 시점의 $LATEST 함수 코드와 구성을 불변 스냅샷으로 고정한 것이에요. Auto 모드에서는 Lambda가 런타임 버전 롤아웃의 2단계 동안 게시된 함수 버전의 런타임 버전을 자동으로 업데이트해요. Function update 모드에서는 Lambda가 게시된 함수 버전의 런타임 버전을 업데이트하지 않아요.
따라서 Function update 모드를 사용하는 게시된 함수 버전은 함수 코드, 구성, 런타임 버전의 정적 스냅샷을 만들어요. 함수 버전과 함께 Function update 모드를 사용하면 런타임 업데이트를 배포와 동기화할 수 있어요. 또한 트래픽을 이전 게시 함수 버전으로 리다이렉트해 코드, 구성, 런타임 버전의 롤백을 함께 조율할 수도 있어요.
이 접근 방식을 CI/CD(지속적 통합·지속적 배포)에 통합하면 런타임 업데이트 비호환성이 발생하는 드문 경우에 완전 자동 롤백을 구현할 수 있어요. 이 방식을 쓸 때는 정기적으로 함수를 업데이트하고 새 함수 버전을 게시해 최신 런타임 업데이트를 반영해야 해요. 자세한 내용은 Lambda 런타임 관리 공동 책임 모델 이해를 참고하세요.