Web/server

Fly io로 파이썬 프로젝트 배포하기 - 텔레그램 챗봇

H_eh 2024. 10. 30. 18:00

파이썬으로 개발하고 Fly.io를 이용해서 텔레그램에서 사용할 챗봇을 만들고 배포까지 해보았다.

파이썬 코드는 인터넷에 좋은 코드들이 많고, 간단해서 쉽게 완성했는데

실제 텔레그램에서 사용가능하도록 배포하는 과정이 어려웠다.

 

Fly.io 사이트가 배포하기 쉬워서 선택했고, 실제로 배포하기도 아주 쉬웠는데 이제 무료가 아닌듯 하다.

- $5.00 이하는 무료이다

더보기

Fly.io 제공 기능 

 

  • 전 세계 배포: Fly.io는 여러 데이터 센터를 통해 애플리케이션을 전 세계 여러 지역에 배포하여, 사용자에게 더 빠른 응답 속도를 제공합니다.
  • 컨테이너 기반 배포: Docker를 사용하여 애플리케이션을 컨테이너화하고, 이를 Fly.io에 쉽게 배포할 수 있습니다.
  • 자동 스케일링: 트래픽에 따라 자동으로 리소스를 조정하여 애플리케이션의 성능을 유지할 수 있습니다.
  • 빌트인 HTTPS: Fly.io는 배포된 애플리케이션에 대해 자동으로 HTTPS를 설정하여 보안을 강화합니다.
  • 통합 및 관리 도구: CI/CD 파이프라인 통합, 로그 관리, 성능 모니터링 등의 도구를 제공합니다.

 

 

배포 과정

1. python-telegram-bot 패키지 설치

pip install python-telegram-bot==20.0a2

 

2. 파이썬 코드 작성

- 로컬에서 파이썬을 동작시키려면 토큰을 설정해줘야하는데, 보안상 코드에 직접 넣지 않고 다음을 이용(mac OS)

- 해당 터미널에서만 유효함

export TOKEN=<your bot token>

 

3. 설정 저장

pip freeze > requirements.txt

 

4. Dockerfile 생성

- 파이썬을 구동하기 위한 명령어 파일..

더보기

터미널이 아니라 Dockerfile : 확장자없음

FROM python:3.9

RUN apt-get update && apt-get install -y \
    python3-pip \
    python3-venv \
    python3-dev \
    python3-setuptools \
    python3-wheel

COPY requirements.txt .
RUN pip install -r requirements.txt

COPY . .

CMD ["python", "main.py"]

 

5. Fly.io 계정생성

- 신용카드 기입 필수

- flyctl 설치

 

6. 로그인

flyctl auth login

 

7. app 생성

flyctl apps create <your-app-name>

 

8. Telegram 봇 토큰 설정

flyctl secrets set TOKEN=<your telegram bot token>

 

9. configuration 파일 생성

더보기

.

app = <your-app-name>
kill_signal = "SIGINT"
kill_timeout = 5
processes = []

 

10. 배포

flyctl deploy
728x90
728x90