slack bot에 연동할 api 서버를 개발하고 테스트를 진행하려던 참이었다.
Rquest URL을 입력하기 위해선 https URL이 필요했는데, 개발하고 있는 나의 로컬 서버(윈도우)에 도메인 적용 + 인증서 등록을 하기엔 너무 많은 시간과 노력이 필요했다.
그렇게 간단하게 테스트하기 위한 용도로 알아보던 도중 ngrok을 알게되었고, 테스트 용도로 좋게 사용할 수 있었다.
이번 포스팅에서는 개발 로컬 서버를 ngrok을 사용하여 간단하게 https URL로 띄우는 방법에 대해 기입하였다.
공식 홈페이지: https://ngrok.com/
ngrok은 유연한 API 게이트웨이로, 쉽고 빠르게 인프라 구축과 개발을 하기 위한 목적으로 나왔다.
ngrok의 여러 기능을 사용하기 위해서는 유료 결제가 필요하지만 테스트 용도로는 무료 버전으로 충분하다.
아래는 대략적으로 무료 버전에서 제공하는 내역이며, 자세한 내용은 공식 홈페이지 참고하면 된다.
---
먼저 ngrok을 다운로드 해준다.
다운로드는 공식 홈페이지에 OS별 상세하게 나와 있으며, 나는 window 환경이므로 zip 파일을 다운로드 해주었다.
zip 파일을 풀기 전에, ngrok 회원가입하여 토큰을 발급 받아야 한다.
ngrok 회원 가입 후 Getting Started > Your Authtoken에서 토큰을 복사한다.
그리고 사진에 나온대로 cmd창가서 복사한 token을 설정해주면 되는데, 이제 zip 파일을 풀고 cmd 창을 열어주면 된다.
다운로드한 zip 파일을 압축 해제하면 정직하게 ngrok.exe 파일만 있는 것을 볼 수 있다. 해당 exe 파일을 더블클릭해서 cmd 창을 오픈하자.
이제 복사한 token 값을 이용해 ngork 설정해주면 된다.
ngrok config add-authtoken $YOUR_AUTHTOKEN
ngrok 기본 셋팅은 모두 마쳤다. 이제 내 로컬에서 3000 포트로 돌아가고 있는 flask 서버를 외부로 노출시켜주면 된다.
방법은 간단하다. 아까 열었던 cmd창에 아래 명령어를 입력하면 된다.
ngrok http 3000
아래와 같이 localhost:3000 주소가 https://~~~.ngrok-free.app 주소로 포워딩된 것을 볼 수 있다.
이제 빨간 박스의 url로 api 요청을 하면 로컬의 서버가 작동할 것이다.
요청이 들어온 기록은 cmd창에 시간과 응답 status code와 함께 로깅되는 것을 볼 수 있다.
ngrok으로 간단하게 로컬 서버를 https 도메인과 매핑하여 외부로 노출시켜보았다.
서비스를 배포하기 전 개발 단계나 테스트 단계에서 편리하게 사용하기 좋다고 생각한다.
실제로 slack bot 개발하면서 https 도메인이 필요했는데 정말 요긴하게 잘 사용했다.