서비스

서비스

CDN 오리진 헬스 체크 설정 가이드: 오리진이 죽었는데 CDN만 모르는 상황 막기

CDN 오리진 헬스 체크 설정 가이드 오리진이 죽었는데 CDN만 모르는 상황 막기

🤖 AI Summary

오리진 서버가 죽었는데 CDN이 그 사실을 모르면, 사용자는 장애 응답을 그대로 받습니다. 이걸 막는 장치가 헬스 체크죠. 방식은 크게 두 가지예요. 하나는 능동형 헬스 모니터로, 주기적으로 오리진에 요청을 보내 상태를 미리 확인하고 문제가 있으면 로테이션에서 빼 둡니다. 다른 하나는 응답 기반 페일오버로, 실제 요청의 상태 코드나 타임아웃을 보고 보조 오리진으로 전환하죠. 설정의 핵심은 확인 간격과 리전, 페일오버로 볼 상태 코드, 타임아웃의 균형입니다. 이 글은 두 방식의 원리와 설정 기준을 Cloudflare와 CloudFront 문서를 기준으로 정리하고, 무중단 운영을 위한 스피디 S-CDN의 접근을 함께 짚어 드립니다.

블로그 목차

오리진이 죽었는데 CDN만 모르면 무슨 일이 생기나요?

헬스 체크가 없으면 CDN이 죽은 오리진으로 요청을 계속 보내, 사용자가 장애 응답을 그대로 받습니다. CDN은 캐시된 정적 콘텐츠는 자체적으로 내주지만, 캐시에 없는 요청이나 동적 콘텐츠는 결국 오리진까지 가야 하니까요. 이때 오리진이 다운됐거나 오류를 뱉고 있으면, 그 5xx 응답이나 타임아웃이 사용자에게 그대로 전달됩니다.

문제는 CDN이 오리진의 상태를 알지 못하면 스스로 우회하지 못한다는 점이에요. 오리진이 살아 있는지 주기적으로 확인하거나, 응답이 실패로 돌아올 때 다른 경로로 넘기는 장치가 있어야 비로소 장애가 사용자에게 닿기 전에 끊어집니다. 그 장치가 헬스 체크와 페일오버입니다. 대응은 크게 능동형과 응답 기반, 두 갈래로 나뉘죠.




능동형 헬스 체크: 주기적으로 오리진을 찔러본다

능동형은 이름 그대로, 주기적인 간격으로 오리진에 요청을 보내 상태를 평가하는 방식입니다. 응답이 정상이면 건강한 것으로 보고 트래픽을 계속 보내고, 문제가 감지되면 해당 오리진을 로테이션에서 빼 장애를 우회합니다. 실제 사용자 요청이 실패하기 전에 미리 알아챈다는 것이 장점입니다.

정확도를 높이려면 여러 지점에서 확인해요. Cloudflare의 경우 리전마다 세 개의 데이터센터에서 프로브를 보내, 다수가 통과하면 그 리전은 정상으로 봅니다. 리전 여럿이 정상이면 오리진 자체가 건강한 것으로 판정합니다. 전체 리전을 모두 켜면 13개 리전에서 39개의 프로브가 나갑니다. 다만 주의할 점이 있어요. 확인 지점을 늘리거나 간격을 너무 짧게 잡으면 오리진으로 가는 프로브 트래픽 자체가 상당히 커집니다.

능동형 헬스 체크 흐름




응답 기반 페일오버: 오리진 그룹으로 넘긴다

응답 기반 페일오버(장애조치)는 실제 요청의 결과를 보고 대응합니다. 먼저 주 오리진과 보조 오리진을 묶어 오리진 그룹을 만들어 두죠. 평소 요청은 모두 주 오리진으로 가고, 정상 응답이면 그대로 사용자에게 내려갑니다. 그런데 주 오리진이 지정한 실패 상태 코드를 반환하거나, 연결에 실패하거나, 응답이 너무 늦으면 CloudFront가 자동으로 보조 오리진으로 요청을 넘깁니다.

기준은 직접 고릅니다. 페일오버로 볼 상태 코드는 400, 403, 404, 416, 429, 500, 502, 503, 504 중에서 선택하죠. 연결 실패나 응답 지연까지 넘기려면 각각 503, 504를 페일오버 코드로 지정합니다. 한 가지 유의할 점은 GET, HEAD, OPTIONS 메서드에만 페일오버가 적용된다는 것이에요. POST나 PUT 같은 요청은 넘어가지 않으니 결제나 폼 전송 같은 흐름은 별도 설계가 필요합니다. 스트리밍처럼 빠른 전환이 중요하면 오리진 타임아웃과 시도 횟수를 조정해 반응 속도를 높일 수 있습니다.

응답 기반 오리진 페일오버 흐름




설정할 때 무엇을 정해야 하나요?

