arko_renual/deploy/web/arko-was-tunnel.service
URP2026 7376c99f17
All checks were successful
deploy-dev / deploy (push) Successful in 36s
운영 웹서버(csv.wise.ai.kr) 구축 및 개발→운영 자동 배포 연결
웹 티어(211.37.173.197 / Rocky 8):
- csv.wise.ai.kr nginx vhost + Let's Encrypt SSL
- WAS는 SSH 터널(arko-was-tunnel.service)로 연결 — 개발서버가 NAT 뒤라
  8088이 포워딩되지 않고 Tomcat도 127.0.0.1 바인딩이기 때문이다.
  키는 WAS에서 restrict,permitopen="127.0.0.1:8088" 로 묶어 셸 접근 불가.
- 정적 리소스는 운영 웹이 직접 서빙하고 없으면 @was 폴백 — 전환 중에도 깨지지 않는다.

파이프라인:
  git push -> 개발 WAS 배포 -> 개발 헬스체크 -> 운영 웹 정적 배포 -> 운영 검증
개발 헬스체크를 통과한 뒤에만 운영으로 넘어간다.
접속 방향은 개발->운영(개발서버는 NAT 뒤라 역방향 접속이 불가능하다).
2026-07-29 17:50:32 +09:00

41 lines
1.5 KiB
Desktop File

# arko WAS 터널 — 웹서버(utimsurpai.cafe24.com)에서 개발서버 Tomcat으로
# 설치 위치: /etc/systemd/system/arko-was-tunnel.service
#
# 왜 터널인가:
# WAS(101.79.17.164)는 NAT 뒤에 있고 8088은 포워딩되지 않는다(22/80/443만 열림).
# Tomcat도 127.0.0.1에만 바인딩되어 있다. 포트를 공개로 여는 대신,
# 웹서버가 아웃바운드 SSH로 터널을 열어 자기 쪽 127.0.0.1:8088 을 WAS의 Tomcat에 잇는다.
# - NAT 변경 불필요, 구간 암호화, Tomcat이 인터넷에 직접 노출되지 않음
# - 같은 서버의 uiws-tunnel(5432)과 동일한 방식
#
# 키는 WAS의 authorized_keys에서 restrict,permitopen="127.0.0.1:8088" 로 묶여 있어
# 셸 접근은 불가능하고 이 포트 외에는 열 수 없다.
[Unit]
Description=SSH tunnel to arko DEV WAS (101.79.17.164:8088)
After=network-online.target
Wants=network-online.target
Before=nginx.service
[Service]
Type=simple
ExecStart=/usr/bin/ssh -N -T \
-o ExitOnForwardFailure=yes \
-o ServerAliveInterval=30 \
-o ServerAliveCountMax=3 \
-o StrictHostKeyChecking=accept-new \
-o UserKnownHostsFile=/root/.ssh/known_hosts \
-o IdentitiesOnly=yes \
-i /root/.ssh/id_arko_tunnel \
-L 127.0.0.1:8088:127.0.0.1:8088 \
root@101.79.17.164
# 끊기면 계속 재연결한다 — 개발서버가 재부팅되는 일이 잦다(2026-07-29 하루 두 번)
Restart=always
RestartSec=10
User=root
Group=root
[Install]
WantedBy=multi-user.target