---
title: "Tailscale, 오픈소스 Terraform 모듈 공개 — cloud-init 삽질의 종말"
published: 2026-01-15T22:39:35.000Z
canonical: https://jeff.news/article/868
---
# Tailscale, 오픈소스 Terraform 모듈 공개 — cloud-init 삽질의 종말

Tailscale이 VM에 Tailscale을 설치하는 오픈소스 Terraform 모듈을 공개함. cloud-init의 고질적 문제(YAML 오류, 배포판 차이, systemd 타이밍)를 해결하며, MIME 인코딩부터 인증, 라우팅, ephemeral 디바이스 관리까지 한 번에 처리함.

## cloud-init의 고질적 문제

- VM을 여러 클라우드 프로바이더에 프로비저닝할 때 cloud-init은 사실상 표준이지만, 실전에서는 온갖 문제의 온상임. YAML 들여쓰기 오류, 배포판별 차이, systemd 타이밍 이슈, 네트워크 설정 충돌 등이 조용히 발생함
- cloud-init이 실패하면 로그도 없고, 네트워킹도 안 되고, Tailscale SSH로 디버깅할 수도 없음. VM이 "실행 중"이지만 완전히 접근 불가능한 최악의 상황이 됨
- Tailscale 솔루션 엔지니어링 팀이 매년 수천 시간을 고객 배포 지원에 쏟으면서 반복적으로 관찰한 패턴: 취약한 셸 스크립트로 가득한 커스텀 cloud-init 템플릿, 잘못 삽입된 인증 키, systemd 타이밍 문제로 라우트가 안 올라오는 현상, 팀마다 4~5가지 변형된 부트스트랩 스크립트를 유지보수하는 상황

## Terraform 모듈이 해결하는 것

- 이 모듈은 멀티파트 MIME 인코딩, OS 패키지 설치, 서비스 활성화, Tailscale 인증 및 태깅, 라우트 설정, exit-node 지원, ephemeral vs persistent 디바이스 관리, systemd 순서 제어까지 한 번에 처리함
- AWS, Azure, GCP, DigitalOcean, Proxmox, Equinix, KubeVirt, VMware 등 멀티 클라우드 환경에서 동일하게 동작함. "Ubuntu에서는 되는데 Amazon Linux에서 왜 안 되지?" 같은 문제가 사라짐
- VM 부팅 후 수 초 내에 올바른 태그, 라우트, 설정이 적용된 상태로 관리 콘솔에 나타남

## Ephemeral 머신과 CI/CD 활용

- `ephemeral = true` 한 줄이면 VM 종료 시 tailnet에서 자동 제거됨. 단기 CI/CD VM, 블루/그린 배포, 오토스케일링 플릿, GPU/ARM 테스트 머신, 엣지 노드 등에 최적화된 구조임
- 리모트 랩 환경이나 오토스케일링 플릿처럼 머신이 동적으로 생성·삭제되는 시나리오에서 tailnet 관리 부담을 크게 줄여줌

## 향후 계획 및 배포

- GitHub, Terraform Registry, OpenTofu Registry에서 사용 가능함. Terraform이나 OpenTofu로 VM을 관리하고 있다면 기존 스택에 자연스럽게 추가할 수 있음
- Tailscale CLI에 추가되는 새 기능을 이 모듈이 바로 지원할 예정이며, 최근 발표된 peer-relays 기능은 이미 지원됨
- 오픈소스이므로 이슈 등록, PR 제출, Discord/Reddit을 통한 피드백이 가능하고, 실제 운영 환경의 피드백을 기반으로 계속 발전시킬 계획임

## 핵심 포인트

- cloud-init의 YAML 들여쓰기, 배포판 차이, systemd 타이밍 등 고질적 부트스트랩 문제를 단일 모듈로 해결
- AWS, Azure, GCP 등 멀티 클라우드에서 동일하게 동작하며 패키지 설치, 인증, 태깅, 라우트, exit-node까지 처리
- ephemeral=true 설정으로 CI/CD VM, 오토스케일링 플릿, 엣지 노드의 자동 등록/해제 지원
- GitHub, Terraform Registry, OpenTofu Registry에서 사용 가능하며 peer-relays 등 신규 CLI 기능도 즉시 지원 예정

## 인사이트

수천 시간의 고객 지원 경험을 오픈소스 모듈로 코드화한 접근이 인상적임. 멀티 클라우드 환경에서 커스텀 부트스트랩 스크립트 4~5개를 유지보수하던 팀에게 실질적인 고통 해소가 될 것임.
