[파이썬] Flask 앱 호스팅 (Heroku, AWS 등)

플라스크(Flask)는 파이썬으로 웹 애플리케이션을 개발하기 위한 경량 프레임워크입니다. 개발한 앱을 호스팅하기 위해서는 실제 서버 환경이 필요합니다. 이 글에서는 헤로쿠(Heroku)아마존 웹 서비스(AWS)를 사용하여 Flask 앱을 호스팅하는 방법에 대해 알아보겠습니다.

헤로쿠(Heroku)를 사용한 Flask 앱 호스팅

헤로쿠는 개발자가 간편하게 애플리케이션을 배포할 수 있는 플랫폼으로, Flask 앱을 호스팅하기에 매우 유용합니다. 다음은 Flask 앱을 헤로쿠에 호스팅하는 간단한 절차입니다:

  1. 헤로쿠 계정 생성 및 로그인: 헤로쿠 웹 사이트로 이동하여 계정을 생성하고 로그인합니다.
  2. 헤로쿠 CLI 설치: 로컬 컴퓨터에 헤로쿠 CLI(Command Line Interface)를 설치합니다.
  3. Flask 앱 작성: Flask로 앱을 개발하고, 앱을 실행하는지 로컬에서 테스트합니다.
  4. 헤로쿠 앱 생성: 헤로쿠에 앱을 생성합니다. 헤로쿠 CLI를 사용하여 heroku create 명령을 실행합니다.

    $ heroku create
    
  5. Git 리포지토리 설정: 헤로쿠에 앱을 배포하기 위해 Git 리포지토리를 설정합니다. heroku git:remote 명령을 사용하여 로컬 Git 프로젝트와 헤로쿠 앱을 연결합니다.

    $ heroku git:remote -a your-heroku-app-name
    
  6. 필요한 패키지와 의존성 설치: requirements.txt 파일에 필요한 패키지와 의존성을 명시합니다. 이후 pip install -r requirements.txt 명령으로 패키지를 설치합니다.
  7. 앱 커밋 및 배포: Git을 사용하여 앱을 커밋하고, git push heroku master 명령으로 헤로쿠에 앱을 배포합니다.

    $ git add .
    $ git commit -m "Initial commit"
    $ git push heroku master
    
  8. 앱 실행 및 확인: heroku open 명령으로 앱을 실행하고, 헤로쿠에서 제공하는 URL로 접속하여 앱이 제대로 동작하는지 확인합니다.

    $ heroku open
    

아마존 웹 서비스(AWS)를 사용한 Flask 앱 호스팅

아마존 웹 서비스(AWS)는 클라우드 플랫폼으로서 다양한 호스팅 옵션을 제공합니다. Flask 앱을 호스팅하기 위해 EC2 인스턴스를 사용할 수 있습니다. 다음은 Flask 앱을 AWS EC2 인스턴스에 호스팅하는 절차입니다:

  1. AWS 계정 생성 및 로그인: AWS 웹 사이트로 이동하여 계정을 생성하고 로그인합니다.
  2. EC2 인스턴스 생성: AWS 콘솔에서 EC2 인스턴스를 생성합니다. 인스턴스 유형, 용도에 맞는 운영 체제(예: Ubuntu)를 선택합니다.
  3. 인스턴스 연결 및 설정: 생성한 인스턴스에 연결하여 SSH로 로그인합니다. 필요한 패키지와 의존성을 설치하고 Flask 앱을 배포할 준비를 합니다.
  4. Flask 앱 업로드: SCP나 SFTP를 사용하여 로컬의 Flask 앱을 EC2 인스턴스로 업로드합니다.
  5. 앱 실행 및 확인: SSH로 EC2 인스턴스에 접속하여 Flask 앱을 실행하고, 인스턴스의 공개 IP 주소 또는 도메인으로 앱에 접속하여 동작을 확인합니다.

마무리 및 참고 자료

이렇게 여러분은 간단한 Flask 앱을 헤로쿠나 AWS에 호스팅할 수 있습니다. 호스팅하는 플랫폼에 따라 설정이 다소 복잡할 수 있으니, 각 플랫폼의 공식 문서를 참고하시기 바랍니다.

행운을 빕니다!