[Ngrok] 외부에서 로컬 서버 접속하기 - MAC

이정진·2024년 1월 9일
0

개발

목록 보기
3/21
post-thumbnail

Ngrok

Ngrok의 목적

  1. 개발/테스트 시 사용 (Ingress for Dev/Test)

  2. 외부 네트워크에서 접근 (Ingress for External Networks)

  3. 배포 앱에 대한 접근 (Ingress for Production Apps)

Ngrok의 장점

  1. Ngrok을 사용하지 않고, 로컬 서버를 이용한 테스트를 하기 위해선 별도로 공유기 포트포워딩을 진행해야 하는데, 이런 불필요한 과정을 다 생략할 수 있다는 것이 Ngrok의 장점이다.

  2. 로컬 서버의 IP를 노출하지 않고 사용할 수 있다는 점

  3. Https 연결 지원 (SSL/TLS 인증서를 지원하여, https로 외부에서 접속할 수 있도록 한다는 점)

필요성

나는 기존 소프트웨어 마에스트로 과정에서 개발 서버와 운영 서버를 분리해서 개발해왔었는데, 소프트웨어 마에스트로 종료 이후 서비스를 계속 유지하는 과정에서 운영 서버는 무료 크레딧이 존재하는 GCP로 옮기게 되었고, 부득이하게 개발 서버는 다른 방식을 찾아가고 있었다. 단일 인스턴스 내의 도커 컴포즈로 구축하고자 했고, 그 이전 과정에서 진행하고 있는 개발물에 대한 테스트가 필요하여 빠르게 확인할 수 있는 방식으로 ngrok을 선택하게 되었다.
(사실 클라이언트 개발자 PC에서 도커 컴포즈로 올려서 진행할 수 있도록 시도했으나, 로컬에서 생성한 도커 이미지는 정상적으로 실행되지만, 워크플로우를 통해 docker hub에서 push한 이미지는 오류가 계속 발생해서 일단 이 방식을 선택하게 되었다.)

Ngrok 설치

  1. Ngrok 다운로드 페이지 접속

  2. ZIP file 다운로드

  3. UNZIP

Ngrok 실행

나는 로컬에서 실행한 스프링부트 서버를 외부로 노출시키고자 했다.
그렇기에 http의 8080번 포트가 외부로 노출되도록 실행했다.

./ngrok http 8080
  • 주의사항: 위 명령어는 ngrok이 존재하는 경로에서 실행해야 한다. 존재하지 않는 경로에서 실행 시, not found가 뜬다.

별도의 토큰 발행 없이, ngrok은 최대 2시간까지만 사용이 가능하기에 Authtoken을 입력해주어야 한다.
Authtoken은 로그인 후, 위의 페이지에서 authtoken을 복사해서 CLI에서 추가해준 후 실행하면 된다.

./ngrok config add-authtoken {Authtoken정보}

레퍼런스

0개의 댓글