
reactでアプリを公開するにはある程度機能が備わったサーバーかクラウドサービスが必要です。プログラムはできるけどサーバーの知識は全くない人は意外と多いのではないでしょうか。
また、役割が似ているのでサーバーとクラウドサービスの違いがわからない人も多いようです。今回はネットに公開するときに使われるサービスをご紹介します。
reactで作ったアプリはクラウドサービスがおすすめ
reactのアプリをネットに公開するときに最もおすすめなのがクラウドサービスのPaaSです。サーバーの知識がなくてもアプリを公開できるのが理由です。クラウドサービスはレンタルサーバーよりもサポートが豊富なのでおすすめです。
アプリを開発するだけで運用できるので、まずはPaaSを検討してみてください。
サーバーの知識は必要ないのか?
reactでアプリ開発をするだけなら、サーバーの知識は必要ないでしょう。しかし、react+別の言語だと必要なサービスが違ってきます。仕事の場合はレンタルサーバーを利用してアプリを開発しているケースも多いので学習して損することはありません。クラウドサービスとレンタルサーバーは非常に似ているので、深くわからなくてもなんとなくイメージできる程度には勉強しておきましょう。
ネットに公開するには原則サーバーが必要
サーバーとは利用者のリクエストにデータで答えるコンピューターやプログラムのことを指します。検索すると、関連したホームページを表示させたりする仕組みのことです。ユーザーの要望に応えるようにデータやサービスを送るのがサーバーの役割になります。
サーバーを利用することで様々なアプリを提供しているのです。では、サーバーにはどんなものがあるのかみていきましょう。
サーバーにはどのようなものがあるか
サーバーで検索すると必ずヒットするのが物理サーバーです。物理サーバーは現実にある1台のサーバーの役目を担うコンピューターのことを指します。自作も可能ですがほとんどはレンタルで契約して利用します。物理サーバーは契約内容で共有サーバーと専用サーバーの二つに分けられます。使える機能と責任・権限が違うので気をつけてください。
専用サーバーはカスタマイズ性が高いレンタルサーバーです。1台のコンピューターそのものをレンタルするので自由に使えます。OSやアプリをインストールするのも自己責任です。個人のアプリ開発では共有サーバーよりも利用者が多いのが特徴です。
共有サーバーは利用できる範囲が限られるレンタルサーバーです。1台のパソコンを複数人でシェアして利用する契約になります。他の人の使用状況によっては不具合が出るデメリットがあります。企業やグループでアプリ開発をする時に利用されます。
⇒何が違う?法人向けと個人向けでのレンタルサーバーの違いを知ろう!
ちょっと特殊なサーバー
仮想サーバーはアプリ開発では有名です。1台の物理サーバーに複数のOSを使用いて複数のサーバーとして扱う方法です。OSそのものの権限がユーザーにあるので専用のサーバーとほぼ同じ扱いです。サーバーを運用する設定をユーザーがしなければならないので、慣れている人でないと難しいでしょう。
利用する際は、サーバーの基礎知識が必須になります。reactのアプリのほとんどはこの仮想サーバーを利用しています。クラウドサーバーは最近のシステム開発全般に使われます。サーバーそのものの機能が複数台に分散されており、自由にCPUやメモリを設定できます。
専用サーバーと扱いは一緒です。
どんなサーバーがいいのか?
実際には自分の使っている言語が対応しているのか確認する必要があります。ここではサーバーにあげただけで動くデータとサーバー側のサポートが必要なデータに分けて解説します。
どんなサーバーでも問題ないケース
サーバーにアップロードしただけで動くデータは基本的にどんなサーバーでも問題ありません。アップロードするだけならどこのレンタルサーバーも対応しているからです。具体的にはhtml, css, javascript(Node.js以外)が該当します。
有名なところではエックスサーバーやさくらサーバーです。
サーバー側のサポートが必要なもの
サーバーの処理や保守・運用が必要な言語はこちらに当てはまります。具体的にはJava Rubu, Python, PHP, GO, Node.js が有名です。しかし、日本のレンタルサーバーでこの言語に対応しているところは少ないのです。
レンタルサーバーでjavaなどを利用する場合はVPS(仮想専用サーバー)を利用します。OSから設定しなければならないので難易度は高めです。reactのアプリを動かすにはVPSでまずNode.jsをインストールしてネットワーク設定をします。
その後サーバーにデータベースを作りアプリの調節を行います。
レンタルサーバーよりサポートが充実しているもの
レンタルサーバーよりも注目されているのがクラウドサービスです。ほとんどのネットサービスがこの形態になってきています。クラウドとは共有のコンピューティングリソースをどこからでも簡単に、必要に応じて、ネットワーク経由で使用することができるようにしたモデルです。
これは、アメリカの機関米国国立標準技術研究所(NIST)で定義され、The NIST Definition of Cloud Computingという文章で発表されたものです。クラウドサービスは3つにわけられます。
SaaS, PaaS, laaS です。ユーザーが負う責任の量によって分けられています。また、レンタルサーバーも広い意味ではクラウドサービスです。
最もシンプルなクラウドサービスSaaS
SaaS(software as Service)は、ソフトウェアとアプリの機能をサービスとしてネットで利用するモデルです。メール、メッセンジャー、資産管理、監視カメラなどデータの管理ができます。初歩的な機能を備えているクラウドサービスです。
一番おすすめPaaS
PaaS(Platform as a Service)は、アプリ開発に必要な実行環境を備えています。言語のランタイム、データベースをミドルウェアといいます。このミドルウェアを提供するのがPaaSです。データとアプリケーションがユーザー側の権限にあります。
ユーザーはアプリのプログラムコードのみを作れば運用可能です。データ分析、人工知能やlotクラウドサービスの機能をアプリに組み込めるのが特徴です。アプリ公開の基本をサポートすると覚えておけばいいでしょう。
herokuやawslambda が有名です。
難易度高めLaaS
LaaS(lnfrastructure as a Service)は、CPU、メモリ、ストレージ、ネットワークといったコンピュートリソースを提供するモデル。ユーザーは構成を自由に選択して利用できます。この上にアプリを構築するので高度な知識が必要です。
クラウドサービスでは最も専用サーバーに近い仕様です。この中でおすすめなのはPaaSです。プログラムを組むことだけを考えればいいので、初学者はまずPaaSから始めてみましょう。
まとめ
今回は作ったプログラムをネットに公開するときに利用されるサービスを紹介しました。reactでアプリをつくった場合は、始めにいいましたがPaaSがおすすめです。アプリ開発のスキルが上がってもっと機能をつけたいときはLaaSなどを利用しましょう。
サーバーの知識があり、安くしたいなら専用サーバーも考えてみてください。アプリ開発に専念したいなら、レンタルサービスよりクラウドサービスの方がいいかもしれません。