안녕하세요. Python & FastAPI를 이용하여 자동매매 프로그램을 개발하고 있는 인천고래입니다.
정식 웹 서비스를 제공하기 전에 로컬에서 테스트를 많이 하는데
실제 서버에 베타 버전을 올리기 이전에 로컬에서라도 외부 접근이 가능하게 만드는 서비스가 있어서 소개차 글을 작성합니다.
ngrok은 로컬에서 실행 중인 웹 서버를 외부 인터넷에서 접근할 수 있는 공개 URL로 노출시키는 터널링 서비스를 제공합니다. 이를 통해 로컬 환경에서 개발 중인 애플리케이션을 손쉽게 외부 사용자 또는 클라이언트에게 보여줄 수 있어서 웹훅 테스트, API 개발, 데모 등을 위해 매우 유용합니다.
ngrok 주요 기능
- HTTP/HTTPS 터널링: 로컬 웹 서버를 안전한 HTTP 및 HTTPS URL로 노출시킵니다.
- TCP 터널링: 비 HTTP/S 트래픽을 터널링 하여 원격 데스크톱, SSH 등 다양한 프로토콜을 지원합니다.
- 로컬 네트워크 접속: 로컬 네트워크에 있는 다른 기기의 서버를 외부에 노출시킵니다.
- 트래픽 검사: 실시간으로 요청 및 응답을 모니터링하고 검사할 수 있습니다.
- OAuth 인증: 터널에 OAuth를 적용하여 안전한 접근을 관리합니다.
- 커스텀 도메인: 유료 플랜에서는 커스텀 도메인을 설정할 수 있습니다.
1. ngrok 사용 방법
1-1. ngrok 설치
- ngrok 회원가입: https://ngrok.com/
무료 회원과 유료 회원이 있습니다. 저는 구글 계정(Sign up with Google)으로 가입(무료)했습니다. - ngrok 다운로드: https://dashboard.ngrok.com/get-started/setup/windows
ngrok 다운로드 페이지에서 운영체제에 맞는 ngrok 패키지를 다운로드합니다. - ngrok 설치:
다운로드한 파일을 임의의 디렉토리에 압축 해제합니다. 저는 애플리케이션과 같은 경로에 압축 해제했습니다.
ngrok 다운로드 절차는 아래와 같습니다.
2. ngrok 인증 토큰 설정 및 ngrok 터널 실행
- 인증 토근 페이지: https://dashboard.ngrok.com/get-started/your-authtoken
- 인증 토근 복사:
대시 보드에서 "Your Authtoken"을 복사합니다. - 인증 토근 설정(추가) :
아래의 명령문을 파이참 터미널에서 입력하면 됩니다. 도스(cmd)창에서 입력하셔도 됩니다.
위에서 복사한 인증 토근값을 YOUR_AUTHTOKEN 자리에 대체하여 넣으시면 됩니다.
ngrok config add-authtoken YOUR_AUTHTOKEN
- 파이참에서 FastAPI가 실행되는 코드를 아래와 같이 변경한 뒤 어플리케이션을 실행합니다.
import uvicorn ... uvicorn.run(app, host="127.0.0.1", port=8000)
- 어플리케이션이 실행된 뒤에 ngrok 터널을 실행합니다.
ngrok http 8000
ngrok 서버가 실행된 후 파이참 터미널에서는 아래와 같이 서버가 동작중인 것을 알 수 있습니다.
포워딩된 주소로 접속을 하면 정상적으로 동작이 될 것입니다.
예) https://f9bf-218-148-155-4.ngrok-free.app
이것으로 간략하게나마 ngrok를 이용해서 외부에 공유되는 웹 서비스 URL을 만드는 방법에 대해 알아보았습니다.
유용하게 사용하시기를 바라겠습니다.
감사합니다.
'Web Application' 카테고리의 다른 글
data-* : HTML5에서 도입된 사용자 정의 데이터 속성 (0) | 2024.05.12 |
---|---|
웹 스크래핑을 통한 비동기 프로그래밍 필요성의 이해 (0) | 2024.04.05 |
데이터 종류에 따른 Flask 서버 & 클라이언트측 코드 (0) | 2024.02.18 |
클라이언트 요청에 응답하는 Flask 서버 코드 (0) | 2024.02.18 |
AJAX를 사용하여 서버(Flask)에 데이터를 요청하는 두 가지 방법 (0) | 2024.02.18 |
댓글