JavaScript勉強会

JavaScriptの学習日記

Webサーバーを用意する方法

JavaScriptを学習してWebサイトを作れるようになったら、公開用のWebサーバーが欲しくなります。

Webサーバーは、どうやって用意したら良いでしょうか?

 

f:id:jsstudy:20170508135733p:plain

 

 

テストサーバー

Webサイトを外部へ公開する前に、まずは非公開のローカル環境でテストサーバーを用意して、動作確認を行います。

パソコン上に簡易のテストサーバーを用意する場合、様々なツールが利用できます。

 

PHPMySQLなら、「XAMPP」(ザンプ)が手軽です。

XAMPP Installers and Downloads for Apache Friends

XAMPP - Wikipedia

XAMPP(ザンプ)とは、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージとしてまとめたもので、apachefriends.orgから提供されている。主として開発用あるいは学習用ではあるが、イントラネットなどにおいて実運用環境として使われることもある。

Apache(Webサーバ)、MySQLまたはMariaDBSQLデータベースサーバ)とWebプログラミング言語であるPHPや同目的で使われるPerlの4つの主要ソフトウェアとphpMyAdminなどの管理ツール、さらにSQLiteなど、いくつかの補助的なソフトウェアとライブラリモジュールが含まれている。現在、WindowsLinuxmacOSSolarisで利用可能である。

 

Webアプリもサクッと用意したい場合は、「Bitnami」(ビットナミー)というツールも便利です。

Bitnami Stacks

Bitnami - Wikipedia

Bitnami is a library of installers or software packages for web applications and development stacks as well as virtual appliances. Bitnami is sponsored by Bitrock, a company founded in 2003 in Seville, Spain by Daniel Lopez Ridruejo. Bitnami stacks are used for installing software on Linux, Windows, Mac OS X and Solaris.

 

仮想環境

XAMPPなどのように、OS上にWebサーバーソフトを直接インストールするのでなく、仮想環境を用意して、その上にWebサーバーを構築する方法もあります。

仮想環境を作るツールとしては、「Docker」や「Vagrant」などがあります。

Docker - Build, Ship, and Run Any App, Anywhere

Docker - Wikipedia

Docker(ドッカー)はソフトウェアコンテナ内のアプリケーションのデプロイメントを自動化するオープンソースソフトウェアである。

 

プログラマのためのDocker教科書 インフラの基礎知識&コードによる環境構築の自動化

プログラマのためのDocker教科書 インフラの基礎知識&コードによる環境構築の自動化

 

 

 

Vagrant by HashiCorp

Vagrant (ソフトウェア) - Wikipedia

Vagrant(ベイグラント)は、FLOSSの仮想開発環境構築ソフトウェア。VirtualBoxをはじめとする仮想化ソフトウェアやChefやSalt、Puppetといった構成管理ソフトウェアのラッパーとみなすこともできる。

 

実践 Vagrant

実践 Vagrant

 

 

仮想環境を使う利点は、環境を丸ごと移動やバックアップできることなどです。

外部に公開されていないテストサーバーでは、いろんな実験ができますね!

 

レンタルサーバ

Webサイトを外部に公開するには、

  • オンプレミスサーバー (自前で用意したサーバー)
  • レンタルサーバー   (業者から借りるサーバー)

という選択肢があります。

とりあえず、手軽に公開できるレンタルサーバーを使ってみましょう。

 

サーバー選びで検討する項目は、

  1. 料金
  2. サーバー管理者権限の有無
  3. SSLの有無

などです。

 

「マネージド」と「アンマネージド」の違い

サーバーの管理者(root)の権限があると、サーバーの設定を自由に変更できます。