확인 간격, 프로빙 리전, 페일오버로 볼 상태 코드, 타임아웃 임계값. 이 네 가지를 서비스 특성에 맞게 정해야 합니다. 정답이 하나로 정해져 있지 않고, 감지 속도와 오리진 부하 사이의 균형을 어디에 두느냐의 문제죠.

설정 항목

정할 때 기준

확인 간격

짧으면 빨리 감지하지만 오리진에 가는 프로브 부하가 커집니다

프로빙 리전

여러 지점을 켜면 정확하지만, 그만큼 프로브 트래픽이 늘어납니다

페일오버 상태 코드

어떤 응답을 장애로 볼지 선택합니다(예: 500·502·503·504)

타임아웃·시도

느린 응답을 언제 실패로 볼지, 빠른 전환이 필요하면 짧게 조정합니다

이 균형을 매번 직접 조율하고 장애 상황까지 대비하기가 부담스럽다면, 관리형으로 맡기는 방법도 있습니다. 스피디 S-CDN은 24시간 연중무휴 기술 지원으로 오리진 헬스 체크와 페일오버 구성을 함께 잡고, 문제가 생겼을 때 사람이 붙어 대응합니다. 재계약율 98% 이상이라는 숫자도 결국 이 운영 지원에서 나오죠.




이것만 기억하세요

헬스 체크는 오리진 장애를 CDN이 알아채고 우회하게 하는 장치입니다. 방식은 능동형(주기적 프로브로 미리 확인해 로테이션에서 제외)과 응답 기반 페일오버(실패 코드·타임아웃 시 보조 오리진으로 전환) 두 가지죠. 설정은 확인 간격과 리전, 페일오버 코드, 타임아웃의 균형이고, 감지가 빠를수록 오리진 부하도 커진다는 점을 기억하세요. 직접 조율이 부담스럽다면 스피디 S-CDN이 24시간 기술 지원으로 구성과 대응을 함께 챙깁니다.




자주 묻는 질문 (FAQ)

Q. 오리진 헬스 체크가 왜 필요한가요?

오리진이 죽어도 헬스 체크가 없으면 CDN이 계속 그 오리진으로 요청을 보내 사용자가 장애 응답을 받습니다. 헬스 체크는 이를 감지해 트래픽을 정상 경로로 우회시킵니다.

Q. 능동형 헬스 체크와 응답 기반 페일오버는 어떻게 다른가요?

능동형은 주기적으로 오리진에 요청을 보내 상태를 미리 확인하고, 응답 기반 페일오버는 실제 사용자 요청의 응답 코드나 타임아웃을 보고 보조 오리진으로 전환합니다.

Q. 어떤 상태 코드를 페일오버로 잡아야 하나요?

CloudFront 기준 400, 403, 404, 416, 429, 500, 502, 503, 504 중에서 고를 수 있습니다. 연결 실패나 응답 지연까지 넘기려면 각각 503, 504를 페일오버 코드로 지정합니다. 서비스 특성에 맞게 선택하는 것이 좋습니다.

Q. 헬스 체크 간격은 짧을수록 좋나요?

짧으면 장애를 빨리 감지하지만 오리진에 가는 프로브 트래픽이 늘어납니다. 확인 리전을 여러 개 켜도 마찬가지라, 감지 속도와 오리진 부하의 균형을 맞춰야 합니다.

Q. 모든 요청이 페일오버되나요?

CloudFront 오리진 페일오버는 GET, HEAD, OPTIONS 메서드에만 적용됩니다. POST나 PUT 같은 메서드는 페일오버되지 않으니 설계할 때 유의해야 합니다.

비용 절감부터 차별화된 속도와 안정적 운영까지
기업에 최적화된 IT 환경을 지원합니다

비용 절감부터 차별화된 속도와
안정적 운영까지 기업에 최적화된 IT 환경을 지원합니다

비용 절감부터
차별화된 속도와 안정적 운영까지
기업에 최적화된 IT 환경을 지원합니다

(주)스피디

경기도 성남시 수정구 위례서일로 18, 1101호 (위례 더존메디컬타워)

사업자번호 588-86-01411

대표이사 하정수

TEL 031-697-8413

FAX 02-6455-4743

E.mail sales@speedykorea.com

© SPEEDY. All rights reserved

(주)스피디

경기도 성남시 수정구 위례서일로 18, 1101호

사업자번호 588-86-01411

대표이사 하정수

TEL 031-697-8413

FAX 02-6455-4743

E.mail sales@speedykorea.com

© SPEEDY. All rights reserved

(주)스피디

경기도 성남시 수정구 위례서일로 18, 1101호

사업자번호 588-86-01411

대표이사 하정수

TEL 031-697-8413

FAX 02-6455-4743

E.mail sales@speedykorea.com

© SPEEDY. All rights reserved