jsonscraper
시장
저널로 돌아가기

Cloudflare, Durable Objects 코드 업데이트를 지연해 활성 작업이 끝나도록 지원

배포 후 활성 객체는 최대 5분 동안 이전 버전으로 실행될 수 있습니다. Hibernation API를 사용하는 WebSocket 연결은 전환 후에도 유지될 수 있습니다.

편집 정책 오류 제보

배포 후 활성 Cloudflare Durable Object는 절전 상태에 들어갈 때까지 또는 설정된 제한 시간이 만료될 때까지 현재 코드 버전으로 계속 실행될 수 있습니다. Cloudflare는 10월 30일 지연 업데이트를 기본값으로 설정했으며, 최대 지연 시간은 5분입니다. 개발자에게 이는 배포 중 이미 실행 중인 객체의 동작이 달라짐을 의미합니다. 업데이트가 객체를 즉시 중단할 필요는 없으며, 지원되는 WebSocket 연결은 새 버전으로 전환할 때 유지될 수 있습니다.

기사: Cloudflare, Durable Objects 코드 업데이트를 지연해 활성 작업이 끝나도록 지원
요약: 10월 30일부터 Cloudflare는 기본적으로 Durable Objects에 지연 코드 업데이트를 적용합니다. 활성 객체가 절전 상태로 전환될 시간을 주지만, 모든 작업의 완료나 모든 WebSocket 연결의 유지를 보장하지는 않습니다.
이미지 역할: 표지 — 핵심 개념
섹션: 
시각적 주제: 지속적으로 실행되는 클라우드 컴퓨팅 객체를 표현한 개념적 편집 이미지
업데이트의 핵심을 보여주는 일러스트입니다. 활성 객체는 절전 상태에 들어가거나 설정된 제한 시간이 만료될 때까지 이전 코드로 계속 실행될 수 있습니다.© jsonscraper · AI 생성

배포 중에 일어나는 일

Durable Objects는 지속적인 식별성과 상태를 가진 주소 지정 가능한 객체입니다. Cloudflare는 이를 클라이언트 조정, 장시간 실행 작업, WebSocket 세션 등에 사용합니다. 하나의 객체에는 한 번에 하나의 코드 버전만 적용됩니다. 따라서 활성 인스턴스를 즉시 교체하면 재설정이 일어나 작업이나 연결이 끊길 수 있습니다.

이제 기본 동작은 전환을 지연하는 것입니다. 배포 후 활성 객체는 이전 버전으로 요청을 계속 처리합니다. 객체가 먼저 절전 상태에 들어가면 다음 요청 때 새 버전이 실행됩니다. 5분이 지났는데도 객체가 여전히 활성 상태라면 재설정된 뒤 새 버전을 적용합니다. 이때 Worker 배포는 별도로 완료됩니다. 지연되는 것은 이미 활성 상태인 객체가 새 코드를 실행하기 시작하는 시점입니다.

누구에게 유용한가

이 변경은 장시간 세션, 여러 클라이언트 간 조정, WebSocket 연결처럼 하나의 객체가 요청 사이에도 작업을 유지하는 서비스에 중요합니다. 지연 전환은 객체가 업데이트 전에 현재 작업을 자연스럽게 마치거나 절전 상태로 들어갈 수 있는 시간을 제공합니다. WebSocket의 경우 Cloudflare가 별도의 조건을 명시합니다. Hibernation API를 사용하는 연결은 객체가 절전 상태에서 깨어난 뒤 새 코드를 적용해도 연결이 유지됩니다.

실무적으로 팀은 어떤 활성 객체가 몇 분 넘게 바쁜 상태로 남을 수 있는지 파악하고, 어떤 WebSocket API를 사용하는지 확인해야 합니다. 이에 따라 새 배포 방식이 애플리케이션에 원활한 전환의 기회를 줄지, 아니면 강제 업데이트 시 연결이 종료될지가 달라집니다.

5분은 기회일 뿐 보장이 아니다

Cloudflare는 지연 업데이트를 최선의 노력(best effort) 방식으로 설명합니다. 예를 들어 런타임 환경을 업데이트할 때 객체가 더 일찍 재설정될 수 있습니다. 최대 지연 시간이 끝날 때까지 절전 상태에 들어가지 않으면 플랫폼은 재설정을 통해 새 버전을 적용합니다. 따라서 중요한 상태는 영구 저장소에 보관하고, 작업은 재실행 가능성을 고려해 설계해야 합니다. Cloudflare 문서는 배포 후에도 유지해야 하는 상태를 저장할 것을 권장하며, 활성 인스턴스의 메모리에만 의존하지 말라고 안내합니다.

팀은 Durable Objects 설정에서 동작을 재정의할 수 있습니다. 즉시 업데이트 모드를 지정하거나 지연 전환의 제한 시간을 변경할 수 있습니다. 새 버전을 즉시 적용해야 하는 긴급 수정 등의 경우에는 즉시 모드가 유용합니다. 더 긴 지연은 객체에 추가 시간을 줄 수 있지만, 일부 인스턴스가 이전 버전을 계속 제공하는 기간도 늘어납니다.

다음 배포 전에 확인할 사항

Worker와 Durable Object가 서로 다른 버전으로 실행될 수 있는 동안 요청 호환성을 확인하세요. 중요한 상태가 메모리에만 있는 것이 아니라 저장소에 보관되는지 점검하세요. WebSocket의 경우 애플리케이션이 Hibernation API를 사용하는지 확인하세요. 일반 연결은 업데이트 적용 중 종료될 수 있습니다. 배포 시 즉시 전환이 필요하다면 새 기본값에 기대지 말고 모드 설정을 명시적으로 확인하세요.

요컨대 Cloudflare는 배포 시 기본적인 절충점을 바꿨습니다. 활성 객체에 자연스럽게 전환할 제한된 시간을 주면서도, 팀은 설정을 통해 업데이트를 앞당길 수 있습니다. 개발자가 다음 배포 전에 확인할 가장 중요한 사항은 구버전과 신버전의 호환성, 상태 보존 여부, WebSocket 유형입니다.

사람들

아직 이 기사에 등록된 사람이 없습니다.

계속 읽으세요Агенты OpenAI передавали секреты через кэш процессора — без сети и общих файлов
다음 기사 읽기

읽은 내용을 실제 연동으로 구현하세요

jsonscraper 소셜 데이터 API를 살펴보고 요청을 테스트하여 다음 워크플로를 구축하세요.

API 둘러보기