この記事のポイント
- Ubuntu 24.04 に
curl1行でflyctl v0.4.59をインストールできます - 日本向けサービスは
primary_region = "nrt"(東京)を指定するのが基本 flyctl launch→flyctl deployの2コマンドだけで HTTPS 付きデプロイが完了します- 無料枠では
auto_stop_machines = trueに設定しておくとコストが抑えられます - Fly.io の WebUI(dashboard.fly.io)でログ・ステータス・設定をブラウザから確認できます
Fly.io は、Dockerfile を渡すだけでエッジサーバーへのデプロイができるプラットフォームです。VPS を借りて nginx を設定して……という手順が不要で、flyctl deploy の1コマンドで HTTPS 付きの URL が発行されるのが特徴です。
この記事では Ubuntu 24.04 を使って、flyctl のインストールからアプリのデプロイまでを実際のコマンド出力と一緒に解説します。Fly.io の公式ダッシュボードの画面も撮影したので、登録前に雰囲気を確認したい方にも参考になると思います。
注意
本記事のコマンドは Ubuntu 24.04 LTS(Noble Numbat)で検証しています。Fly.io のプランや料金は変更される場合があります。デプロイには Fly.io アカウントへの登録が必要です。
目次
- Fly.io とは
- 前提環境
- 手順1:Docker をインストールする
- 手順2:flyctl をインストールする
- 手順3:Fly.io にログインする
- 手順4:アプリを作成してデプロイする
- fly.toml の設定を理解する
- Fly.io ダッシュボードで確認する
- リージョン選択のポイント
- よくあるエラーと解決策
- まとめ
Fly.io とは
Fly.io は、アメリカのスタートアップ企業 Fly.io Inc. が提供するクラウドプラットフォームです。Dockerfile を起点にアプリをデプロイするだけで、ロードバランサーや HTTPS 証明書が自動でついてくるのが最大の売りです。
VPS(Vultr や DigitalOcean など)と比べると、こんな違いがあります。
| 項目 | VPS(Vultr / DigitalOcean など) | Fly.io |
|---|---|---|
| デプロイ方法 | SSH で入って設定する | Dockerfile + flyctl deploy |
| HTTPS 設定 | Certbot など別途設定が必要 | 自動(証明書付き URL が即発行) |
| スケーリング | 手動でインスタンスを増減 | flyctl scale で自動スケール |
| 無料枠 | 基本なし(試用クレジットのみ) | 共有CPU + 256MB RAM のマシンあり |
| 向いているケース | フル制御・長期稼働サーバー | Webアプリ・API サーバーの素早いデプロイ |
「Dockerfile は書けるけど、サーバー設定に時間をかけたくない」という場面でよく使われています。自分のポートフォリオサイトや、小規模な API サーバーを素早く公開したいときに向いています。

前提環境
- Ubuntu 24.04 LTS(Noble Numbat)
- sudo 権限があるユーザー
- Fly.io アカウント(無料で作成可能、クレジットカード登録が必要)
- Docker のインストール(手順1で行います)
ローカルの Ubuntu マシンでも、VPS 上の Ubuntu でも同じ手順で動きます。
手順1:Docker をインストールする
Fly.io はデプロイ時に Dockerfile を使うため、ローカルに Docker が必要です。Ubuntu 24.04 の標準リポジトリには docker.io 29.1.3 が収録されていて、apt で入ります。

$ sudo apt-get install -y docker.io docker-compose
Reading package lists… Done
Building dependency tree… Done
Setting up docker.io (29.1.3-0ubuntu3~24.04.2) …
Setting up docker-compose (1.29.2-6ubuntu1) …
インストール後、現在のユーザーを docker グループに追加しておくと、毎回 sudo をつけなくて済みます。
$ newgrp docker
$ docker –version
Docker version 29.1.3, build 26d63b3
注意
usermod でグループに追加後、反映のために一度ログアウト&ログインが必要です。セッション内だけ有効にするには newgrp docker を実行してください。
手順2:flyctl をインストールする
flyctl は apt では配布されていません。Fly.io 公式が提供するインストールスクリプトを curl で実行します。

flyctl was installed successfully to /root/.fly/bin/flyctl
Manually add the directory to your ~/.bashrc:
export FLYCTL_INSTALL=”$HOME/.fly”
export PATH=”$FLYCTL_INSTALL/bin:$PATH”
スクリプトが終わったら、PATH を通します。
$ echo ‘export PATH=”$FLYCTL_INSTALL/bin:$PATH”‘ >> ~/.bashrc
$ source ~/.bashrc
$ flyctl version
flyctl v0.4.59 linux/amd64 Commit: d10482182142f259db338dcef34556a67702290c BuildDate: 2026-06-09T16:02:41Z
2026年6月時点では flyctl v0.4.59 が最新版です。インストールスクリプトは常に最新版を取得するので、実行タイミングによってバージョンが変わる場合があります。
flyctl で使える主要コマンドを一覧にしました。

手順3:Fly.io にログインする
flyctl auth login を実行すると、ブラウザが開いてログインページに遷移します。
Opening https://fly.io/app/auth/cli/xxxxxxxxxx …
Waiting for session…
successfully logged in as user@example.com
ブラウザが開かないサーバー環境(VPS など)では、代わりに flyctl auth login --interactive でメール+ワンタイムパスワードによる認証ができます。

