【Rails入門説明書】サーバーについて解説
はじめに
Railsアプリケーションを作ったら、当然ですが公開して実際に運用したいものだと思います。
しかし、開発中はローカルPCで進めていた場合、実際に公開するためのサーバーへ展開(デプロイ)するためにどうすれば良いのか、わからない人も少なくありません。
今回は、そんなサーバーについて、種類やメリットデメリットを説明しておきます。
おすすめのサーバーや導入方法も紹介しますので、ぜひ参考にしてください。
未経験でも確実にプログラミングスキルを身につけられる!
【DMM WEBCAMP】では、専属コーチが卒業まで伴走します!
✔短期間で効率的にプログラミングスキルを身につけたい
✔プログラミングを独学で進めていくのが不安
✔家での時間を有効に使ってスキルアップがしたい
といった方におすすめです!
\実践的なスキルが身に付くカリキュラム/
Ruby on Railsを動かすための環境
Ruby on Railsのアプリケーションを動かすためには、そのための環境が必要です。
PCで開発中、動作確認するために「rails s」コマンドでサーバーを起動したと思います。
じつは、このサーバーは仮想的にPC上に作られたお試し用のサーバーで、当然ですが、処理速度や様々な文政ツールなどが省略されたものです。もちろん、外部に公開することもできません。
そこで、実際に運用する場合には、別途サーバーを立ち上げて、Railsアプリケーションを組み込まなければいけないわけです。
このとき、ローカルPCとはマシンスペックが変わりますし、Railsのバージョンも違ってしまうこともあります。
そのため、Railsを開発するとき、実運用する環境について知ったうえで進めなければ、思わぬ手戻りが発生してしまうことにことがあるのです。
“未経験”でもたった1ヶ月で営業からエンジニアとして転職!『WebCamp』受講者インタビュー
サーバーの種類
一口にサーバーと言っても、いくつかの種類があります。
ハードウェア的に独立したものと、ソフトウェアで実現しているもの、自分ですべて管理するものと、必要な部分だけ管理するものなど、様々なニーズに合わせたものがあります。
また、サーバーと言ってもコンピュータに変わりありませんので、自宅で運用する(「サーバーを立てる」と言います)ことも可能です。その場合は、完全にすべてを自分で管理することになるでしょう。
自宅サーバーの運用には幅広い知識が必要ですので、Railsアプリケーションを公開するためだけにゼロから始めるには学習コストがかかります。(ただ、Railsプログラマーにとって、サーバーの知識は、非常に強力な武器になりますので、概要でも知っているほうが良いでしょう)
そのため、ここでは、レンタルすることができるサーバーについて、VPSとIaaS、PaaSについて、紹介していきます。(なお、VPSは昔ながらのレンタルサーバーの一形態、IaaSとPaaSは、昨今よく聞くことの多いクラウドサービスの一種です)
VPS
VPS(Virtual Private Server)は、物理的なサーバー上に仮想サーバーを立ち上げ、それをユーザーにレンタルするサービスです。
仮想的なものと言っても、1台のサーバーをまるまる借りることができるため、自宅サーバー同様、Railsを含むソフトウェアを自由にインストールできるのが特徴です。
多くの場合、定額制の料金設定になっており、予定以上のコストがかかることがありません。
また、サーバーをダウンさせるようなことが起きても、基本的には自分以外には迷惑をかけませんので、学習用途としては優れていると言えるでしょう。
デメリット
1台のサーバーですので、各種設定などをすべて自分で行わなければいけませんので、自宅サーバーを立てるのと同様に知識が必要になってきます。
仮に実運用を行った場合などは、サーバーがダウンした場合の対策なども自分で対応しておかなければなりませんし、セキュリティ対策も含めて、実際のサーバー運用をすべて行う必要があります。
自宅サーバーとの大きな違いは、初期投資とハードウェア的なトラブルに対応する必要がない点のみと言っても良いかもしれませんので、初心者が活用するには敷居が高いでしょう。
最大のメリット
VPSのメリットは何と言っても、その自由度です。サーバーの管理者になりますので、なんでも好きなことが可能ですので、自分の好みのサービスを構築することができるでしょう。また、定額制でコストの試算が容易な点も、他のサービスに比べると大きな利点でしょう。
IaaS
IaaS(Infrastructure as a Service)も、VPS同様、仮想的なサーバーを借りることができるサービスですが、(仮想的な)ハードウェア構成やOS、ネットワークリソースなどを自由に構成できるものです。
そのため、自分のサービスの規模に合わせたスペックのサーバーを借りるだけでなく、稼働状況に合わせてスペックを増減させることもできますので、効率よい運用ができるでしょう。
デメリット
VPS同様、サーバーをまるまる借りることになりますので、設定やソフトのインストールなどをすべて行う必要があります。また、ハードウェア構成も詳細まで自分で検討しますので、VPS以上に知識が必要と言えます。
また、ハードウェア構成に合わせた従量課金になっていることがほとんどですので、予想以上のスペックの設定をしてしまうことで、コストがかさんでしまうことも少なくありません。
最大のメリット
VPS同様、自由度が大きなメリットですが、ハードウェア構成を動的に変更できる点は、Webサービスを運用するうえで大きなメリットでしょう。Webサービスを実運用するうえで、「どの程度のアクセスを見込むか」というのは大きな課題です。大きく見込みすぎて無駄なコストをかけたり、小さく見積もりすぎてサービス品質に問題が出たりなど、どのサービスも苦労している部分です。
IaaSを使えば、その点を柔軟に変更できますので、サービス品質とコストのバランスをとることが容易になっています。
PaaS
PaaS(Platform as a Service)その名の通り、特定のプラットフォーム(アプリケーションの実行環境など)を切り出して貸し出すサービスです。
PaaSを使えば、利用者は煩わしいサーバーのセットアップや管理から解放され、Railsアプリケーションの公開など、やりたいことに集中することができます。
デメリット
自分でWebサーバーの構築などを行う必要がない利点は、反面「自分の望む環境を構築できない」ということであり、PaaSの環境に合わせた開発が必要になってきます。
また、規模の大きな商用サービスを運用しようとすると、比較的コストがかかってしまうことが多く、機能的な制限でサービス内容に影響が出てくる場合もあります。
最大のメリット
サーバーの管理や環境の構築の労力が最低限で済むという点が、もっとも大っきなメリットでしょう。特に学習段階の人の場合は、プログラム言語を憶える前の段階の環境構築は、非常に大きなハードルになります。PaaSであれば、その懸念がほとんどありませんので、学習者にやさしいサービスと言えるかもしれません。
https://web-camp.io/magazine/archives/12654
「"プログラマー"という職種に興味はあるけど、何から始めていいかわからない…」 そんな悩みを持つ方も、【DMM WEBCAMP】でなら徹底サポートで確実にプログラミングスキルを身につけることができます! ✔受講生の97%が未経験者! \未経験からプログラマーを目指す方は必見!/
✔一人一人に合わせた学習計画で進められるため、仕事や学校と両立できる!
✔未経験者のために開発された独自のカリキュラムを用意!
おすすめのレンタルサーバー
ここまでで、Railsアプリケーションを公開するのに適したサーバーについて紹介しました。
では、実際にどんなレンタルサーバーがあるのか、代表的なサービスを具体的に紹介しましょう。
VPS
仮想サーバーを借りるVPSは自分ですべての設定などを行う必要がある分、低コストで自由度が高いのが特徴です。その中でも、比較的人気のあるサービスを紹介しましょう。
さくらVPS
コストパフォーマンスに優れ、ある程度の知名度があるサービスは「さくらVPS」です。なにより、国内のサービスですので、マニュアルやサポートが日本語なのも、安心感があります。
コストも月額1,000円程度からありますので、チャレンジしてみるのも悪くありません。
同企業の運営しているさくらレンタルサーバーは、サーバー領域だけレンタルして管理者権限などが付与されませんので、間違えないようにしてください。(WebサイトやWordpress向け)
GMOクラウドVPS
長期解約をする場合は、さくらVPSよりもコストパフォーマンスの良いGMOクラウドVPSを検討しても良いでしょう。さくらVPS同様、日本語でのマニュアルやサポートもあります。
ただし、歴史が浅いこともあってさくらVPSの持っているようなノウハウが乏しく、ネット上では厳しい評価も散見されています。これから改善されていくものですので、サービスが続けばさくらVPSを脅かす存在になるでしょう。
IaaS
仮想的なハードウェアの組み合わせを選べる自由度の高いレンタルサーバーであるため、IaaSを提供する企業には、それなりの技術力と資本が要求されます。そのため、一般的には有名どころのサービスを使うことが多くなるでしょう。
AWS(Amazon Web Services)
IaaSの世界では圧倒的な人気を誇るのが、AWSです。IaaSを知らなくても、クラウドサービスとしてのAWSを聞いたことがある人は少なくないでしょう。
Amazonの誇る資本力と技術力を背景に、安定性と高機能を売りにしており、商用利用にも十分耐えるバックボーンを備えています。各種ツールやサービスも豊富で、商用利用を見越したRailsアプリケーション公開であれば間違いがないと言えます。
ただし、コスト面は相応のものになりますので、学習用途としては期間限定(1年間)で無料で使えるマイクロインスタンスなど、制限された環境を利用することになるでしょう。
PaaS
Railsのプラットフォームを提供してくれるPaaSは、残念ながら、日本ではほとんどありません。そのため、海外のサービスを利用することになるでしょう。そのため、どうしても英語の壁が立ちはだかってしまいますが、良い機会ですのでリーディングの勉強も兼ねるのも良いかもしれません。
Heroku
Railsチュートリアルでも紹介されているPaaSです。基本機能だけであれば無料で利用することができ、学習用途にはぴったりと言えるでしょう。ただし、アメリカのサーバーを利用しているため、レスポンスが少し遅くなってしまうのと、マニュアルやサポートが英語ですので、少し敷居が高く感じるかもしれません。
ただし、日本でも人気のあるサービスですの、数多くの参考サイトもあり、お試しでデプロイするなど、独習するには最適な環境と言えます。
OpenShift Online
LINUXデストリビューションでご存知のほうもいるREDHATが展開しているPaaSです。比較的新しいサービスですが、無料で利用できる環境のスペックも高くなっています。ただし、Heroku同様、海外サーバーですので、レスポンスが速くはなく、商用利用するには物足りないかもしれません。
また、日本語での参考情報もそれほど多くはなく、マニュアルはすべて英語で、サポートもコミュニティでの対応になりますので、英語が苦手な人には厳しいかもしれません。
https://web-camp.io/magazine/archives/12481
独自ドメインが必要
どのサービスを利用するにしろ、Railsアプリケーションを公開する場合は、独自ドメイン(自分のHTTPアドレス)を取得しておいたほうが都合が良いでしょう。
もちろん、各レンタルサーバーサービスでドメインを割り当てられますが、原則としてそのサービスのサブドメインとして「サーバーサービス名/サブドメイン」といったものになりますので、商用利用するには適していません。
そのため、ドメインを取得してサーバーに設定しておくことも考えておかなければいけません。なお、ドメインはその取得と維持にお金がかかりますので、そのコストも考慮しておかなければいけません。(1円のものも多いですが、分かりやすいものなどは高額になります)
取得は、「お名前.com」などで簡単にできますし、レンタルサーバーによっては提携して無料になっている場合もありますので、Railsアプリケーションの公開を考えている場合は、レンタルサーバーと一緒に調べておくことをおすすめします。
まとめ
今回は、Railsアプリケーションを公開するためのサーバーについて紹介しました。
VPS、IaaS、PaaSと知識と環境に合わせていくつかの種類がありますが、すべてにおいて言えるのは、Railsプログラムの知識以外の知識(サーバー運用やセキュリティ)の知識が少なからず必要なということです。
Webアプリケーション開発は、インターネット上に公開することが前提のサービスですので、ネットワークの知識があるとないとでは、理解度やサービス品質への取り組み方が大きく違ってきます。
いきなりVPSへ飛び込むのは厳しいかと思いますが、PaaSを使ってサービスの流れを理解し、必要な設定などを把握した後に、ぜひ1度は挑戦してみていただければと思います。
もちろん、広大なWebアプリケーションの世界ですので、一朝一夕で理解できるほどの人はいません。数多くの暗黙の了解やノウハウなど、文字に起こされていない知識も豊富にあるのがこの世界です。
対面学習ができるスクールなど、技術者と話をして、その一端だけでも知ることができる機会があれば、ぜひ活用してください。
・サーバーにはそのレンタル領域によって複数の種類がある
・VPSは共用サーバー上に立ち上げられた仮想サーバーを借りる
・IaaSはサーバー上のハードウェアを自由な組み合わせで借りて、任意のスペックのサーバーを構築できる
・PaaSは、サーバー上に作られたソフトウェア環境(プラットフォーム)を借りることができ、Webサーバーの構築や管理を行う必要がない
・PaaSであれば、Rails以外の知識をあまり要求されないため、Railsの学習用途での利用には適している。ただし、その後の商用利用を考慮すると、割高、かつレスポンスに不安が残る
・本格的な商用利用を考慮しているなら、AWSなどのIaaSが最適
・コスト面を考慮して商用利用するならば、VPSで試してみるのも良い
・独自ドメインを取得しておいたほうが商用利用に移行するときに便利