2024. 1. 1. 22:41ㆍ프로그래밍/기타
집에 서버를 두고 퍼블릭 서비스를 하기 위해서는 공인 아이피가 없음으로 인한 여러 제약들이 있습니다.
DDNS를 이용해서 접근하는 방법이 있지만 이 또한 한계가 있습니다.
이럴때 사용해볼 수 있는 방법이 클라우드와 연동해서 VPN을 이용한 서비스를 구성하는 방법입니다.
제가 사용하고 있는 서비스 구성 형태를 간단히 기술해보려고 합니다.
사용한 솔루션 리스트는 다음과 같습니다.
1. Nginx Proxy Manager
2. Tailscale
Nginx Proxy Manager는
AWS에 nginx proxy manager를 docker-compose를 이용해서 설치합니다.
version: '3.8'
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
- '80:80'
- '81:81'
- '443:443'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
설정 정보에 보시면 ports 번호가 80, 81, 443번만 오픈되어있습니다만 특정 포트를 지정해서 서비스 하고자 하신다면 여기에 포트를 지정해주셔야 합니다.
중요) nginx proxy의 stream 을 사용하시는 경우 포트를 지정해서 전달하는데 여기에 포트를 넣어주셔야 서비스 연동이 가능합니다.
툴에 대한 자세한 사용법은 다른 블로거 분들이 정리를 잘 해두신 경우가 많으니 참고하시구요. 본 글 하단에 링크 추가해두겠습니다.
Nginx Proxy Manager에서 호스트, 리다이렉트, 스트림으로 전달할 서버를 지정하게 됩니다. 여기에서 클라우드 인스턴스와 집에 있는 서버와 서로 VPN을 이용해서 연결 해주게 되면 리버스 프록시 설정에 VPN 아이피를 이용해서 연동할 수 있게 됩니다.
이 때 사용하는 솔루션이 tailscale 입니다.
Tailscale은...
tailscale은 VPN 서비스 프로바이더입니다. 이 서비스를 이용하게 되면 별도의 VPN 서버를 구성할 필요 없이 로그인 만으로 나만의 VPN 그룹을 생성하게 됩니다.
먼저 여기에서 회원가입을 하세요.
클라우드에 있는 서버에도 클라이언트 다운로드를 하셔서 설치하시고, 집에 연결할 서버들에도 설치해주시면 됩니다.
각 클라이언트 설치후에 동일한 아이디로 로그인 하시면 각각 서버별로 다른 아이피를 지정받게 되고, 해당 IP를 이용해서 상호간에 자유롭게 접속이 가능해집니다.
물론 집에 있는 서버에 직접 연결하고자 한다면 개발자 PC에도 tailscale을 설치하면 됩니다.
기본적으로 nginx proxy의 경우 http 프로토콜 이외의 연결은 stream 을 이용해서 셋팅해주셔야 합니다.
집에 SVN, DB, Mail server 등을 두고 외부에서 공인 아이피로 접근하고자 하신다면 이 stream 을 이용해서 설정하시면 됩니다.
※ 참고 자료
궁금하신 것이 있으시면 댓글 남겨주세요.
'프로그래밍 > 기타' 카테고리의 다른 글
한 개의 키보드/마우스로 여러 컴퓨터를 멀티 모니터 처럼 사용하기 (0) | 2024.05.26 |
---|---|
VS Code 열려있는 창 모두 닫기 (전체 단축키 다운로드) (0) | 2023.03.20 |
Ubuntu에서 GPG 에러 날 때 해결 방법 (0) | 2023.01.18 |
/usr/bin/env: ‘python’: No such file or directory 문제 해결 방법 (0) | 2022.11.07 |
.gitignore 적용 안될때 (0) | 2021.10.15 |