突然ですが、「サーバー」という語句が付いた単語を思いつく順に挙げてみましょう。
- Webサーバー
- データベースサーバー
- メディアサーバー
- メールサーバー
- Minecraftサーバー
ここに挙げたWebサーバーなどを構築するためには、Linuxに必要なアプリケーションをインストールします。
では、早速インストールを始めましょう!
と言いたいところですが、そもそもLinuxをインストールする際に使うLinuxディストリビューションには、多くの選択肢があります。
さらに、そこにインストールするアプリケーションにも多くの選択肢があります。
このように、サーバーを構築して何かをするまでには、多くのことを決定しなければいけません。
そこで今回は、Linuxでサーバーを構築するときに決定しなければいけないことを、整理してお伝えします。
サーバーで提供するサービスを決定する
まずは、Linuxでサーバーを構築して、どのようなサービスを提供するかを決定しましょう。
サービスを思いつくままに挙げてみましょう
提供するサービス | サーバーの種類 |
---|---|
ユーザーがブラウザでアクセスしておみくじを引けるサービスのように、ブラウザで利用するサービスを提供する | Webサーバー |
様々な写真や文章を格納して、プログラムに提供する | データベースサーバー |
ブログ記事を提供する | Webサーバー+データベースサーバー |
視聴者に音楽や動画などを提供する | メディアサーバー |
ユーザーにメールアドレスを提供する | メールサーバー |
Minecraftのマルチプレイ環境を提供する | Minecraftサーバー |
このようなイメージで、提供するサービスを決定します。
また、提供するサービスの内容に合わせて、サーバーの種類も決定します。
サービスを提供する範囲と場所を決定する
次に、誰に向けてサービスを提供するかと、サービスを提供する場所を決定しましょう。
大きく分けて、以下の4つの中から1つを選択します。
- 家族や友だちに向けに、インターネットでサービスを提供する
- 家族や友だちに向けて、自宅でサービスを提供する
- 不特定多数の人に向けて、インターネットでサービスを提供する
- 不特定多数の人に向けて、自宅でサービスを提供する
家族や友だちに向けてサービスを提供するなら、そこまでセキュリティを心配する必要はなさそうです。
他方、不特定多数の人に向けてサービスを提供すると、セキュリティを心配する必要があるでしょう。
インターネットでサービスを提供すると、運用コストは低くなります。
一方、自宅でサービスを提供すると、コンピュータを用意したり電気代がかかったりするため、運用コストが高くなります。
インターネットでサービスを提供する場合
インターネットでサービスを提供する場合は、以下の4つのサービス形態の中から、利用するサービスを1つ決定します。
サービスの概要 | サービス形態 | サービス例 |
---|---|---|
インストール操作が必要なく、ユーザー登録するだけで使えるサービス | SaaS(Software as a Service) | Gmail、Dropbox |
主要なデータベースやプログラムを含む実行環境を借りるサービス | PaaS(Platform as a Service) | Heroku、レンタルサーバー、AWS Elastic Beanstalk |
インターネット上に公開された仮想コンピュータを借りるサービス。ネットワークを構築できることもある | IaaS(Infrastructure as a Service/クラウド) | Amazon EC2、さくらのクラウド |
インターネットに接続された仮想コンピュータを借りるサービス | VPS(Virtual Private Server) | さくらのVPS、お名前.com VPS |
※SaaSを選択した場合は、Linuxにサーバーを構築する必要がありません。
PaaSの代表的なサービスであるHerokuについては、侍エンジニアブログの記事でも紹介していますので、あわせてご覧ください。
自宅でサービスを提供する場合
自宅でサービスを提供する場合は、古いPCやスティックPCなどにLinuxをインストールして、自宅サーバーを構築することになります。
Linuxディストリビューションを決定する
サービス形態(PaaS、IaaS、VPS、自宅サーバー)を決定したら、コンピュータにインストールするLinuxディストリビューションを決定します。
Linuxディストリビューションについては、以下の記事が詳しいので、ぜひご覧ください。
PaaSの場合
Linuxディストリビューションは選択できませんので、次に進みます。
IaaSまたはVPSの場合
数あるLinuxディストリビューションの中から、CentOSをインストールしましょう。
以下のサイトでもサーバー用途ではCentOSを推しています。
参考:https://fossbytes.com/best-linux-distros-choosing-guide/
Linuxディストリビューションの中には、以下の記事で紹介しているように、初心者向けにデスクトップ環境(GUI)を使って操作できるモノもあります。
しかし、IaaSもVPSも、インターネットに接続された仮想コンピュータを借りる方式のため、GUIを使わずにコマンドだけで操作するCentOSのほうが適しています。
自宅サーバーの場合
自宅サーバーの場合は少し状況が違います。
自宅サーバーにはディスプレイやキーボード、マウスを接続して直接操作できるため、上の記事で紹介されている初心者向けのLinuxディストリビューションである、Linux MintやUbuntuをインストールしてもサーバーを構築できます。
ただし、Webサーバーアプリケーション(Apache、Nginx)などをインストールする操作は、コマンドだけで説明されていることが多いため、マウスを使って設定できるケースはあまり多くありません。
インストールするアプリケーションを決定する
サーバーを構築するためにインストールするアプリケーションを決定します。
たとえば、Webサーバーを構築する場合は、ApacheやNginxといったアプリケーションをインストールする必要があります。
サーバーの種類 | インストールするアプリケーション |
---|---|
Webサーバー | Apache、Nginx |
データベースサーバー | MySQL、PostgreSQL |
ブログサーバー | Webサーバー、データベースサーバー、WordPress |
メディアサーバー | ReadyMedia、MediaTomb |
メールサーバー | Postfix、Sendmail |
Minecraftサーバー | Minecraft Server |
プログラミング言語を決定する
プログラミング言語を使用してサービス(Webアプリ)を開発する場合は、どの言語を使うか決定します。
プログラミング言語を選択する前に、以下の記事をご覧いただき、概要から理解することをおすすめします!
概要をつかんだら、プログラム言語(RubyやPHP、Python、Javaなど)を選択し、Webフレームワークを使用してサービスを開発するのが簡単です。
各言語の有名なWebフレームワークを取り上げた記事がありますので、あわせてご覧ください!
なお、サービス形態によっては、下表のように特定のプログラミング言語を使わなければいけない場合がありますので注意してください。
サービス形態 | 説明 |
---|---|
PaaS | PaaSが対応するプログラミング言語の中から選択します。 |
IaaS、VPS、自宅サーバー | 動作環境をインストールすればよいので、自由にプログラミング言語を選択できます。 |
その他
その他、Linuxでサーバーを構築するときに気をつけることも紹介しておきます。
セキュリティ
どんな場合でもサービスを提供する限りはセキュリティについて、よくよく検討する必要があります。
IaaSやVPS、自宅サーバーのように、Linuxディストリビューションをインストールする場合は、特に気をつけてください。
セキュリティに関しては、非常に範囲が広く難しい内容になりますので、他の資料をあたってください。
まず初めに読むべき資料は、以下のサイトからダウンロードできる「Linuxセキュリティ標準教科書」(2013/9/30発行)です。
参考:http://www.lpi.or.jp/linuxtext/security.shtml
PDFやEPUB形式でダウンロードできますし、Kindle版や製本されたモノも購入できます。
セキュリティをないがしろにしていると、手痛いしっぺ返しがくるのは間違いありませんから、必ず目を通しましょう。
サービスの開始までの操作
ここまでは、何をするかを決定しただけでした。
ここからは、実際にLinuxディストリビューションをインストールしたり、アプリケーションをインストールしたり、あなたが提供したいサービスを開発したりします。
この記事では、規模が大きくなりすぎてしまうので、概要だけをサラリと紹介しますね。
PaaS(Herokuやレンタルサーバーなど)の場合
PaaSが提供している説明に従って操作します。
一般的な操作では、PaaSに、あなたが提供したいサービスを動作させる環境(プラットフォーム)をインストールします。
そして、あなたが提供したいサービスを開発し、PaaSにインストール(アップロード)して、起動(デプロイ)することになるでしょう。
IaaS、VPS、自宅サーバーの場合
こちらの場合は、PaaSよりも作業が必要です。
コンピューターにLinuxディストリビューションをインストールし、必要なサーバーアプリケーション(ApacheやNginxなど)をインストールします。
そして、あなたが提供したいサービスを開発し、そのサービスをIaaS、VPS、自宅サーバーにインストールすることになります。
まとめ
相当な駆け足でしたが、Linuxでサーバーを構築するときに決定することとして、以下の4つを紹介しました。
- サーバーで提供するサービスを決定する
- サービスを提供する範囲と場所を決定する
- Linuxディストリビューションを決定する
- プログラミング言語を決定する
これらをすべて決定したら、ようやくサービスを開発し、Linuxサーバーにインストールするという手順になることも説明しました。
この記事では、サービスの提供を始めるまでのすべては説明できませんでしたが、流れは伝えられました。
何度読んでもピンと来なかいと諦めずに、とりあえずで構わないので(費用がかからないように注意しながら)1つずつ決定して、作業を進めてみてください。
諦めなければ、どこかで突然すべてが繋がって理解できるようになります!
頑張ってください!