신규 고객모든 신규 계정에 DNS와 CDN 무료 요금제를 제공합니다.계정 만들기

Yeap CDN의 새로운 엣지: Rust를 선택한 이유

CDN 엣지를 Pingora 기반의 Rust 자체 구현으로 교체했습니다. 웹사이트 연결 속도 개선, 수초 내 설정 적용, 격리 및 보안 강화 등 이번 변화가 사이트에 어떤 의미가 있는지 소개합니다.

지난 1년 동안 Yeap CDN 엣지를 OpenResty(nginx와 Lua)에서 Rust로 자체 개발한 엣지로 전환했습니다. 새 엣지는 Cloudflare가 오픈 소스로 공개한 프록시 프레임워크인 Pingora를 기반으로 합니다. 현재 대부분의 트래픽을 새 엣지에서 처리하고 있으며, 나머지 노드도 일정에 따라 전환하고 있습니다.

이 글에서는 내부 구현에 관한 설명은 대부분 생략하고, 한 가지 질문에 답합니다. 새 엣지는 여러분의 웹사이트에 어떤 의미가 있을까요?

전환한 이유

기존 엣지는 nginx 설정, Lua 스크립트, C 모듈, 내장 JavaScript 엔진을 조합한 구조였습니다. 속도는 빨랐지만 도메인별 기능을 변경하려면 여러 계층을 동시에 수정해야 했으며, 설정에 실수가 있어도 오류를 표시하지 않고 조용히 실패하는 경우가 많았습니다. 기능이 늘어나면서 더 일관되고 신뢰할 수 있는 기반이 필요해졌습니다.

Rust를 선택한 이유는 세 가지입니다.

  • 메모리 안전성. C 코드에서 충돌과 취약점의 가장 흔한 원인인 버퍼 오버플로와 댕글링 포인터를 언어 자체에서 방지합니다.
  • 강한 타입을 적용한 설정. 각 도메인의 설정은 노드에 도착할 때 검증됩니다. 필드 이름에 오타가 있거나 타입이 잘못되면 무시하는 대신 명시적으로 거부합니다.
  • 테스트 용이성. 엣지 전체가 단일 언어로 작성된 프로그램이며, 릴리스마다 실행하는 천 개 이상의 자동화 테스트로 검증합니다.

직접 체감할 수 있는 변화

더 빠른 연결

새 엣지는 모바일 네트워크와 패킷 손실이 있는 연결에서 더 안정적으로 동작하는 HTTP/3(QUIC)를 지원합니다. TLS 세션 티켓은 노드가 재시작되어도 유지되므로, 재방문자는 전체 핸드셰이크를 생략하고 첫 화면을 더 빨리 볼 수 있습니다.

수초 내에 적용되는 설정

콘솔에서 캐시, 방화벽, 페이지 규칙을 변경하면 새 설정이 수초 내에 모든 엣지 노드에 도달하고 원자적으로 교체됩니다. 이미 처리 중인 요청은 기존 설정으로 완료되고 새 요청은 새 설정을 사용합니다. 노드를 재시작하거나 연결을 끊을 필요가 없습니다.

정밀한 캐시 제어

캐시 키에 포함할 쿼리 매개변수를 정규화하거나 정렬하고, 허용 목록이나 차단 목록을 적용할 수 있습니다. 특정 매개변수를 가진 단일 변형만 삭제하거나, 한 경로의 모든 변형을 한 번에 삭제할 수 있습니다.

엣지에서 제공하는 보안

WAF 규칙 세트, 요청 속도 제한, 봇 핑거프린팅, 지역 및 IP 규칙을 모두 엣지에서 실행하므로 악성 요청이 원본 서버에 도달하기 전에 차단됩니다. 모든 차단 내역에는 차단을 유발한 규칙이 함께 기록됩니다.

확실한 격리를 제공하는 엣지 함수

엣지 Workers는 별도의 WebAssembly 샌드박스에서 실행되며, 각 실행에 독립된 메모리와 엄격한 CPU 시간 제한이 적용됩니다. 특정 고객의 스크립트가 잘못 동작하더라도 다른 고객에게 영향을 주거나 노드를 중단시킬 수 없습니다.

얼마나 빠를까요?

TLS, HTTP/2, 압축을 사용하는 실제 브라우저 트래픽 환경에서 새 엣지는 동일하게 설정한 nginx보다 높은 처리량과 개선된 꼬리 지연 시간을 제공합니다. 가장 큰 이유는 압축된 콘텐츠를 그대로 캐시하므로 캐시 적중 시 다시 압축할 필요가 없기 때문입니다.

이러한 성능을 달성하기 위해 Pingora를 블랙박스로 취급하지 않았습니다. 내부를 깊이 수정하고, 모든 CDN에서 가장 빈번하게 실행되는 캐시 적중 처리 경로를 최적화했습니다.

별도 작업이 필요 없는 마이그레이션

기존 엣지와 새 엣지는 동일한 컨트롤 플레인과 설정을 공유하며, 액세스 로그 형식도 필드별로 일치합니다. 여러분이 변경할 사항은 없습니다. 도메인, 인증서, 캐시 규칙, 방화벽 규칙이 자동으로 이전됩니다.

앞으로의 계획

새 엣지는 이전에는 구현하기 어려웠던 여러 기능을 가능하게 합니다. 다음 글에서는 HTTP/3와 TLS 세션 재개를 구현한 방법, 개별 변형 단위까지 지원하는 캐시 삭제 방식, DNS가 영역에 네임서버를 할당하는 방식을 다룰 예정입니다.

아직 사용해 보지 않으셨다면 콘솔에서 사이트를 추가해 보시기 바랍니다. 무료 CDN 요금제도 이미 새 엣지에서 실행됩니다.

Yeap Cloud에서 서비스 구축

모든 신규 계정에 DNS와 CDN 무료 요금제를 제공합니다.

무료 회원가입