Ngrok의 목적
개발/테스트 시 사용 (Ingress for Dev/Test)
외부 네트워크에서 접근 (Ingress for External Networks)
배포 앱에 대한 접근 (Ingress for Production Apps)
Ngrok의 장점
Ngrok을 사용하지 않고, 로컬 서버를 이용한 테스트를 하기 위해선 별도로 공유기 포트포워딩을 진행해야 하는데, 이런 불필요한 과정을 다 생략할 수 있다는 것이 Ngrok의 장점이다.
로컬 서버의 IP를 노출하지 않고 사용할 수 있다는 점
Https 연결 지원 (SSL/TLS 인증서를 지원하여, https로 외부에서 접속할 수 있도록 한다는 점)
나는 기존 소프트웨어 마에스트로 과정에서 개발 서버와 운영 서버를 분리해서 개발해왔었는데, 소프트웨어 마에스트로 종료 이후 서비스를 계속 유지하는 과정에서 운영 서버는 무료 크레딧이 존재하는 GCP로 옮기게 되었고, 부득이하게 개발 서버는 다른 방식을 찾아가고 있었다. 단일 인스턴스 내의 도커 컴포즈로 구축하고자 했고, 그 이전 과정에서 진행하고 있는 개발물에 대한 테스트가 필요하여 빠르게 확인할 수 있는 방식으로 ngrok을 선택하게 되었다.
(사실 클라이언트 개발자 PC에서 도커 컴포즈로 올려서 진행할 수 있도록 시도했으나, 로컬에서 생성한 도커 이미지는 정상적으로 실행되지만, 워크플로우를 통해 docker hub에서 push한 이미지는 오류가 계속 발생해서 일단 이 방식을 선택하게 되었다.)
ZIP file 다운로드
UNZIP
나는 로컬에서 실행한 스프링부트 서버를 외부로 노출시키고자 했다.
그렇기에 http의 8080번 포트가 외부로 노출되도록 실행했다.
./ngrok http 8080
별도의 토큰 발행 없이, ngrok은 최대 2시간까지만 사용이 가능하기에 Authtoken을 입력해주어야 한다.
Authtoken은 로그인 후, 위의 페이지에서 authtoken을 복사해서 CLI에서 추가해준 후 실행하면 된다.
./ngrok config add-authtoken {Authtoken정보}
레퍼런스