手順4:アプリを作成してデプロイする
①アプリディレクトリを作る
まず Dockerfile を置くディレクトリを作ります。ここでは Python の簡単な HTTP サーバーを例にします。
$ cat > Dockerfile <<‘EOF’
FROM ubuntu:24.04
RUN apt-get update && apt-get install -y python3 && rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY . .
EXPOSE 8080
CMD [“python3”, “-m”, “http.server”, “8080”]
EOF
②flyctl launch でアプリを初期設定する
flyctl launch を実行すると、対話式でアプリ名・リージョンなどを設定できます。
Detected a Dockerfile
? App Name (leave blank to use an auto-generated name): my-ubuntu-app
? Select regions: Tokyo, Japan (nrt)
? Would you like to set up a Postgresql database now? No
? Would you like to deploy now? Yes
==> Building image
–> Building image done
==> Pushing image to fly
==> Creating release
–> release v1 created
–> v1 deployed successfully
Visit your newly deployed app at https://my-ubuntu-app.fly.dev/
正直、この「リージョン選択」の画面が一番詰まるポイントでした。最初 iad(バージニア)が自動選択されていて、日本のユーザーには遅かったので nrt(東京)に変えています。後から変えることもできますが、最初から設定しておくのが楽です。
③変更後の再デプロイ
コードを修正したら flyctl deploy で再デプロイします。
==> Building image
–> Building image done
==> Pushing image to fly
==> Monitoring deployment
1 desired, 1 placed, 1 healthy, 0 unhealthy [health checks: 1 total, 1 passing]
–> v2 deployed successfully
fly.toml の設定を理解する
flyctl launch を実行すると、プロジェクトディレクトリに fly.toml が生成されます。

各設定の意味をまとめます。
| キー | 意味 | 推奨設定(日本向け) |
|---|---|---|
app |
アプリ名(URL のサブドメインになる) | プロジェクト名をそのまま |
primary_region |
デプロイするリージョン | nrt(東京) |
internal_port |
コンテナが LISTEN するポート | アプリのポートに合わせる |
auto_stop_machines |
アクセスがないとき自動停止するか | true(無料枠向け) |
min_machines_running |
常時起動するマシン数 | 0(無料枠)か 1(常時稼働) |
memory |
マシンのメモリ量 | "256mb"〜"512mb" |
auto_stop_machines = true + min_machines_running = 0 の組み合わせにすると、アクセスがないときにマシンが停止してコストが抑えられます。ただしコールドスタート(初回アクセス時に起動する数秒の待ち)が発生します。
Fly.io ダッシュボードで確認する
デプロイが完了したら、Fly.io のダッシュボード(dashboard.fly.io)でアプリの状態を確認できます。

ダッシュボードで確認できる主な項目は次の通りです。
- アプリのステータス(running / stopped / unhealthy)
- Machine ごとの起動・停止状態
- リアルタイムログ(
flyctl logsと同じ内容) - デプロイ履歴(バージョンごとのロールバックが可能)
- シークレット(環境変数)の管理
- IP アドレスと証明書の状態
コマンドラインでも同じ操作ができますが、ダッシュボードのほうが全体像を把握しやすいです。特にログは flyctl logs でも見られますが、時系列で俯瞰するにはダッシュボードが便利です。
リージョン選択のポイント
Fly.io は世界30以上のリージョンを持っています。日本からアクセスするなら nrt(東京)一択です。

リージョンは後から変更できます。
Region Pool:
nrt
$ flyctl regions list
Region Pool:
nrt
Backup Region:
hkg
よくあるエラーと解決策
エラー1:「Error: app name already taken」
Fly.io のアプリ名はグローバルでユニークです。他の誰かが同じ名前を使っていると弾かれます。flyctl launch 時に別の名前を指定してください。
対処法
flyctl launch --name my-app-jp-2026 のように、固有な名前をつけると衝突しにくくなります。
エラー2:「Error: We need your payment information」
Fly.io は無料枠があるものの、クレジットカードの登録が必要です。ダッシュボードの Settings → Billing からカードを登録すると解消されます。
エラー3:「health checks: 0 passing」でデプロイ失敗
Fly.io のヘルスチェックが通らないと、デプロイがロールバックされます。原因のほとんどはポート番号の不一致です。fly.toml の internal_port がアプリの LISTEN ポートと一致しているか確認してください。
2026-06-21T12:00:00Z app[xxxxxxxx] nrt [info] Listening on port 8080
$ grep internal_port fly.toml
internal_port = 8080
エラー4:「flyctl: command not found」
PATH が通っていません。source ~/.bashrc を実行するか、新しいターミナルを開いてください。
まとめ
Fly.io on Ubuntu のデプロイ手順をまとめます。
- Ubuntu 24.04 の apt で
docker.io 29.1.3をインストールできます - flyctl は apt ではなく公式の
curl | shスクリプトでインストールします(v0.4.59 / 2026-06-21 実測) flyctl launch→flyctl deployの2ステップで HTTPS 付きデプロイが完了します- 日本向けサービスには
primary_region = "nrt"(東京)を指定してください auto_stop_machines = trueにすると無料枠を活用しやすくなります- ダッシュボード(dashboard.fly.io)でログ・ステータス・証明書をブラウザから確認できます
Fly.io はサーバー管理を省力化したい場面では便利なサービスです。一方で、長期稼働のサーバーや細かい設定が必要なケースは VPS の方が向いていることもあります。どちらを選ぶかは用途次第です。
本格的に VPS を使いたい場合は、https://linuxlab.jp/ubuntu-server-setup/ も参考にしてみてください。



コメント