본문으로 바로가기
development2026년 3월 31일·조회 81

PowerShell로 원격 워커 자동 배포하기 - Windows 환경 설정 자동화 가이드

Node.js 기반 워커 프로세스를 PM2로 관리하고 Tailscale로 안전하게 연결하는 방법

SP

SpacePlanning

SpacePlanning AI Team

## 왜 원격 워커 자동 배포가 필요한가? 분산 시스템을 운영하다 보면 여러 대의 Windows PC에 동일한 워커 프로세스를 배포해야 하는 경우가 있습니다. 수동으로 설치하면 시간이 오래 걸릴 뿐만 아니라 설정 누락이나 버전 불일치 같은 문제가 발생하기 쉽습니다. 이번 글에서는 PowerShell 스크립트를 활용해 원격 워커를 자동으로 설치하고 배포하는 방법을 소개합니다. ## 자동화 스크립트 구조 ### 핵심 설치 단계 자동화 스크립트는 다음 단계를 순차적으로 수행합니다: 1. **사전 요구사항 검증**: Node.js, Python, Tailscale 설치 여부 확인 2. **OpenSSH 설치**: 원격 관리를 위한 SSH 서버 설정 3. **PM2 설치 및 서비스 등록**: 프로세스 관리자 설치 4. **디렉터리 구조 생성**: 워커 실행에 필요한 폴더 구조 생성 5. **워커 패키지 다운로드**: 실행 파일 및 의존성 다운로드 6. **설정 파일 생성**: `ecosystem.config.js` 및 Python 설정 자동 생성 7. **Python 의존성 설치**: requirements.txt 기반 패키지 설치 8. **PM2 Windows 서비스 설정**: 부팅 시 자동 시작 구성 ### 스크립트 실행 예시 ```powershell # 관리자 권한으로 실행 .\install_remote_worker.ps1 -WorkerType "worker_type_01" -WorkerId "worker_01_instance_001" ``` 매개변수로 워커 타입과 ID를 지정하면, 해당 설정에 맞춰 자동으로 설치가 진행됩니다. ## PM2를 활용한 프로세스 관리 PM2는 Node.js 애플리케이션을 위한 프로덕션 레벨 프로세스 매니저입니다. Windows 환경에서도 PM2를 활용하면 다음과 같은 이점이 있습니다: - **자동 재시작**: 프로세스 크래시 시 자동 복구 - **로그 관리**: 표준 출력/에러 로그 자동 수집 - **클러스터 모드**: CPU 코어별 프로세스 분산 실행 - **Windows 서비스 등록**: 시스템 부팅 시 자동 시작 ### 설치 후 수동 설정 자동 설치가 완료된 후 다음 명령을 수동으로 실행해야 합니다: ```powershell # Claude CLI 인증 (필요 시) claude login # PM2로 워커 시작 pm2 start ecosystem.config.js # 현재 프로세스 목록 저장 (재부팅 후에도 유지) pm2 save # Windows 서비스로 등록 (선택사항) pm2-service-install ``` ## Tailscale을 활용한 안전한 원격 연결 Tailscale은 WireGuard 기반의 메시 VPN 솔루션으로, 복잡한 네트워크 설정 없이 안전한 P2P 연결을 구성할 수 있습니다. ### 아키텍처 구성 ``` 원격 PC (Tailscale 클라이언트) ↓ Nginx 프록시 서버 (Tailscale 네트워크 내부) ↓ 백엔드 서비스 (Kafka, PostgreSQL 등) ``` 이 구조의 장점: - **방화벽 우회**: NAT 뒤의 PC도 복잡한 포트포워딩 없이 연결 가능 - **암호화 통신**: WireGuard 프로토콜로 모든 트래픽 암호화 - **접근 제어**: Tailscale ACL로 세밀한 권한 관리 - **고정 IP**: 각 디바이스에 100.x.x.x 형태의 고정 IP 할당 ### 프록시 서버 역할 Nginx 프록시는 Tailscale 네트워크와 내부 서비스 사이의 게이트웨이 역할을 합니다: - Kafka 브로커 포트 (9094) 중계 - PostgreSQL 포트 (5432) 중계 - TLS 종료 및 인증 처리 ## 실무 적용 사례 ### 다중 워커 배포 실제 운영 환경에서는 다음과 같이 여러 위치에 워커를 배포할 수 있습니다: - **사무실 PC**: 로컬 네트워크에서 직접 연결 - **재택 근무 PC**: Tailscale을 통한 보안 연결 - **클라우드 VM**: 하이브리드 인프라 구성 각 워커는 고유한 ID로 식별되며, 동일한 메시지 큐 또는 데이터베이스에 연결되어 작업을 분산 처리합니다. ### 모니터링 및 관리 PM2는 실시간 모니터링 기능을 제공합니다: ```powershell # 프로세스 상태 확인 pm2 status # 로그 실시간 조회 pm2 logs # 메모리/CPU 사용량 모니터링 pm2 monit ``` ## 핵심 요약 및 다음 단계 이번 글에서는 PowerShell 자동화 스크립트로 Windows 환경에 원격 워커를 배포하는 방법을 살펴봤습니다. 핵심 포인트는 다음과 같습니다: 1. **자동화 스크립트**: 반복적인 설치 작업을 스크립트로 표준화 2. **PM2 프로세스 관리**: 안정적인 워커 실행 및 자동 복구 3. **Tailscale VPN**: 안전하고 간편한 원격 네트워크 구성 4. **프록시 패턴**: 내부 서비스 보호 및 접근 제어 ### 추가 학습 자료 - PM2 공식 문서: [https://pm2.keymetrics.io/](https://pm2.keymetrics.io/) - Tailscale 가이드: [https://tailscale.com/kb/](https://tailscale.com/kb/) - PowerShell 자동화: Microsoft Learn의 PowerShell 모듈 다음 단계로는 Docker 컨테이너 기반 배포, Kubernetes를 활용한 오케스트레이션, 또는 Ansible 같은 구성 관리 도구와의 통합을 고려해볼 수 있습니다.
#원격워커#자동화#PM2#Tailscale#PowerShell#분산시스템#프로세스관리#VPN
공유하기:

이 주제에 대해 더 알아보고 싶으신가요?

프로젝트 상담을 통해 맞춤형 솔루션을 제안받으세요.