サーバーのセキュリティー管理に不安がある場合は、サーバーの構築や保守を業者に任せて、自分はサーバー資源を使うだけにしたほうが無難です。

 

  • サーバー管理を業者に任せるタイプのレンタルサーバーを「マネージド」(managed)サーバーといいます。(root権限なし)
  • サーバー管理を自分でやるタイプのレンタルサーバーを「アンマネージド」(unmanaged)サーバーといいます。(root権限あり

 

最初は「マネージド」で安全に使い、サーバーの操作に慣れてきたら「アンマネージド」で好きなように構築したら便利でしょう。

 

無料サーバー

が使える無料サーバーには、「XREA」「Heroku」などがあります。

 

XREA

無料から使える高機能・高品質レンタルサーバー | XREA(エクスリア)

XREA - Wikipedia

XREA(エクスリア)は、株式会社GMOデジロックが運営する、無料および有料ウェブレンタルサーバサービスの名称。

XREAの無料プランでは、Webページに広告が表示されます。

 

仕様 | XREA(エクスリア)

アクセス先

通常ページ http://ID.サーバー名.xrea.com/

SSL対応ページ https://ss1.xrea.com/ID.サーバー名.xrea.com/

無料プランだと、SSLページは共用のSSLサーバーを経由しているため、上記のような長いURLになってしまうようです。

 

XREA有料プランの「XREA+」も用意されているので、試用して気に入ったら有料プランに変更することも可能です。

有料プランに変更したら、広告が出なくなります。

 

Heroku

Webエンジニアに人気の無料レンタルサーバーとして「Heroku」もあります。

ただし、Herokuはアメリカのサービスなので、利用に際して英語の理解が必要になります。

(リアルタイムの英会話じゃなければ、英語はGoogle翻訳があればOK?)

 

Cloud Application Platform | Heroku

Heroku - Wikipedia

Heroku(へろく)は2007年創業のアメリカ合衆国の企業。また、同社が開発と運営を行っているPaaSの名称でもある。2010年にはセールスフォース・ドットコムに買収された。

 

Herokuも無料で試用してみて、気に入ったら有料プランも使えます。

 

Google App Engine

XREAやHerokuと比べて、使い方がやや難しいですが、「Google App Engine」(GAE)という無料サーバーもあります。

App Engine - Platform as a Service | Google Cloud Platform

Google App Engine - Wikipedia

Google App Engine (GAE) は、Googleの提供するサービスの1つであり、ウェブアプリケーションPHPPythonJava・Go言語を使用して開発し、Googleインフラストラクチャー上で実行し、バージョン管理することができる。Google Cloud Platformの一部。

 

無料というか、有料サービスの中に、無料で利用できる枠が用意されてる、というかんじです。

普通のレンタルサーバーと比べて、GAEは癖の強いサービスです。(使いづらい)

GAEも試用して気に入ったら、有料プランを利用できます。

 

無料サーバーまとめ

無料サーバーを検討するときは、XREAを比較基準にして検討したら良いかも?

XREAの利点は、日本語で操作できる、データベースが使えてまあまあ多機能とか?

無料サーバーを渡り歩くなら、XREA → Heroku → GAEの順番でパワーアップ!

 

有料サーバー

有料のWebサーバーを選定するときは、

  1. VALUE-DOMAIN
  2. さくらインターネットVPS
  3. Amazon Web ServicesAWS

などを基準にして、他社と比較したら良いと思います。

 

サーバー管理者権限の有無を確認

(1) VALUE-DOMAINは、マネージドサーバーです。

(2) さくらインターネットVPS、(3) AWSは、アンマネージドサーバーです。

 

VALUE-DOMAIN

VALUE-DOMAINは、GMOデジロックが運営するドメイン登録、レンタルサーバーなどのサービスです。

独自ドメイン取得・管理ならVALUE-DOMAIN(バリュードメイン)

GMOデジロック - Wikipedia

株式会社GMOデジロック(英称:GMO DigiRock, Inc.)はドメイン・ウェブホスティングサービスを行なっている、大阪府GMOインターネットグループの企業である。

 

XREAも「VALUE-DOMAIN」に含まれるレンタルサーバーです。

利用料金を出すなら、XREA+より上位のプランも選択できます。

www.value-domain.com

 

VALUE-DOMAINと同様の有料サーバーとして「Xserver」などもあります。

www.xserver.ne.jp

 

さくらインターネット

さくらインターネットVPS」プランがお勧めです。

=料金が安くてサーバーの管理者権限もあり、ぶっちゃけ便利です。

 

さくらインターネット|サーバーホスティングサービス

さくらインターネット - Wikipedia

さくらインターネット株式会社(英: SAKURA Internet Inc.)は大阪市中央区に本社を置く、ホスティングサーバを中心とするデータセンター事業およびインターネットサービス事業を行う企業である。日本のインターネット黎明期よりホスティングサーバの提供を行っている国内最大手の老舗である。

 

vps.sakura.ad.jp

 

さくらのVPSの良い点は、サーバーの設定方法を紹介する初心者向けのユーザーガイドが充実していることです。

【さくらのVPS】サーバの初期設定ガイド

 

knowledge.sakura.ad.jp

 

Webサーバーの構築は案外簡単です。失敗しても何度でもやり直せますw(・∀・)

 

Amazon Web Services

Webサーバーが1台では運営できないほど大規模なWebサイトに成長したら、クラウドサービスを利用しましょう。

 

クラウドサービスとは?|インターネットを使ったサービス|基礎知識|国民のための情報セキュリティサイト

クラウドサービスは、従来は利用者が手元のコンピュータで利用していたデータやソフトウェアを、ネットワーク経由で、サービスとして利用者に提供するものです。

 

クラウドサービスには、

の2種類があります。

外部に公開するWebサービスパブリッククラウドでOKでしょう。

 

Webサーバーとして使える主なパブリッククラウドには、

などがあります。

現在利用者が多いのは、Amazon Web ServicesAWS)です。

 

