Railway는 코드를 즉시 배포할 수 있는 현대적 클라우드 플랫폼이다. 데이터베이스, 환경 변수, 배포를 단일 대시보드에서 관리하며, Git 연동 자동 배포와 프리뷰 환경을 제공한다.
핵심 기능
| 기능 | 설명 |
|---|
| 자동 배포 | Git push 시 자동 감지·빌드 |
| 내장 DB | Postgres, MySQL, Redis, MongoDB |
| 환경 변수 | 서비스 간 변수 공유 |
| 프라이빗 네트워킹 | 서비스 간 내부 통신 |
| 프리뷰 환경 | PR별 임시 환경 |
| 크론 잡 | 예약 작업 실행 |
railway.json / Procfile
json
{
"$schema": "https://railway.app/railway.schema.json",
"build": {
"builder": "NIXPACKS"
},
"deploy": {
"startCommand": "node dist/server.js",
"healthcheckPath": "/health",
"healthcheckTimeout": 300,
"restartPolicyType": "ON_FAILURE",
"restartPolicyMaxRetries": 3
}
}
CLI 사용
bash
# 설치 및 로그인
npm install -g @railway/cli
railway login
# 프로젝트 연결
railway link
# 배포
railway up
# 환경 변수 설정
railway variables set API_KEY=secret
# 로컬에서 환경 변수 주입
railway run npm start
# 데이터베이스 연결
railway connect postgresql
서비스 간 통신
프로젝트
├── web (Node.js) → DATABASE_URL = ${{Postgres.DATABASE_URL}}
├── worker (Python) → REDIS_URL = ${{Redis.REDIS_URL}}
├── Postgres
└── Redis
관련 문서