# FediMeteo: 4유로짜리 FreeBSD VPS가 전 세계 수천 명을 위한 기상 서비스가 되기까지

> Clean Markdown view of GeekNews topic #25468. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=25468](https://news.hada.io/topic?id=25468)
- GeekNews Markdown: [https://news.hada.io/topic/25468.md](https://news.hada.io/topic/25468.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2025-12-31T22:32:49+09:00
- Updated: 2025-12-31T22:32:49+09:00
- Original source: [it-notes.dragas.net](https://it-notes.dragas.net/2025/02/26/fedimeteo-how-a-tiny-freebsd-vps-became-a-global-weather-service-for-thousands/)
- Points: 2
- Comments: 1

## Topic Body

- **FediMeteo**는 4유로짜리 **FreeBSD VPS**에서 시작된 **전 세계 기상 정보 서비스**로, Fediverse를 통해 각 도시의 날씨를 자동 게시함  
- 각 국가는 **FreeBSD jail**로 분리되어 관리되며, **snac** 소프트웨어와 **Open-Meteo API**를 이용해 데이터를 가져와 **Markdown 형식**으로 게시  
- 시스템은 **6시간마다 자동 업데이트**, **39개의 jail**, **38개국 2937개 도시**를 지원하며, **팔로워 수는 7700명 이상**으로 성장  
- **API 키 유출**, **좌표 계산 오류**, **언어 번역 문제** 등 다양한 운영상의 문제를 겪었으나, 캐싱과 다국어 지원 개선으로 안정화  
- 저비용 인프라에서도 **효율적이고 자율적인 글로벌 서비스 구축이 가능함**을 보여주는 사례로 평가됨  

---

### 프로젝트 개요
- FediMeteo는 개인적 관심에서 출발한 **Fediverse 기반 자동 기상 알림 서비스**
  - 창작자는 자신의 도시 날씨를 타임라인에서 직접 보고 싶다는 생각에서 시작
  - 서비스는 **도시별 계정(bot)** 을 생성해 각 도시의 날씨를 주기적으로 게시
- 운영체제로 **FreeBSD**를 선택, 국가별로 **jail**을 분리해 관리 및 보안성 확보
- 초기 테스트는 독일 VPS에서 진행되었으며, 현재는 **이탈리아 밀라노의 4유로 VPS**에서 운영 중

### 설계 원칙
- **국가별 인스턴스 분리**로 관리와 보안성 강화, 필요 시 개별 이동 가능
- **데이터 출처**는 wttr.in과 Open-Meteo 중 선택, 오픈소스 친화성과 신뢰성 중시
- **접근성 강화**: 현지 언어, 텍스트 브라우저 호환, **이모지 사용**, **JavaScript 비의존**
- **Unix 철학**에 따라 작은 구성요소들이 협력하는 구조 유지
- **snac**을 핵심 소프트웨어로 채택, ActivityPub 지원, RSS 생성, 낮은 자원 사용, 빠른 컴파일 속도 보유

### 기술 구현
- 각 jail은 독립적으로 동작하며, **Python 스크립트**가 도시별 데이터를 가져와 **Markdown**으로 변환
  - **geopy**로 좌표 계산 후 Open-Meteo API 호출
  - snac의 `note` 명령으로 게시물 전송, 외부 API 키 관리 불필요
- **post.sh** 스크립트가 모든 도시를 순회하며 게시물 자동 생성 및 게시
  - **cron**이 6시간마다 실행, **Uptime-Kuma**로 상태 모니터링
- 도시명은 파일(`cities.txt`)로 관리되며, 새 도시 추가 시 자동 반영

### 성장과 반응
- 초기에는 이탈리아 중심으로 테스트 후, 유럽 각국으로 확장
- **FediFollows**가 프로젝트를 소개하면서 팔로워 급증, 각국 사용자 요청 증가
- **다국어 지원**, **이모지 표현**, **비공개 게시(unlisted)** 기능 추가
- 개발자 커뮤니티의 빠른 피드백으로 기능 개선이 지속됨

### 확장과 기술적 도전
- **단위 변환(섭씨/화씨)** , **시간대 차이**, **동명이 도시 구분** 등 글로벌 확장 시 문제 발생
- **미국·캐나다** 진출 시 1200개 이상의 도시 추가, 주별 구분을 위해 `__` 구분자 사용
- Open-Meteo 무료 API 한도 초과 문제 발생 후, **전용 API 키 제공받음**
- **FreeBSD와 snac의 효율성** 덕분에 단일 VPS에서도 다수 국가 운영 가능

### 시스템 성능 및 인프라
- VPS 사양: **FreeBSD 14.3-RELEASE**, **BastilleBSD**로 jail 관리
  - 총 **39개 jail**, ZFS 스냅샷 15분마다, 외부 백업 매시간 수행
  - **RAM 사용량 501MB**, 업데이트 시 약간 증가
- **CPU 부하 평균 10% 이하**, 대규모 업데이트 시 70~75%까지 상승
- **미국 인스턴스**는 도시 간 5초 간격으로 게시, 전체 처리 약 2시간 반 소요

### 문제 해결 사례
- **API 키 유출**: 디버그 코드로 인해 노출, 즉시 수정 및 새 키 발급
- **geopy 오류**: Nominatim 응답 실패 시 좌표 캐싱 도입으로 해결
- **언어 문제**: 다국어 번역 누락 및 현지 언어 선택 오류 수정

### 현재 상태 (2025년 12월 기준)
- 지원 국가: **38개국**, 도시 수 **2937개**
- Fediverse 팔로워 수 **7707명 이상**, RSS 구독자 수는 추정 불가
- **유럽, 북미, 아시아, 오세아니아** 주요 도시 포함
- 시스템 안정적으로 운영 중이며, 추가 국가 확장 여력 존재

### 결론
- FediMeteo는 **저비용 인프라에서도 글로벌 서비스를 구축할 수 있음을 입증**
- **데이터 주권**, **단순한 구조**, **오픈소스 협력**의 가치를 보여주는 사례
- 창작자는 프로젝트를 통해 **날씨가 사람들을 연결하는 사회적 매개체**가 되었음을 강조

## Comments



### Comment 48523

- Author: neo
- Created: 2025-12-31T22:32:50+09:00
- Points: 1

###### [Hacker News 의견들](https://news.ycombinator.com/item?id=46436889) 
- 이런 작은 프로젝트가 **성공적으로 성장**하는 걸 보는 게 정말 즐거움  
  FreeBSD가 Linux 배포판보다 **불필요한 요소가 적고 지연이 낮은** 느낌을 받음  
  Vultr에서 월 4달러짜리 FreeBSD VM(1GB RAM, 1vCPU)을 설정했는데, Caddy를 돌려도 RAM 사용량이 12%밖에 안 됨  
  4GB RAM, 4vCPU VM이면 꽤 많은 트래픽을 감당할 수 있을 것 같음  
  개인용 블로그를 **레트로 BBS 스타일의 텍스트 기반 웹앱**으로 만들고 싶음 — Nim 멀티스레드 서버 + sqlite 조합으로, 컨테이너나 JS 라이브러리 없이 4MB짜리 바이너리 하나로 FreeBSD에서 돌리는 식으로  
  이 글 덕분에 FreeBSD로 가는 길에 확신이 생김
  - Linux는 배포판과 설정에 따라 다름  
    오늘 mkosi([https://github.com/systemd/mkosi](https://github.com/systemd/mkosi))로 테스트해보니, 최소 설치 기준 Fedora 43은 약 130MiB, Debian은 100MiB 정도 RAM을 사용함  
    예전에 FreeBSD 최소 설치를 해봤을 때도 비슷하거나 ZFS 설정에 따라 약간 더 썼던 기억이 있음
  - 20년 전에는 Linux가 지금보다 **자원 사용량이 절반**이었던 걸로 기억함  
    아마 x64 전환이 원인 중 하나일 수도 있음  
    같은 일을 하는데 RAM을 두 배로 쓰게 된 게 신기했지만, 대신 이제는 사실상 무제한 RAM을 쓸 수 있게 되었음
  - **Alpine** 같은 가벼운 배포판도 존재함  
    SSH 로그인조차 Ubuntu보다 훨씬 빠르고, apk 패키지 매니저도 매우 신속함
  - BSD 유틸리티는 내부 동작을 이해하기에 **GNU 유틸보다 훨씬 읽기 쉬움**  
    라이선스 모델은 GNU 쪽을 선호하지만, 코드 자체는 BSD 스타일이 더 마음에 듦
  - “retro BBS-like web app”이라면, 옛날 다이얼업 BBS를 말하는 건지, 아니면 포럼형 게시판을 말하는 건지 궁금함  
    후자라면 **FlaskBB**를 참고해볼 만함

- 나도 비슷하게 **open-meteo**를 이용해 개인용 서핑 예보 시스템을 만들고 있음  
  한 지역만 다루지만 확장도 쉬움  
  open-meteo의 해양 데이터를 단기·장기 기상예보와 결합하고, 그 결과를 LLM으로 **정량 데이터를 정성적 설명으로 변환**함  
  내가 머릿속으로 하던 일을 자동화한 셈임  
  아이디어가 있다면 알려주면 좋겠음  
  [https://surfrash.xyz/](https://surfrash.xyz/)
  - 멋짐. 어떤 해변에도 유용할 것 같음  
    데이터 벽 대신 **설명 중심 인터페이스**가 마음에 듦  
    Manly(NSW, Australia) 지역도 추가 요청함

- 재미있게 읽었음  
  젊을 때 *BSD에 더 관심을 가졌다면 좋았을 텐데, 지금은 Linux에 너무 익숙해져서 쉽게 바꾸기 어려움  
  ZFS와 **jail 기능** 덕분에 관리가 매끄럽게 된 것 같음  
  나는 podman을 쓰지만, Linux에서 ZFS는 아직 안 써봤음  
  개인용 아카이브를 만들 계획이라 **ZFS의 deduplication** 기능을 활용해볼 예정임
  - 나도 같은 생각임  
    Docker 같은 복잡한 스택을 줄이려 노력 중이고, systemd가 있긴 하지만 **jail이나 sandbox 개념**이 꽤 매력적임  
    기본 설정만으로도 잘 작동하는 도구를 선호함

- “4유로 VPS” 스펙이 놀라움  
  예를 들어 Hetzner의 최저가 VPS는 2 vCPU, 4GB RAM, 40GB NVMe SSD인데, 1Gb/s 연결은 없음  
  내가 찾은 가장 저렴한 건 [Contabo](https://contabo.com/en/vps/)였음  
  - [LowEndBox](https://www.lowendbox.com/)가 이런 VPS 정보를 모아둔 인기 사이트임
  - [Netcup VPS 500 G11s](https://www.netcup.com/de/server/vps/vps-500-g11s)도 참고할 만함
  - VPS 제공업체 간 **vCPU 성능 비교에 주의**해야 함  
    저가형 서버는 세대가 오래됐거나 과도하게 공유된 경우가 많음  
    4 vCPU가 최신 서버의 2 vCPU보다 느릴 수도 있음  
    다만 RAM 중심의 앱이라면 좋은 선택일 수 있음
  - Oracle Cloud는 무료로 **4 oCPU(ARM), 24GB RAM, 200GB NVMe SSD, 4Gb/s 대역폭**을 제공함  
    인스턴스 확보가 어렵다는 말도 있지만, 나는 2년 넘게 잘 쓰고 있음  
    무료 계정이 종료될 수 있으니 유료로 전환하는 게 안전함
  - 예전에 **buyvm**에서 1년에 5달러짜리(256MB RAM) VPS를 썼었는데, 단순한 용도로는 꽤 유용했음

- 거대한 인프라(Kubernetes, AWS, DynamoDB 등) 없이 **단순한 프로젝트를 직접 구축**하는 모습이 보기 좋음

- Hacker News 자체도 **FreeBSD 기반 4코어 서버**에서 돌아감  
  [관련 링크](https://news.ycombinator.com/item?id=28479595)
  - 실제로는 2개의 CPU 패키지 × 4코어 × 2스레드 구조라 총 16스레드임  
  - 그래도 **전용 코어**라서 다른 테넌트와 공유되지 않음

- 나도 비슷한 스펙의 서버를 5달러 정도에 구입했음  
  400~500GB 저장공간이 있고, 3개월간 8달러 프로모션으로 시작했음  
  이후 월 5달러로 전환될 예정인데, **VPS를 직접 운영하는 재미와 몰입감**이 큼  
  OVH는 가격이 저렴하고 **무제한 egress 정책**이 장점임  
  Upcloud도 지원팀이 훌륭했음  
  OVH 지원은 트위터나 Discord를 통해 문의하는 게 좋다는 팁도 들었음  
  서버 가격과 지원 품질을 비교하며 최적화하는 과정 자체가 즐거움

- “freeofcharge.org”라는 도메인을 사서, **RAM 안에 들어가는 무료 서비스**들을 서브도메인으로 제공하는 아이디어를 생각한 적 있음  
  월 10달러 이하로 운영 가능한 유용한 서비스들을 모으는 개념이었음

- 나도 비슷하게, **특정 지역의 기상 특보를 HTML/Markdown 형태로 보기 쉽게 변환**하는 도구를 만들고 싶음  
  fediverse용은 아니고, 단순히 접근성 좋은 날씨 알림용임

- “현지 언어로 예보를 제공해야 한다”는 의견에 대해,  
  현지 언어를 모르는 사용자도 많으니 **브라우저의 기본 언어 설정을 덮어쓰는 건 불필요**하다고 생각함
  - 프로젝트는 다국어 지원이 아니라 사용자에게 직접 예보를 전달하는 게 목적임  
    대신 **이모지로 직관적인 표현**을 제공해 언어 장벽을 줄임