(参考)国内クラウドサービス市場は3割成長、2020年度には3兆円規模に - DATA&DATA:ITpro Active

f:id:jsstudy:20170507223904j:plain

 

aws.amazon.com

 

Amazon Web Services - Wikipedia

Amazon Web Services(アマゾン ウェブ サービス、AWS)とは、Amazon.comにより提供されているクラウドコンピューティングサービス(ウェブサービス)である。

 

Amazon Web Servicesではじめる新米プログラマのためのクラウド超入門 (CodeZine BOOKS)

Amazon Web Servicesではじめる新米プログラマのためのクラウド超入門 (CodeZine BOOKS)

 

 

jaws-ug.jp

JAWS-UGはAWSについてこれから始めるという方からすでに豊富な利用経験のある方まで誰でも気軽に参加できるフォーラムです。

 

とりあえず、クラウドサービスを利用するなら、いろんな機能が用意されているAWSを比較基準にして、検討したら良いと思います。

 

AWSの対抗馬

 

個人的には、ザックリと

  • GCPで要件を満たしていればGCP
  • そうでなければAWS

というかんじで選定すれば良いと思います。(2017年5月現在)

 

プログラマのためのGoogle Cloud Platform入門 サービスの全体像からクラウドネイティブアプリケーション構築まで

プログラマのためのGoogle Cloud Platform入門 サービスの全体像からクラウドネイティブアプリケーション構築まで

 

 

ベンダーロックイン対策

どのクラウドを利用する場合でも、「ベンダーロックイン」(業者による囲い込み)を避けたいですね?

Dockerなどの仮想環境ツールを利用して、いつでもサーバーを引越しできるようにしておけば安心です。

 

オンプレミスサーバー

外部業者のレンタルサーバーを借りずに、自分でサーバーを設置するという選択肢もあります。

 

オンプレミスとは - IT用語辞典 Weblio辞書

別名:自社運用  【英】on-premise

オンプレミスとは、企業などが情報システムを自社で保有し、自社の設備において運用することである。

「premise」とは構内、店内という意味の英語で、平たく言えばオンプレミスとは自社運用のことである。

 

サーバーの用意

Linuxが動くコンピューターなら、とりあえず何でもOK。

24時間稼動させるので、なるべく電源が丈夫なコンピューターが望ましいです。

 

 (中古のサーバーなら、ヤフオクで安く入手できます。)

 

回線の用意

インターネットの回線には、上り方向と下り方向の2方向があります。

オンプレミスサーバーで重要なのは、上り方向(自分から外部への方向)です。

 

