ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Fly.io 사용 방법
    서버 관련 2025. 6. 10. 10:31

    Fly.io는 글로벌 애플리케이션 배포를 지원하는 경량 PaaS(Platform-as-a-Service)입니다. Docker 이미지 또는 간단한 설정 파일만으로 리눅스 기반 서버를 띄우고, 전 세계에 분산된 위치에 배포할 수 있어 매우 효율적입니다. 아래는 Fly.io를 처음 사용하는 사람을 위한 단계별 사용 가이드입니다.


    ✅ Fly.io 사용 개요

    • 운영 환경: Docker 기반 리눅스 컨테이너
    • 무료 플랜: 매월 3개의 소형 VM (1 vCPU / 256MB RAM 기준), 160GB 아웃바운드 트래픽 포함
    • 적합한 용도:
      • 간단한 API 서버, Flask/FastAPI, Node.js 백엔드
      • SSH 기반 서버 앱, 개인용 VPN, MariaDB 같은 DB 실행 테스트

    🛠️ 1. 필수 도구 설치

    (1) Fly CLI 설치

    bash
    복사편집

    설치 후, 셸을 다시 시작하거나 다음 명령으로 CLI를 활성화:

    bash
    복사편집
    export PATH="$HOME/.fly/bin:$PATH"

    (2) Docker 설치

    Fly는 기본적으로 Docker 환경을 이용해 배포하므로 Docker 공식 사이트를 참고하여 설치해주세요.


    🔐 2. Fly.io 로그인 및 초기 설정

    bash
    복사편집
    fly auth login
    • 브라우저가 열리고 GitHub 또는 이메일 계정으로 로그인
    • 로그인 후 flyctl 명령어 사용 가능

    📁 3. 프로젝트 초기화

    예를 들어 Flask 애플리케이션이 있다고 가정할 경우:

    bash
    복사편집
    mkdir my-flask-app && cd my-flask-app

    예시 app.py:

    python
    복사편집
    from flask import Flask app = Flask(__name__) @app.route("/") def hello(): return "Hello, Fly.io!"

    예시 requirements.txt:

    makefile
    복사편집
    flask==2.1.0 gunicorn

     


    🐳 4. Dockerfile 작성

    Dockerfile
    복사편집
    # 베이스 이미지 FROM python:3.10-slim # 작업 디렉토리 설정 WORKDIR /app # 의존성 설치 COPY requirements.txt . RUN pip install -r requirements.txt # 애플리케이션 복사 COPY . . # 실행 명령 CMD ["gunicorn", "-b", "0.0.0.0:8080", "app:app"]

    🚀 5. Fly 앱 생성 및 배포

    (1) 앱 초기화

    bash
    복사편집
    fly launch
    • 앱 이름, 리전 선택 (서울 리전: nrt 또는 hkg, 기본은 sin)
    • fly.toml 파일 자동 생성됨

    (2) 앱 배포

    bash
    복사편집
    fly deploy
    • Docker 빌드 -> 컨테이너 이미지 업로드 -> 배포 자동 진행
    • 완료 후 배포 URL 제공 (예: https://my-flask-app.fly.dev)

    🔁 6. 배포 후 관리

    앱 로그 보기

    bash
    복사편집
    fly logs

    앱에 SSH 접속

    bash
    복사편집
    fly ssh console

    환경변수 설정

    bash
    복사편집
    fly secrets set MY_SECRET=value

    🧪 MariaDB 같은 DB 띄우기

    Fly.io는 자체 Volume 기능과 함께 MySQL, PostgreSQL도 직접 구성 가능하지만, 무료 플랜에서는 운영이 제한적일 수 있습니다.

    예시: MariaDB 실행

    bash
    복사편집
    fly volumes create mariadb_data --size 3 --region sin fly launch # Dockerfile에서 mariadb 이미지 기반 구성
    • 하지만 장기적인 DB 운영은 외부 DB (PlanetScale, Neon, Supabase 등)와 연동하는 것이 추천됩니다.

    📌 요약

    작업명령어 요약
    로그인 fly auth login
    앱 초기화 fly launch
    앱 배포 fly deploy
    로그 보기 fly logs
    SSH 접속 fly ssh console
    환경변수 설정 fly secrets set VAR=value
     

    📚 참고 링크

Designed by Tistory.