Warning: Undefined array key "sns-tw-x" in /home/r1029599/public_html/engineer-log.net/wp-content/plugins/pz-linkcard/pz-linkcard.php on line 943
Warning: Undefined array key "sns-tw-x" in /home/r1029599/public_html/engineer-log.net/wp-content/plugins/pz-linkcard/pz-linkcard.php on line 943
Warning: Undefined array key "sns-tw-x" in /home/r1029599/public_html/engineer-log.net/wp-content/plugins/pz-linkcard/pz-linkcard.php on line 943
Warning: Undefined array key "sns-tw-x" in /home/r1029599/public_html/engineer-log.net/wp-content/plugins/pz-linkcard/pz-linkcard.php on line 943
Warning: Undefined array key "sns-tw-x" in /home/r1029599/public_html/engineer-log.net/wp-content/plugins/pz-linkcard/pz-linkcard.php on line 943
Warning: Undefined array key "sns-tw-x" in /home/r1029599/public_html/engineer-log.net/wp-content/plugins/pz-linkcard/pz-linkcard.php on line 943
目次
JavaScriptを学習してWebサイトを作れるようになったら、公開用のWebサーバーが欲しくなります。
Webサーバーは、どうやって用意したら良いでしょうか?
テストサーバー
Webサイトを外部へ公開する前に、まずは非公開のローカル環境でテストサーバーを用意して、動作確認を行います。
パソコン上に簡易のテストサーバーを用意する場合、様々なツールが利用できます。
PHP+MySQLなら、「XAMPP」(ザンプ)が手軽です。
XAMPP Installers and Downloads for Apache Friends
XAMPP(ザンプ)とは、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージとしてまとめたもので、apachefriends.orgから提供されている。主として開発用あるいは学習用ではあるが、イントラネットなどにおいて実運用環境として使われることもある。
Apache(Webサーバ)、MySQLまたはMariaDB(SQLデータベースサーバ)とWebプログラミング言語であるPHPや同目的で使われるPerlの4つの主要ソフトウェアとphpMyAdminなどの管理ツール、さらにSQLiteなど、いくつかの補助的なソフトウェアとライブラリモジュールが含まれている。現在、Windows、Linux、macOS、Solarisで利用可能である。
Webアプリもサクッと用意したい場合は、「Bitnami」(ビットナミー)というツールも便利です。
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」などがあります。
Docker – Build, Ship, and Run Any App, Anywhere
Docker(ドッカー)はソフトウェアコンテナ内のアプリケーションのデプロイメントを自動化するオープンソースソフトウェアである。
Vagrant(ベイグラント)は、FLOSSの仮想開発環境構築ソフトウェア。VirtualBoxをはじめとする仮想化ソフトウェアやChefやSalt、Puppetといった構成管理ソフトウェアのラッパーとみなすこともできる。
仮想環境を使う利点は、環境を丸ごと移動やバックアップできることなどです。
外部に公開されていないテストサーバーでは、いろんな実験ができますね!
レンタルサーバー
Webサイトを外部に公開するには、
- オンプレミスサーバー (自前で用意したサーバー)
- レンタルサーバー (業者から借りるサーバー)
という選択肢があります。
とりあえず、手軽に公開できるレンタルサーバーを使ってみましょう。
サーバー選びで検討する項目は、
- 料金
- サーバー管理者権限の有無
- SSLの有無
などです。
「マネージド」と「アンマネージド」の違い
サーバーの管理者(root)の権限があると、サーバーの設定を自由に変更できます。
サーバーのセキュリティー管理に不安がある場合は、サーバーの構築や保守を業者に任せて、自分はサーバー資源を使うだけにしたほうが無難です。
- サーバー管理を業者に任せるタイプのレンタルサーバーを「マネージド」(managed)サーバーといいます。
- サーバー管理を自分でやるタイプのレンタルサーバーを「アンマネージド」(unmanaged)サーバーといいます。
最初は「マネージド」で安全に使い、サーバーの操作に慣れてきたら「アンマネージド」で好きなように構築したら便利でしょう。
無料サーバー
- LAMPスタック(Linux + Apache + MySQL +PHP)
- SSL
が使える無料サーバーには、「XREA」「Heroku」などがあります。
XREA
無料から使える高機能・高品質レンタルサーバー | XREA(エクスリア)
XREA(エクスリア)は、株式会社GMOデジロックが運営する、無料および有料ウェブレンタルサーバサービスの名称。
XREAの無料プランでは、Webページに広告が表示されます。
アクセス先
通常ページ 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(へろく)は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 (GAE) は、Googleの提供するサービスの1つであり、ウェブアプリケーションをPHP・Python・Java・Go言語を使用して開発し、Googleのインフラストラクチャー上で実行し、バージョン管理することができる。Google Cloud Platformの一部。
無料というか、有料サービスの中に、無料で利用できる枠が用意されてる、というかんじです。
普通のレンタルサーバーと比べて、GAEは癖の強いサービスです。(使いづらい)
GAEも試用して気に入ったら、有料プランを利用できます。
無料サーバーまとめ
無料サーバーを検討するときは、XREAを比較基準にして検討したら良いかも?
XREAの利点は、日本語で操作できる、データベースが使えてまあまあ多機能とか?
無料サーバーを渡り歩くなら、XREA → Heroku → GAEの順番でパワーアップ!
有料サーバー
有料のWebサーバーを選定するときは、
- VALUE-DOMAIN
- さくらインターネットのVPS
- Amazon Web Services(AWS)
などを基準にして、他社と比較したら良いと思います。
サーバー管理者権限の有無を確認
(1) VALUE-DOMAINは、マネージドサーバーです。
(2) さくらインターネットのVPS、(3) AWSは、アンマネージドサーバーです。
VALUE-DOMAIN
VALUE-DOMAINは、GMOデジロックが運営するドメイン登録、レンタルサーバーなどのサービスです。
独自ドメイン取得・管理ならVALUE-DOMAIN(バリュードメイン)
株式会社GMOデジロック(英称:GMO DigiRock, Inc.)はドメイン・ウェブホスティングサービスを行なっている、大阪府のGMOインターネットグループの企業である。
XREAも「VALUE-DOMAIN」に含まれるレンタルサーバーです。
利用料金を出すなら、XREA+より上位のプランも選択できます。
VALUE-DOMAINと同様の有料サーバーとして「Xserver」などもあります
さくらインターネット
さくらインターネットの「VPS」プランがお勧めです。
=料金が安くてサーバーの管理者権限もあり、ぶっちゃけ便利です。
さくらインターネット株式会社(英: SAKURA Internet Inc.)は大阪市中央区に本社を置く、ホスティングサーバを中心とするデータセンター事業およびインターネットサービス事業を行う企業である。日本のインターネット黎明期よりホスティングサーバの提供を行っている国内最大手の老舗である。
さくらのVPSの良い点は、サーバーの設定方法を紹介する初心者向けのユーザーガイドが充実していることです。
Webサーバーの構築は案外簡単です。失敗しても何度でもやり直せますw(・∀・)
Amazon Web Services
Webサーバーが1台では運営できないほど大規模なWebサイトに成長したら、クラウドサービスを利用しましょう。
クラウドサービスとは?|インターネットを使ったサービス|基礎知識|国民のための情報セキュリティサイト
クラウドサービスは、従来は利用者が手元のコンピュータで利用していたデータやソフトウェアを、ネットワーク経由で、サービスとして利用者に提供するものです。
クラウドサービスには、
- パブリッククラウド (サーバーを共用)
- プライベートクラウド (サーバーを専有)
の2種類があります。
外部に公開するWebサービスはパブリッククラウドでOKでしょう。
Webサーバーとして使える主なパブリッククラウドには、
などがあります。
現在利用者が多いのは、Amazon Web Services(AWS)です。
(参考)国内クラウドサービス市場は3割成長、2020年度には3兆円規模に – DATA&DATA:ITpro Active
Amazon Web Services – Wikipedia
Amazon Web Services(アマゾン ウェブ サービス、AWS)とは、Amazon.comにより提供されているクラウドコンピューティングサービス(ウェブサービス)である。
JAWS-UGはAWSについてこれから始めるという方からすでに豊富な利用経験のある方まで誰でも気軽に参加できるフォーラムです。
とりあえず、クラウドサービスを利用するなら、いろんな機能が用意されているAWSを比較基準にして、検討したら良いと思います。
AWSの対抗馬
- Google Cloud Platform(ポケモンGOなどで利用されているクラウド。超高性能)
- さくらのクラウド(日本のサービス。サポートに期待!?)
個人的には、ザックリと
- GCPで要件を満たしていればGCP、
- そうでなければAWS
というかんじで選定すれば良いと思います。(2017年5月現在)
ベンダーロックイン対策
どのクラウドを利用する場合でも、「ベンダーロックイン」(業者による囲い込み)を避けたいですね?
Dockerなどの仮想環境ツールを利用して、いつでもサーバーを引越しできるようにしておけば安心です。
オンプレミスサーバー
外部業者のレンタルサーバーを借りずに、自分でサーバーを設置するという選択肢もあります。
別名:自社運用 【英】on-premise
オンプレミスとは、企業などが情報システムを自社で保有し、自社の設備において運用することである。
「premise」とは構内、店内という意味の英語で、平たく言えばオンプレミスとは自社運用のことである。
サーバーの用意
Linuxが動くコンピューターなら、とりあえず何でもOK。
24時間稼動させるので、なるべく電源が丈夫なコンピューターが望ましいです。
- 余っているパソコンを再利用
- 場所を取りたくないなら、小さいNUC(Next Unit of Computing)
- 予算と場所があれば、電源やストレージが冗長化されてるラックマウント型サーバー
(中古のサーバーなら、ヤフオクで安く入手できます。)
回線の用意
インターネットの回線には、上り方向と下り方向の2方向があります。
オンプレミスサーバーで重要なのは、上り方向(自分から外部への方向)です。
上り方向が強い回線は、「NURO光」がお勧めです。(2017年5月現在)
NURO光(ニューロひかり)とはSo-netによる光ファイバー(FTTH)網を用いたサービスを提供するブランドである(2013年4月15日より受付開始)。個人宅向け商用FTTHサービス市場で世界最速の下り最大2Gbpsを実現している(上りは1Gbps)。
NURO光の欠点は、
- サービス提供地域がまだ狭い
- 将来的に利用者が増えたら、回線が遅くなる可能性がある
という点です。
NURO光の他には、NTTのフレッツ光が鉄板(定番)でしょうか?
フレッツ光公式 | NTT東日本 | 光回線のインターネット接続ならFLET’S光
フレッツ光
NTT東日本においてはフレッツ光ライト、フレッツ 光ネクストおよびBフレッツを総称して、NTT西日本においては同社により提供される光ブロードバンド回線サービスを、「フレッツ光」と呼ぶ。
- NURO光
- フレッツ光
を比較基準にして、他社の回線も検討したら良いと思います。
固定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サーバーにアクセスできるようにする仕組みです。
ダイナミックドメインネームシステム (Dynamic Domain Name System、ダイナミックDNS、DDNS) は、動的に割り当てられるIPアドレスと、そのホスト名の対応を、動的に登録・管理する仕組みである。
VPN
VPNとは、仮想的な専用回線のことです。
本来は専用回線を持っていない人でも、あたかも専用回線を使っているようにする仕組みです。
Virtual Private Network – Wikipedia
Virtual Private Network(VPN、バーチャル プライベート ネットワーク・仮想プライベートネットワークなどとも)は、インターネット(本来は公衆網である)に跨って、プライベートネットワークを拡張する技術、およびそのネットワークである。
VPNを使うと、変動IPアドレスしかない人でも、固定IPアドレスを持っているかのようにインターネットを使えるようになります。
有料のVPNサービスとして「マイIP」「セカイVPN」などがあります。
マイIPはどこでも固定IP環境を実現します – INTERLINK
セカイVPN いろんな国のIPアドレスが使えるVPNサービス- INTERLINK
中国など、インターネットの利用が規制されている国の人も使うなら、セカイVPNでOK。(中国が不要ならマイIPでもOK)
個人のNURO光ユーザーは、固定IPアドレスを利用できないのでしょうか?
答えはNO。“ある外部サービス”を利用すれば、固定IPアドレスを使うことができます。
その外部サービスとは、(株)インターリンクの「マイIP」。マイIPは、独自のシステムによって、変動IPアドレスと固定IPアドレスの変換を実現しています。
ルーターの用意
ルーターは、回線とサーバーをつなぐ通信機器です。
ルーターがなくてもネットワークを構築できますが、あると便利です。
ルーター(router)は、コンピュータネットワークにおいて、データを2つ以上の異なるネットワーク間に中継する通信機器である。
YAMAHA
家庭用ルーターは、ヤマハのルーターがお勧めです。
「固定IP」「ダイナミックDNS」「VPN」など、多様な接続方式に対応できます。
ルーター – ヤマハ株式会社
とりあえずなら、ヤフオクで中古のルーターを買えば良いでしょう。
[amazonjs asin=”B005TC9B7M” locale=”JP” title=”ヤマハ ギガアクセスVPNルーター RTX810″]
[amazonjs asin=”4774185299″ locale=”JP” title=”ネットワークエンジニアのための ヤマハルーター実践ガイド”]
CISCO
CISCOのルーターが使える人は、CISCOでもOK。
Cisco Certified Network Associate – Wikipedia
Cisco Certified Network Associate(CCNA)はベンダー資格のひとつで、ネットワーク機器ベンダーであるシスコシステムズ(Cisco Systems)が主催している認定資格である。 ネットワークエンジニアにとっては、登竜門的な資格に位置する。
ルーターは自作することもできますが、特別な用途がない場合、市販製品で十分です。
小規模のルーターは、YAMAHAの製品を比較基準にして、検討したら良いと思います。
SSL証明書
「TLS/SSL」は、通信を暗号化する仕組みです。
GoogleはSSLの採用を推奨しており、SSLがランキングの判定にも用いられています。
(今後は、SEO対策のためにも、なるべくSSLを導入したほうが良いでしょう。)
SSLとはインターネット上でやりとりされる情報を暗号化し第三者によるデータの盗聴・改ざんを防止する技術のことです。
万が一、情報が盗聴・傍受されても、暗号化されているため中身を解読することはできません。インターネットに潜む「盗聴」「なりすまし」「改ざん」「否認」。これらの危険性を回避するために有効なのがSSLサーバ証明書です。
Google ウェブマスター向け公式ブログ: HTTPS をランキング シグナルに使用します
ユーザーがもっと安全にサイトを閲覧できるよう、すべてのサイト所有者の皆様に HTTP から HTTPS への切り替えをおすすめしたいと考えています。
今後、より多くのウェブサイトで HTTPS が使用されることを期待しています。ウェブの安全性をさらに強化しましょう。
無料のSSL
無料のSSLなら「Let’s Encrypt」がお勧めです。
有料のSSL
有料のSSLなら、「Rapid SSL」などがお勧めです。
(予算があれば、高機能なSSL証明書を買ってもOK)
CDN
サーバーや回線を増強する以外に、Webサーバーへのアクセスを高速化する手法がいろいろあります。
その一つが、「CDN」の利用です。
CDNとは、Content Delivery Network(コンテンツ・デリバリ・ネットワーク)の略で、世界中に張り巡らされたサーバ(CDN配信プラットフォーム)を通して、コンテンツにアクセスしようとするエンドユーザに最も近いサーバから効率的に配信する仕組みのことです。
CDNサービスベンダは配信プラットフォームとして多数のウェブサーバを保有します。
それぞれのサーバには、配信元のオリジンから取得したデータをキャッシュ(コピー)しておき、アクセスしてきたユーザそれぞれに最も適したサーバからコンテンツを配信します。
無料のCDN
無料のCDNなら、「CloudFlare」がお勧めです。
Cloudflare – The Web Performance & Security Company | Cloudflare
Cloudflare(クラウドフレア)は、コンテンツデリバリーネットワークや分散型ドメイン名サーバシステムを提供するアメリカ合衆国の企業で、ウェブサイトにリバースプロキシを動作させることで閲覧者と自社ユーザーのホスティングプロバイダー間を取り持っている。
CloudFlareを試用して気に入ったら、有料プランに変えることもできます。
有料のCDN
有料のCDNはいろいろありますが、とりあえずなら「Amazon CloudFront」でOK?
Amazon CloudFront(高速コンテンツ配信とストリーミング) | AWS
AWS再入門 Amazon CloudFront編 | Developers.IO
Webサーバー構築例
データのバックアップは重要です。
どんな構成でも、Webサイトのデータは常にバックアップを取るようにしましょう。
小規模
LAMPスタックのマネージドサーバーを借りる。
- まずは、無料のXREAで始めてみる。
- 試用して気に入ったら、有料プラン「XREA+」を使ってみる。
その間に、自宅サーバーを用意して、テストサーバーの構築を練習する。
→ 余っているパソコンがあれば良いが、なければ仮想環境でもOK
(サーバー構築の手順は、さくらインターネットの講座などを参照)
中規模
アンマネージドサーバーを借りる。
- まずは、さくらのVPSで始めてみる。
- CDNも導入して、大量のアクセスをさばく練習を行う。
- サーバーが1台で足りなくなったら、複数台に増やしてみる。
その間に、オンプレミスサーバーを用意して、外部サーバーのバックアップを自動的に行うシステムを構築する。
ネットワークの知識を一通り学び、自分でネットワークを設計できるようにする。
大規模
AWSやGCPなどのパブリッククラウドを利用する。
- クラウドとオンプレミスサーバーを混ぜたハイブリッドネットワークを組み、常にバックアップも怠らない。
- ベンダーのロックインを避けて、いつでも引越しできるようにしておく。
売却
サーバーの利用料金が払えないほど大規模になってしまったら、Webサイトごと売却してもOK!?(・∀・)
ネットワークの学習
Webサーバーの構築やネットワークの知識について、良い参考書がたくさんあります。
Webサーバー構築
[amazonjs asin=”4797386665″ locale=”JP” title=”イラスト図解式 この一冊で全部わかるサーバーの基本”]
[amazonjs asin=”4798146374″ locale=”JP” title=”ゼロからはじめるLinuxサーバー構築・運用ガイド 動かしながら学ぶWebサーバーの作り方”]
TCP/IP
ネットワークの知識まとめ本
定番の入門書
本棚の飾り ネットワーク辞典
まとめ
- Webサーバーは、サイトの規模(アクセス数)に合わせて、拡張していきましょう。
- 余計な仕事が増えると面倒なので、なるべく他から提供されているサービスの利用を検討します。
- データのバックアップだけは、絶対に自分でもやるべきです。
(オンプレミスサーバー運用のスキルは、今後も不可欠でしょう。)
安くて便利なレンタルサーバーがあったら教えてください。
よろしくお願いします。m(__)m
投稿日:May 8th 2017
元記事:http://jsstudy.hatenablog.com/entry/preparation-of-web-server