上り方向が強い回線は、「NURO光」がお勧めです。(2017年5月現在)

 

www.nuro.jp

 

NURO光 - Wikipedia

NURO光(ニューロひかり)とはSo-netによる光ファイバーFTTH)網を用いたサービスを提供するブランドである(2013年4月15日より受付開始)。個人宅向け商用FTTHサービス市場で世界最速の下り最大2Gbpsを実現している(上りは1Gbps)。

 

NURO光の欠点は、

  • サービス提供地域がまだ狭い
  • 将来的に利用者が増えたら、回線が遅くなる可能性がある

という点です。

 

NURO光の他には、NTTのフレッツ光が鉄板(定番)でしょうか?

フレッツ光公式 | NTT東日本 | 光回線のインターネット接続ならFLET'S光

フレッツ - Wikipedia

フレッツ光

NTT東日本においてはフレッツ光ライト、フレッツ 光ネクストおよびBフレッツを総称して、NTT西日本においては同社により提供される光ブロードバンド回線サービスを、「フレッツ光」と呼ぶ。 

 

を比較基準にして、他社の回線も検討したら良いと思います。

 

固定IPアドレスの用意

自宅(自社)でWebサーバーを設置するなら、普通は固定IPアドレスを用意します。

NURO光だと、固定IPアドレスが付与されるプランには、「NUROアクセス スタンダード」などがあります。

スタンダード:特長|法人向けインターネット接続サービス 「NUROアクセス」|NURO Biz

接続用ネットワークに、固定グローバルIPアドレスを1個標準で割当。

料金
月額 初期費用 事務手数料 基本工事費
¥18,850 ¥150,000 ¥3,000 ¥50,000

…個人で利用するには、初期費用がちょっと高いでしょうか?

 

変動IPアドレスの場合

固定IPアドレスを用意できなければ、とりあえず変動IPアドレスでもOKです。

固定IPアドレス付の回線サービスは料金が高いので、後々でもOK?)

 

変動IPアドレスで、Webサーバーを公開するには、「ダイナミックDNS」「VPN」などの通信方法を利用します。

 

ダイナミックDNS

ダイナミックDNSは、定期的にドメイン名(ホスト名)とIPアドレスを照合して、IPアドレスが変わっても、外部からWebサーバーにアクセスできるようにする仕組みです。

 

ダイナミックドメインネームシステム - Wikipedia

ダイナミックドメインネームシステム (Dynamic Domain Name System、ダイナミックDNSDDNS) は、動的に割り当てられるIPアドレスと、そのホスト名の対応を、動的に登録・管理する仕組みである。

 

viral-community.com

 

qiita.com

 

VPN

VPNとは、仮想的な専用回線のことです。

本来は専用回線を持っていない人でも、あたかも専用回線を使っているようにする仕組みです。

 

Virtual Private Network - Wikipedia

Virtual Private NetworkVPN、バーチャル プライベート ネットワーク・仮想プライベートネットワークなどとも)は、インターネット(本来は公衆網である)に跨って、プライベートネットワークを拡張する技術、およびそのネットワークである。

 

VPNを使うと、変動IPアドレスしかない人でも、固定IPアドレスを持っているかのようにインターネットを使えるようになります。

 

有料のVPNサービスとして「マイIP」「セカイVPN」などがあります。

マイIPはどこでも固定IP環境を実現します - INTERLINK

セカイVPN いろんな国のIPアドレスが使えるVPNサービス- INTERLINK

 

中国など、インターネットの利用が規制されている国の人も使うなら、セカイVPNでOK。(中国が不要ならマイIPでもOK)

 

kakuyasu-sumahogakuen.com

個人のNURO光ユーザーは、固定IPアドレスを利用できないのでしょうか?

答えはNO。“ある外部サービス”を利用すれば、固定IPアドレスを使うことができます。

その外部サービスとは、(株)インターリンクの「マイIP」。マイIPは、独自のシステムによって、変動IPアドレス固定IPアドレスの変換を実現しています。

 

ルーターの用意

