Fly.ioに個人アプリをデプロイしました。色々記事を見比べながらやったので、次回のために流れをメモしようと思います。
デプロイするアプリは作成済みであることを前提とします。
デプロイの流れ
flyctlをインストール
Fly.ioが提供しているCLI(flyctl)で行うためインストールします。
% brew install flyctl
サインアップ
初めて使う時は、アカウントの登録が必要です。コマンドを実行するとブラウザが立ち上がり、会員登録画面が表示されます。メールアドレスか外部認証を使って登録します。
% flyctl auth signup
ログイン
アカウントの登録ができたら、ログインをします。コマンドを実行するだけで大丈夫です。
% flyctl auth login
RailsとPostgreSQLサーバーの起動
fly launch
コマンドを実行すると、質問文が表示されます。対話形式で答えて、設定していきます。
% fly launch
...
# アプリケーションの名前を指定
? Choose an app name (leave blank to generate one): rails-flyio-sample
...
# 東京リージョンを指定
? Choose a region for deployment: [Use arrows to move, type to filter]
> Tokyo, Japan (nrt)
...
# PostgreSQLを作成する
? Would you like to set up a Postgresql database now? (y/N) y
...
# Postgresqlは最低スペックで立ち上げる
? Select configuration: [Use arrows to move, type to filter]
> Development - Single node, 1x shared CPU, 256MB RAM, 1GB disk
私の場合、初回のfly launch
では上記のように対話形式で設定をしていきましたが、2回目のfly launch
では、以下のような形に変わりました。(ログをメモしてなかったので少し違いますが、大体このようなログです)
% fly launch
Scanning source code
Detected a Rails app
Using the following build configuration:
Builder: paketobuildpacks/builder:base
Creating app in /Users/chris/FlyTests/hello-gunicorn-flask
We're about to launch your Rails app on Fly.io. Here's what you're getting:
Organization: MyOrg (fly launch defaults to the personal org)
Name: hello-gunicorn-flask (derived from your directory name)
Region: Secaucus, NJ (US) (this is the fastest region for you)
App Machines: shared-cpu-1x, 1GB RAM (most apps need about 1GB of RAM)
Postgres: <none> (not requested)
Redis: <none> (not requested)
? Do you want to tweak these settings before proceeding? (y/N)
この場合は、yを選べばブラウザが立ち上がり、設定画面が表示されるので、そこで設定できます。
? Do you want to tweak these settings before proceeding? (y/N)
注意点
スペックは、ポートフォリオレベルのアプリだと、最低スペックの256MBではメモリ不足になる可能性が高いです。最低でも、512MBを選択した方が良いと思いました。私は、256MBでメモリ不足になったので結局512MBに上げざるを得なかったです。その際の設定に苦労したので最初から設定しておいた方が良かったなと思いました。
デプロイする
以下のコマンドでデプロイします。
% fly deploy
以下のコマンドで、ブラウザが立ち上がるので、デプロイしたアプリケーションにアクセスできたら成功です!
% fly open
参考文献
https://zenn.dev/hokawa/articles/65ddcd9974448c
https://fly.io/docs/rails/getting-started/
https://qiita.com/yuuki-h/items/ec23de152368d36672ea