サーバレスアーキテクチャ

GraphQLサーバーを構築する方法まとめ

データバックエンドサーバーとして注目されている「GraphQL」を構築する方法をまとめました。

GraphQLサーバーが構築できるサービス

共有レンタルサーバー

共有レンタルサーバーでは、PHPとMySQLが使えるレンタルサーバーがほとんどなので、PHPとMySQLを組み合わせれば、フレームワークを使うことでGraphQLサーバーとして使えます。レンタルサーバーは月額料金も安いため、負荷が多くないAPIなどでGraphQLを使うならコスパの良い手段と言えます。

ただし、フレームワークをベースに一から開発することになるので、管理画面から一発でGraphQLサーバーを立ち上げられるサーバーレスサービスなどと比べると開発コストがかかってしまうのがネックです。

共有レンタルサーバー

VPS

VPSは基本的にどんなプログラムもインストール可能で月額料金もリーズナブルなので、GraphQLサーバーを収容するのに最適なサービスです。VPSであれば、Dockerが使えるためprismaなどのGraphQLフレームワークのOSSが使えるのが最大の強みです。

イメージテンプレートで簡単に環境構築ができるVPSですが、GraphQLに関するテンプレートは用意されているサービスを見つけることが出来ませんでした。

簡単に構築したいのであれば、Dockerを使うのがベストでしょう。

サーバーレスサービス

GraphQLサーバーを利用する方法では、ポピュラーな方法がサーバーレスサービスを使う方法です。

GraphQLが使えるサーバーレスサービスとしては、FaunaDBとAWSのAmplifyが定番です。どちらもバックエンドのデータベースはデータストア形式となっているため、普段MySQLなどのSQLデータベースを使っている方には少々違和感があるかもしれませんが、使い勝手の良さなどに定評があります。

FaunaDB

Amplify

GraphQLサーバーはどの方法で構築するのが良い?

GraphQLサーバーを構築方法を比較してみましょう。

方法 最適なサーバー メリット デメリット
フレームワーク レンタルサーバー、VPS カスタマイズが容易
コスパが良い
自由度が高い
サーバー構築にコストがかかる
OSS VPS、クラウド すぐにサーバー構築できる
コスパが良い
自由度が比較的高い
OSSの規約に縛られる
サーバーレス サーバーレス サーバー構築は不要 プラットフォームに依存する
コスパが悪い
自由度が低い

フレームワークでGraphQLサーバーを構築する場合

各言語のGraphQLフレームワークを使うのが一番自由度も高く、柔軟なシステムを組むことが出来ますが、構築にコストがかかるのがネックです。ただし、PHP + MySQLで組めばレンタルサーバーでも運用可能なので、コスパは高めです。

OSSでGraphQLサーバーを構築する場合

自由度とコスパのバランスが良いのはOSSですが、OSSの規約や仕組みに縛られるというデメリットも。とりあえず、使ってみるというのであれば問題ありませんが、本格運用前にはOSSをしっかりと精査する必要があります。

サーバーレスサービスでGraphQLサーバーを構築する場合

サーバーレスサービスを使えば、もっとも構築が容易で安定したGraphQLサーバーを瞬時に組むことが可能です。しかもスケーラブルなサービスがほとんどなので、サーバーの分散処理や負荷監視などからも解放されるため、大規模なサービスほど最終的なコスパはよくなります。

一方で、プラットフォーム依存が極端に高くなってしまうのと、うまく基本的な利用料金が高いのがデメリットです。

用途や規模感で最適な方法を選ぼう

GraphQLに限りませんが、用途や規模感によってどの方法を選ぶかは変わってくるので、できれば全ての方法を試して、用途にあった方法・環境を選ぶようにしましょう。

GraphQLサーバーはここ数年で急激に注目されたバックエンドの仕組みなので、ノウハウが少ないのが現状です。しかし、アプリとWebでAPIを共通化したり、WebをSPAなどのリッチなサービスにしたりと、GraphQLが採用させるようなシーンは増えてきているため、今後さらに使いやすいサービスなどが出てくる可能性がある注目のジャンルでもあります。


価格は記載がある場合を除き、すべて税抜きです。

この記事の関連キーワード

サーバレスアーキテクチャの記事