ルーターは、回線とサーバーをつなぐ通信機器です。

ルーターがなくてもネットワークを構築できますが、あると便利です。

 

ルーター - Wikipedia

ルーター(router)は、コンピュータネットワークにおいて、データを2つ以上の異なるネットワーク間に中継する通信機器である。

 

YAMAHA

家庭用ルーターは、ヤマハルーターがお勧めです。

「固定IP」「ダイナミックDNS」「VPN」など、多様な接続方式に対応できます。

 

ルーター - ヤマハ株式会社

とりあえずなら、ヤフオクで中古のルーターを買えば良いでしょう。

 

ヤマハ ギガアクセスVPNルーター RTX810

ヤマハ ギガアクセスVPNルーター RTX810

 

 

ネットワークエンジニアのための ヤマハルーター実践ガイド

ネットワークエンジニアのための ヤマハルーター実践ガイド

 

 

CISCO

CISCOルーターが使える人は、CISCOでもOK。

シスコ ルータ - Cisco

Cisco Certified Network Associate - Wikipedia

Cisco Certified Network Associate(CCNA)はベンダー資格のひとつで、ネットワーク機器ベンダーであるシスコシステムズ(Cisco Systems)が主催している認定資格である。 ネットワークエンジニアにとっては、登竜門的な資格に位置する。

 

ルーターは自作することもできますが、特別な用途がない場合、市販製品で十分です。

小規模のルーターは、YAMAHAの製品を比較基準にして、検討したら良いと思います。

 

SSL証明書

TLS/SSL」は、通信を暗号化する仕組みです。

GoogleSSLの採用を推奨しており、SSLがランキングの判定にも用いられています。

(今後は、SEO対策のためにも、なるべくSSLを導入したほうが良いでしょう。)

 

SSLサーバー証明書とは | さくらのSSL

SSLとはインターネット上でやりとりされる情報を暗号化し第三者によるデータの盗聴・改ざんを防止する技術のことです。

万が一、情報が盗聴・傍受されても、暗号化されているため中身を解読することはできません。インターネットに潜む「盗聴」「なりすまし」「改ざん」「否認」。これらの危険性を回避するために有効なのがSSLサーバ証明書です。

 

Google ウェブマスター向け公式ブログ: HTTPS をランキング シグナルに使用します 

ユーザーがもっと安全にサイトを閲覧できるよう、すべてのサイト所有者の皆様に HTTP から HTTPS への切り替えをおすすめしたいと考えています。

今後、より多くのウェブサイトで HTTPS が使用されることを期待しています。ウェブの安全性をさらに強化しましょう。

 

無料のSSL

無料のSSLなら「Let's Encrypt」がお勧めです。

letsencrypt.jp

 

有料のSSL

有料のSSLなら、「Rapid SSL」などがお勧めです。

ssl.sakura.ad.jp

 

(予算があれば、高機能なSSL証明書を買ってもOK)

 

独自のSSL

Webサイトの管理画面など、自分しかアクセスしないWebページSSLでアクセスしたい場合、自分で勝手にSSL証明書オレオレ証明書)を作る方法もあります。

しかし、欠点もあるのでなるべく使わないほうが無難です。

 

qiita.com

 

  • 無料のSSL(Let's Encryptなど)を利用する
  • SSH接続で操作する

などの代替手段を検討しましょう。

 

CDN

サーバーや回線を増強する以外に、Webサーバーへのアクセスを高速化する手法がいろいろあります。

その一つが、「CDN」の利用です。

 

CDN(コンテンツ・デリバリ・ネットワーク)とは

CDNとは、Content Delivery Networkコンテンツ・デリバリ・ネットワーク)の略で、世界中に張り巡らされたサーバ(CDN配信プラットフォーム)を通して、コンテンツにアクセスしようとするエンドユーザに最も近いサーバから効率的に配信する仕組みのことです。

CDNサービスベンダは配信プラットフォームとして多数のウェブサーバを保有します。

それぞれのサーバには、配信元のオリジンから取得したデータをキャッシュ(コピー)しておき、アクセスしてきたユーザそれぞれに最も適したサーバからコンテンツを配信します。

 

