Chapter 23

Gigalixirへのデプロイ

koga1020
koga1020
2021.11.23に更新

Gigalixirへのデプロイ

必要なもの

このガイドに必要なのは、動作するPhoenixアプリケーションだけです。デプロイ用の簡単なアプリケーションが必要な方は、起動ガイドにしたがってください。

ゴール

このガイドの主な目的は、Gigalixir上でPhoenixアプリケーションを実行することです。

手順

現在地を確認できるように、手順をいくつかのステップに分けておきます。

  • Gitリポジトリの初期化
  • Gigalixir CLIのインストール
  • Gigalixirのサインアップ
  • Gigalixirアプリの作成とセットアップ
  • データベースの用意
  • プロジェクトをGigalixirに対応させる
  • デプロイ!
  • 便利なGigalixirコマンド

Gitリポジトリの初期化

Gitリポジトリの初期化がまだなら、ファイルをgitにコミットする必要があります。プロジェクトディレクトリにて下記のコマンドを実行するとGitリポジトリの初期化ができます:

$ git init
$ git add .
$ git commit -m "Initial commit"

Gigalixir CLIのインストール

こちらの説明にしたがって、お使いの環境にあうCLI(コマンドラインインターフェイス)をインストールしてください。

Gigalixirのサインアップ

gigalixir.comもしくはCLIでアカウントのサインアップができます。CLIを使って進めましょう。

$ gigalixir signup

Gigalixirのフリープランはクレジットカードは必要ではなく、無料で1つのアプリインスタンスと1つのPostgreSQLデータベースを使うことができます。しかし、本番運用するつもりなら有料プランにアップグレードすることを検討してください。

次にログインしてみましょう。

$ gigalixir login

そして確かめてみましょう。

$ gigalixir account

Gigalixirアプリの作成とセットアップ

GigalixirでPhoenixアプリをデプロイする方法は3つあります: ひとつはmix、もう1つはElixir releases、3つ目はDistilleryです。このガイドでは、mixを使うことにします。なぜなら一番簡単に起動できて稼働できるからです。しかしリモートオブザーバーを接続したりホットアップグレードはできません。もっと詳しい情報はMix、Distillery、Elixir Releasesの比較を参照してください。他の方法でデプロイしたいなら、スタートガイドにしたがってください。

Gigalixirアプリの作成

Gigalixirアプリを作ってみましょう。

$ gigalixir create

作られたことを確かめてみましょう。

$ gigalixir apps

git remoteが作られたことを確かめてみましょう。

$ git remote -v

バージョン指定

Elixir、Erlang、Node.jsのバージョンがデフォルトで使えるビルドパックではかなり古いので、開発に使ったバージョンと本番のバージョンをそろえておくことはよい考えです。それではこれをやっておきましょう。

$ echo "elixir_version=1.10.3" > elixir_buildpack.config
$ echo "erlang_version=22.3" >> elixir_buildpack.config
$ echo "node_version=12.16.3" > phoenix_static_buildpack.config

コミットすることを忘れないでください。

$ git add elixir_buildpack.config phoenix_static_buildpack.config
$ git commit -m "set elixir, erlang, and node version"

プロジェクトをGigalixirに対応させる

Gigalixirでアプリを稼働させるために必要な作業はこれですべてですが、本番環境ではSSLを強制したいかもしれません。そのためには強制SSL化を参照してくだい。

またデータベース接続でSSLを使いたいかもしれません。その場合は、Repo コンフィグの中で ssl: true のコメントアウトを外してください。

データベースの用意

アプリのためにデータベースを用意しましょう。

$ gigalixir pg:create --free

データベースが作られたことを確かめておきましょう。

$ gigalixir pg

DATABASE_URLPOOL_SIZE が作られたことを確かめておきましょう。

$ gigalixir config

デプロイ!

プロジェクトをGigalixirへデプロイする準備は整いました。
お待ちかねのデプロイをやってみましょう!

$ git push gigalixir master

デプロイのステータスをチェックして、アプリが Healthy になるまで待ちましょう。

$ gigalixir ps

マイグレーションを実行しましょう。

$ gigalixir run mix ecto.migrate

アプリのログをチェックしてみましょう。

$ gigalixir logs

すべてが正しそうであれば、Gigalixirで稼働しているアプリをみてみましょう。

$ gigalixir open

便利なGigalixirコマンド

リモートコンソールを開きます。

$ gigalixir account:ssh_keys:add "$(cat ~/.ssh/id_rsa.pub)"
$ gigalixir ps:remote_console

リモートオブザーバーを開くには、リモートオブザーバーを参照してください。

クラスターリングをセットアップしたいなら、クラスターリングノードを参照してください。

ホットアップグレードのためには、ホットアップグレードを参照してください。

カスタムドメインをつけたいですとか、スケーリング、ジョブ、その他の機能については、Gigalixirドキュメントを参照してください。

トラブルシューティング

トラブルシューティングを参照してください。

また、help@gigalixir.comへEメールを送ることや、Slack招待リンクから#gigalixirチャネルに参加することをためらわないでください。