時代は Heroku じゃなくて fly.io
はじめに
北海道大学の足手まとい、hayama (yamasan)です。
なんとなく記事を書きたくなったので初投稿です。
Heroku の無料版が無くなり、基本有料になったみたいですね。
これは由々しき事態!
自分はデプロイなんてしないから知らないですけどね!
というわけで、時代はもはや Heroku ではない。fly というわけです。
公式チュートリアルから抜粋して、自分用のメモにしたいと思います。
ちなみに、時間はかかりますが超簡単です。
flyctl のインストール
macOS
$ brew install flyctl
あるいは、
$ curl -L https://fly.io/install.sh | sh
fly
は違うやつがインストールされるので、flyctl
になっているか気をつけましょう。
Linux
$ curl -L https://fly.io/install.sh | sh
Windows
天下のWindowsですが、PowerShell で入れます。WSL2使っている人がほとんどだと思うので、その人達は普通にcurl
使ってください。
$ pwsh -Command "iwr https://fly.io/install.ps1 -useb | iex"
Fly クイックツアー
公式チュートリは、"Speed-run"って書いてます。しゃれてますね。
今回はデモアプリとして、https://github.com/fly-app/go-example を fork し、自分のリモートリポジトリからクローンしてみましょう。
私は自分のGitHubアカウント(yamasanaqb)に、"go-example-forked"としてフォークしました。
$ git clone https://github.com/yamasanqb/go-example-forked.git
つぎに、
$ cd go-example
とアプリのルートに移動しましょう。一応動作確認もしておきます。
$ go run go.app
ちなみに、Go アプリを動かすには、
brew install golang
とかが必要です。
こんなアプリが出てきたでしょうか。ロケールを設定していないので、Hello from Flyしか出てこないですね。
まず Fly にログインします。
fly auth login
ログインページに移動しますので、サインアップしてください。ちなみに、無料枠を利用するにはクレジットカードの登録が必須です。
自分はイヤイヤ登録しました。
このデモアプリは DB とかと無縁なので、
fly launch --now
で十分です。
? Choose an app name (leave blank to generate one):
と出てきますが、名前とか必要ないので、空欄にしておきます。
? Choose a region for deployment:
は、Tokyo, Japan (nrt)
を選んでいます。
この後、Docker がなんちゃらとかいって延々と Loading が続きます。仕方ないですね。
完了したら、
fly tokens create deploy -x 999999h
として、トークンを作成、GitHub リポジトリ>Settings>Secrets and variables>Actions と進んで新しいシークレット「FLY_APP_TOKEN」を作成し、コピペしてください。
次に、
アプリのルート/.github/workflows/fly.yml
を作成します。
name: Fly Deploy
on:
push:
branches:
- master
jobs:
deploy:
name: Deploy app
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: superfly/flyctl-actions/setup-flyctl@master
- run: flyctl deploy --remote-only
env:
FLY_API_TOKEN: ${{ secrets.FLY_API_TOKEN }}
としておけばひとまずOKです。
fly launch --now
のときに出てきた URL を入力して、デプロイされているか確認してみましょう。
こんなところですかね。
個人的にはデプロイは Heroku より簡単で楽なんじゃないかと思います。
Heroku ロス勢が Fly に流れてきそうですね。
Fly は今のところめちゃくちゃ太っ腹なので、このままでいてほしいです。
いかがでしたかとは意地でも言いません。
参考
Fly.io の公式ドキュメント
こっちのほうがわかりやすい。ベル15の開発ブログ さん
Heroku から移行する、みたいな趣旨の記事です。無料枠の説明がめちゃくちゃわかりやすい。質問などございましたら、お気軽に私じゃない人に聞いてください。
Discussion