無料のCDN

無料のCDNなら、「CloudFlare」がお勧めです。

Cloudflare - The Web Performance & Security Company | Cloudflare

Cloudflare - Wikipedia

Cloudflare(クラウドフレア)は、コンテンツデリバリーネットワークや分散型ドメイン名サーバシステムを提供するアメリカ合衆国の企業で、ウェブサイトにリバースプロキシを動作させることで閲覧者と自社ユーザーのホスティングプロバイダー間を取り持っている。

 

CloudFlareを試用して気に入ったら、有料プランに変えることもできます。

 

有料のCDN

有料のCDNはいろいろありますが、とりあえずなら「Amazon CloudFront」でOK?

Amazon CloudFront(高速コンテンツ配信とストリーミング) | AWS

AWS再入門 Amazon CloudFront編 | Developers.IO

 

Webサーバー構築例

データのバックアップは重要です。

どんな構成でも、Webサイトのデータは常にバックアップを取るようにしましょう。

 

小規模

LAMPスタックのマネージドサーバーを借りる。

  • まずは、無料のXREAで始めてみる。
  • 試用して気に入ったら、有料プラン「XREA+」を使ってみる。

 

その間に、自宅サーバーを用意して、テストサーバーの構築を練習する。

→ 余っているパソコンがあれば良いが、なければ仮想環境でもOK

(サーバー構築の手順は、さくらインターネットの講座などを参照)

knowledge.sakura.ad.jp

 

中規模

アンマネージドサーバーを借りる。

  • まずは、さくらのVPSで始めてみる。
  • CDNも導入して、大量のアクセスをさばく練習を行う。
  • サーバーが1台で足りなくなったら、複数台に増やしてみる。

 

その間に、オンプレミスサーバーを用意して、外部サーバーのバックアップを自動的に行うシステムを構築する。

ネットワークの知識を一通り学び、自分でネットワークを設計できるようにする。

 

大規模

AWSGCPなどのパブリッククラウドを利用する。

  • クラウドとオンプレミスサーバーを混ぜたハイブリッドネットワークを組み、常にバックアップも怠らない。
  • ベンダーのロックインを避けて、いつでも引越しできるようにしておく。

 

売却

サーバーの利用料金が払えないほど大規模になってしまったら、Webサイトごと売却してもOK!?(・∀・)

 

ネットワークの学習

Webサーバーの構築やネットワークの知識について、良い参考書がたくさんあります。

 

jsstudy.hatenablog.com

 

Webサーバー構築

イラスト図解式 この一冊で全部わかるサーバーの基本

イラスト図解式 この一冊で全部わかるサーバーの基本

 

 

 

nginx実践ガイド (impress top gear)

nginx実践ガイド (impress top gear)

 

 

TCP/IP

ネットワークの知識まとめ本

 

定番の入門書

マスタリングTCP/IP 入門編 第5版

マスタリングTCP/IP 入門編 第5版

 

 

本棚の飾り ネットワーク辞典

コンピュータネットワーク 第5版

コンピュータネットワーク 第5版

  • 作者: アンドリュー・S・タネンバウム,デイビッド・J・ウエザロール,水野忠則,相田仁,東野輝夫,太田賢,西垣正勝,渡辺尚
  • 出版社/メーカー: 日経BP
  • 発売日: 2013/09/12
  • メディア: 単行本
  • この商品を含むブログを見る
 

 

まとめ

  • Webサーバーは、サイトの規模(アクセス数)に合わせて、拡張していきましょう。
  • 余計な仕事が増えると面倒なので、なるべく他から提供されているサービスの利用を検討します。
  • データのバックアップだけは、絶対に自分でもやるべきです。
    (オンプレミスサーバー運用のスキルは、今後も不可欠でしょう。)

 

これらは、あくまでもWebサーバーを用意する方法の一例に過ぎません。

(ご利用に際しては、各自の判断・責任でお願いします。)

 

安くて便利なレンタルサーバーがあったら教えてください。

よろしくお願いします。m(__)m