GraphQLサーバーを構築する方法まとめ
公開日: 2021.2.16
データバックエンドサーバーとして注目されている「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データベースを使っている方には少々違和感があるかもしれませんが、使い勝手の良さなどに定評があります。
GraphQLサーバーはどの方法で構築するのが良い?
GraphQLサーバーを構築方法を比較してみましょう。
方法 | 最適なサーバー | メリット | デメリット |
---|---|---|---|
フレームワーク | レンタルサーバー、VPS | カスタマイズが容易 コスパが良い 自由度が高い | サーバー構築にコストがかかる |
OSS | VPS、クラウド | すぐにサーバー構築できる コスパが良い 自由度が比較的高い | OSSの規約に縛られる |
サーバーレス | サーバーレス | サーバー構築は不要 | プラットフォームに依存する コスパが悪い 自由度が低い |
フレームワークでGraphQLサーバーを構築する場合
各言語のGraphQLフレームワークを使うのが一番自由度も高く、柔軟なシステムを組むことが出来ますが、構築にコストがかかるのがネックです。ただし、PHP + MySQLで組めばレンタルサーバーでも運用可能なので、コスパは高めです。
OSSでGraphQLサーバーを構築する場合
自由度とコスパのバランスが良いのはOSSですが、OSSの規約や仕組みに縛られるというデメリットも。とりあえず、使ってみるというのであれば問題ありませんが、本格運用前にはOSSをしっかりと精査する必要があります。
サーバーレスサービスでGraphQLサーバーを構築する場合
サーバーレスサービスを使えば、もっとも構築が容易で安定したGraphQLサーバーを瞬時に組むことが可能です。しかもスケーラブルなサービスがほとんどなので、サーバーの分散処理や負荷監視などからも解放されるため、大規模なサービスほど最終的なコスパはよくなります。
一方で、プラットフォーム依存が極端に高くなってしまうのと、うまく基本的な利用料金が高いのがデメリットです。
用途や規模感で最適な方法を選ぼう
GraphQLに限りませんが、用途や規模感によってどの方法を選ぶかは変わってくるので、できれば全ての方法を試して、用途にあった方法・環境を選ぶようにしましょう。
GraphQLサーバーはここ数年で急激に注目されたバックエンドの仕組みなので、ノウハウが少ないのが現状です。しかし、アプリとWebでAPIを共通化したり、WebをSPAなどのリッチなサービスにしたりと、GraphQLが採用させるようなシーンは増えてきているため、今後さらに使いやすいサービスなどが出てくる可能性がある注目のジャンルでもあります。
価格は記載がある場合を除き、すべて税込みです。
関連キーワード
サーバレスの新着記事
- サーバレスCloudflare R2の料金体系・無料枠まとめ 2024.8.21
- サーバレスCloudflare R2をCyberduckで使う方法 2024.7.31
- サーバレスAIの学習ボット・クローラーからサイトを守るメリットとブロックする方法 2024.7.19
- サーバレスCloudFlare Pagesのビルド環境の違い 2024.5.9
- サーバレスCloudflare D1の料金体系・無料枠まとめ 2024.3.25
- サーバレスCloudflare PagesでNuxt3のビルド時に「ENOENT: no such file or directory」エラーの対象方法 2024.3.21
- サーバレスGitlab CLIでpush時に「glab auth not found」となった際の対処方法 2024.3.19
- サーバレスCloudFlare Workers AIの料金体系・無料枠まとめ 2024.2.2