Fly.ioでNode.jsアプリを無料デプロイ:Heroku代替の本命

Herokuの無料プランが廃止されて以降、個人開発者のデプロイ先として注目を集めているFly.io。東京リージョンがあり、日本からのレイテンシも低い。Node.jsアプリのデプロイ手順を実際のプロジェクトを例に解説します。

Fly.ioの特徴

  • 東京リージョン(nrt)あり
  • Dockerベースでデプロイ
  • 無料枠: 3つのshared-cpu-1x VM、160GB転送量/月
  • PostgreSQL、Redis、S3互換ストレージも提供
  • 自動HTTPS対応

セットアップ

# Fly CLIインストール
curl -L https://fly.io/install.sh | sh

# ログイン
fly auth login

# プロジェクト作成
cd my-node-app
fly launch

Dockerfile の準備

FROM node:20-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --omit=dev
COPY src/ ./src/
EXPOSE 3000
CMD ["node", "src/index.js"]

fly.tomlの設定

app = "my-awesome-app"
primary_region = "nrt"  # 東京リージョン

[build]

[http_service]
  internal_port = 3000
  force_https = true
  auto_stop_machines = "stop"
  auto_start_machines = true
  min_machines_running = 0

[env]
  NODE_ENV = "production"

シークレット管理

# 環境変数(シークレット)の設定
fly secrets set DATABASE_URL="postgresql://..."
fly secrets set API_KEY="sk-..."

# 設定済みシークレット一覧
fly secrets list

デプロイ

# デプロイ実行
fly deploy

# ログ確認
fly logs

# ステータス確認
fly status

# ブラウザで開く
fly open

カスタムドメイン設定

# カスタムドメイン追加
fly certs create example.com

# DNS設定を確認
fly certs show example.com

まとめ

Fly.ioは「flyctl deploy」一発でDockerアプリをデプロイできる手軽さと、東京リージョンの低レイテンシが魅力です。個人プロジェクトからスタートアップまで、幅広い用途で活用できます。

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

IP: 取得中...
216.73.216.31216.73.216.31