安価かつスケーラブルなサーバレスバックエンドプラットフォーム ~KoyebとNeonのススメ~

KoyebNeonの紹介記事です。
最新のサーバレスプラットフォームを利用して、スケーラブルなインフラを手軽に、そして安価に構築することができます。

Koyebって何?

Koyebとは、WebアプリケーションやAPIのデプロイに対応したサーバレスプラットフォームです。
開発者に寄り添ったサーバレスプラットフォームと銘打たれている通り、デプロイに伴う煩雑な作業が極限まで削ぎ落とされています。

Koyebのいいところ

無料でデプロイができる

Herokuの無料プランが廃止されて久しいですが、Koyebでは1サービスまでのデプロイが無料でできます。

GitHubとの連携が容易

Koyebでは、デプロイの方法が3種類用意されています。
  • GitHub連携し、Koyeb上のランタイムで実行する
  • GitHub連携し、リポジトリ中のDockerfileを実行する
  • Docker HubなどのレジストリからDockerイメージをpullして実行する
GitHubと連携してデプロイする場合、数回のボタン操作のみでリポジトリと連携することができます。
  • GitHubによるデプロイを選択
  • GitHub Appをインストールする
  • 連携先のOrganizationを選択する
これだけでGitHubとの連携ができてしまいます。
さらに、デフォルトで自動デプロイが設定されており、yamlファイルを書いてCI/CDを設定することなく自動デプロイを実現できます。

ドキュメントが充実している

KoyebはコントロールパネルのUIが直感的で分かりやすいです。
何についての設定が求められていて、どのような選択肢があるのか、パッとみただけで見当がつくのでは無いでしょうか。
その上、ドキュメントが非常に充実しています。
言語・フレームワークごとのデプロイ方法や、先に紹介した3種類のデプロイ方法ごとに必要な操作が事細かに記載されています。
手元にアプリケーションがなくても、あるいは言語の知識がなくても、サンプルコードを写本して書いてあるコマンドを実行するだけでデプロイができるようになっています。
また、Koyebのドキュメントには、随所にこのようなボタンが設置されています。
このボタンを押すと、デプロイの設定画面に遷移します。そして左下のdeployボタンを押すとデプロイができます。
なんとドキュメントから2クリックでデプロイができるのです。ここでデプロイされるのはKoyebの公式リポジトリですが、Koyebによるデプロイの勘所を掴むには十分な体験です。

詳細なインスタンス設定

Tokyo Regionを利用することができます。また、インスタンスサイズを指定することもできます。
さらに、waitlistに登録することでオートスケールを利用することもできます。

Neonって何?

Neonは、Rust製のサーバレスPostgresプラットフォームです。
Koyebとは異なり、現時点ではTokyo Regionに対応していません。弊社ではSingapore Regionを利用しています。今後のTokyo Region対応に期待です。

Neonのいいところ

無料枠を利用できる

1プロジェクト、10ブランチ(後述)までを無料で利用することができます。

ブランチングを利用できる

ブランチングによって、本番環境を容易に複製することができます。
ブランチングというとGitのような運用を想像するかもしれませんが、そうでありません。
Gitのmergeに対応する操作はなく、データベースを複製する(ブランチを切る)ことで本番環境や他の開発者と一切干渉することなくデータベースを利用することができます。
NeonのブランチはVercelとの連携が可能であり、フロントエンドの開発で作成したGitブランチに対応するNeonブランチを自動で生成することができます。

オートスケールに対応している

サーバレスPostgresなので、オートスケールに対応しています。
あらかじめ設定した範囲内で、アクセス数に応じて自動でスケールアップされるようになっています。

オートサスペンドを設定できる

オートサスペンドを設定して、アクセスがない時間帯にインスタンスの起動数を0にすることができます。
Neonは従量課金制なので、利用頻度に応じてコストを抑えることができます。
個人用のちょっとしたサービスや、プロトタイプを作るときに嬉しい機能ですね。

まとめ

KoyebとNeonの紹介をしました。サーバレスバックエンドのプラットフォームが安価に利用できるようになっています。
どちらのサービスも無料で使い始めることができるので、一度触ってみてはいかがでしょうか。