Blacksmith가 ISP 성능 저하를 우회하기 위해 Tailscale 서비스를 사용한 방법

발행: (2025년 12월 19일 오전 12:00 GMT+9)
4 min read

Source: Tailscale Blog

TL;DR

우리는 GitHub 트래픽을 직접 GitHub 피어링이 가능한 대체 네트워크 경로로 라우팅하는 투명 프록시를 구축했습니다. 이를 통해 러너가 ISP 라우팅 장애에 대해 방어‑인‑깊이를 확보합니다. 고객은 코드 변경이 전혀 필요하지 않으며—GitHub Actions는 기존과 동일하게 GitHub와 상호작용합니다. Blacksmith 라는 이름의 이 프록시는 Tailscale 서비스로 실행되며, 직접 피어링 경로가 사용 불가능할 경우 자동으로 공용 인터넷으로 페일오버됩니다.

Background

  • Problem: ISP 라우팅 장애로 인해 GitHub에 의존하는 CI/CD 파이프라인에서 간헐적인 연결 문제가 발생할 수 있습니다.
  • Goal: 기존 GitHub Actions 워크플로우에 변경이 필요 없는, 신뢰할 수 있는 투명 네트워크 경로를 제공하는 것입니다.

Design Overview

  1. Transparent Proxy

    • Tailscale 서비스로 배포됩니다.
    • 러너에서 나가는 GitHub 트래픽을 가로챕니다.
  2. Direct Peering

    • GitHub 네트워크와 전용 피어링 연결을 설정합니다.
    • 일반적인 ISP 라우팅을 우회합니다.
  3. Failover Mechanism

    • 피어링 링크의 상태를 모니터링합니다.
    • 피어링 링크가 악화될 경우 자동으로 공용 인터넷으로 전환합니다.

Implementation Details

  • Tailscale Service: 러너와 동일한 VPC 내의 경량 VM에서 실행됩니다.
  • IP Routing: iptables 규칙을 사용해 github.com 으로 향하는 트래픽을 프록시로 리다이렉트합니다.
  • Health Checks: GitHub 엔드포인트에 대한 주기적인 TCP 프로브를 통해 링크 상태를 판단합니다.
  • Configuration: 러너의 .github/workflows 파일을 수정할 필요가 없으며, 프록시는 CI 작업에 투명합니다.

Benefits

  • Zero Code Changes: 기존 파이프라인을 그대로 사용할 수 있습니다.
  • Improved Reliability: ISP 수준 라우팅 문제의 영향을 감소시킵니다.
  • Observability: Tailscale 관리 콘솔에서 프록시 상태와 트래픽에 대한 메트릭을 확인할 수 있습니다.

Getting Started

  1. Deploy Blacksmith: 저장소에 제공된 Terraform 모듈을 따라 배포합니다.
  2. Enable Tailscale on Runners: 러너가 동일한 Tailscale 네트워크에 포함되어 있는지 확인합니다.
  3. Verify Connectivity: 제공된 헬스‑체크 스크립트를 사용해 피어링 경로가 활성화됐는지 확인합니다.

Future Work

  • 다른 주요 코드 호스팅 제공업체에 대한 지원 확대.
  • 추가 보안 레이어를 위한 선택적 TLS 종료 기능 추가.
  • 실시간 트래픽 분석을 위한 UI 대시보드 제공.
Back to Blog

관련 글

더 보기 »

GitHub Actions 요금 변경

번역하려는 기사 내용이나 요약문을 제공해 주시겠어요? 해당 텍스트가 있어야 한국어로 번역해 드릴 수 있습니다.