Web関連コラム サーバ

【非エンジニア・初心者向け・サーバ代節約】AWS以外で高負荷を捌く・サーバ費用を低価格で済ませる方法

アクセスが集中するサイト・しっかりしたサイトを公開する場合、
「サーバはAWSがいいぞ」なんて言われますが【料金がバカ高い】ことをご存知でしょうか?
予算が潤沢にある会社であれば、AWSを使っても特に問題はないかもしれません。
実際、突発的にアクセスが集中するようなWebサイトや、テレビ局のWebサイトは、AWSを採用している所も多いと思います。

AWSとは、Amazon Web Service のことで、ショッピングサイトで有名なアマゾン(Amazon)が提供しているクラウドのサーバサービスのことです。
現在、アマゾンはショッピングサイトよりもこのサーバの方でかなりの利益を上げているそうです。
そりゃ、GAFAのひとつ、世界のAmazonになるわけです。

さて、改めて言いますが、AWSは高い!高い!
世界的にみて、日本が相対的に貧乏になってきているからって、イヤ高いだろ…ボッタクリだろ・・・・って思います。

ではアクセスが多いサイト・突発的に高くなるサイトで、AWSの代わりに使えて安く使えるサーバはどこか。
色々使ってきて、私は下記をおススメします。

『ロリポップマネージドクラウドと、エックスサーバを併用して使う』

まず結論

  • 「ロリポップ マネージドクラウド」がおススメ。ただし機能は少ない。
  • 「ロリポップ マネージドクラウド」にない機能は、「エックスサーバ」も使って機能を補完する
  • 「ロリポップ マネージドクラウド」と「エックスサーバ」を併用して、月額の平均予算はせいぜい3000~5000円程度で済ませる

ロリポップマネージドクラウド
https://mc.lolipop.jp/

エックスサーバ
https://www.xserver.ne.jp/

目次

  1. AWSのメリットとデメリット
  2. ロリポップ マネージドクラウドのメリットとデメリット。
  3. 会員制サイトでの負荷分散について

1.AWSのメリットとデメリット

かなりざっくりですが、“サイトを公開する上で”AWSのメリットとデメリットを挙げます
【AWSのメリットとデメリット】

メリット
1.時間単位で利用できるので無駄がない。
2.サーバの性能を簡単に変更できる。
3.WEBサーバの台数を自動で増減させて負荷の分散ができる(オートスケール機能)
4.データベースの予備をスタンバイさせておくことができる。(Multi-AZ)
5.サーバの設置場所を選択できる(南米、北米、欧州、アジア…等)
6.画像などのファイルを別のサーバに指定できる。
7.メールを送信するためのサーバが持てる
デメリット
1.スペックが低いサーバ(安いサーバ)は実用では使えない。実用に耐えるサーバは高い。
2.料金体系がとにかくわかりづらい。ドル建てなので請求額が毎月変わる。
3.設定が難解。エンジニアがいないと使いこなせない。素人では使いこなせない。(専門の資格もある)
4.障害が起きたら対応が大変。(ここは普通のサーバと同じ)

始めに“サイトを公開する上で”と書きました。
上記はAWS全体の中のサービスの一部で、実際はサービスが豊富で正直私も使いこなしていません。

「設定が難解」ということですが、
例えば、自宅にWEBサーバを設置することをイメージしてみてください。

自分でサーバ用のコンピュータを用意して、CPU、メモリ、HDD(SSD)はこれと選び…、ネットを引いて固定IPを契約、それをルーターに接続して…その後で,ユーザを作成して、NginxとMySQLをインストールして…となると思います。
家にサーバを置いたら電気代もかかりますしね。

AWSはクラウドのサービスなので、これらを細かいところまで「遠隔で」カスタマイズ・運用ができることと、そして何よりも高スペックなサーバも構築できる、アクセス集中にも対応できるということが、判りやすいメリットでしょうか。
難しい反面、仮想化技術でサーバをカスタマイズするので、運用途中でスペックを変更もできるということもメリットだと思います。
但し、やっぱり価格はそれなりに高い…。高い…高い…。

2.ロリポップ マネージドクラウドのメリットとデメリット

ロリポップ マネージドクラウドは、アクセス集中時に負荷分散ができる“レンタルサーバ”です。

【ロリポップ マネージドクラウドのメリットとデメリット】

メリット
1.AWSと比較して料金が安い(月額 980円~数千円)
2.最初に少しだけ設定をすれば、以降は細かい設定は不要。
3.基本的にメンテナンス不要で、何もしなくても大丈夫。
4.アクセスが集中した時、仮想的にサーバーが起動して、アクセス(負荷)分散がされる
5.PHPとデータベース(MySQL)が使える
6.セッション情報を各サーバ間で引き継いでくれる
デメリット
1.メールサービスがない
2.データベースの負荷分散はない。
3.時間を指定してプログラムを動かすクーロン(Cron)の機能がない
4.スペックを指定できない。ここはやはりレンタルサーバ。
5.ページの表示が遅い。(モッサリしているだけで実用には耐えると思います)
6.自分専用の固定IPが持てない。(決まっていて他人と共有するしかない)
7.サポートセンター(メールのみ)の対応が遅い。1~2日かかる。
8.コンテナが起動した瞬間にアクセスすると、HTTP 502エラーが出ることがある。

ロリポップ マネージドクラウドが他のレンタルサーバと違うのは、アクセス集中(サーバの負荷が上がっている状態)を検知すると、コンテナと呼ばれる仮想サーバが自動で起動して、溢れたアクセスをそちらに流してくれます。

このコンテナは通常は1台~最大で数台ですが、予めサポートに依頼すると、最大50台まで起動する様に準備することが可能です。
アクセスが落ち着いてくるとコンテナは自動で停止するため、無駄な料金を支払うことはありません。
料金は、コンテナの起動回数によって課金されますが、実際は980円~数千円程度です。
AWSほど細かい設定はできませんが、料金は桁違いに安いです。

ロリポップ マネージドクラウド
https://mc.lolipop.jp/pricing

※仮想サーバーについては、メチャクチャ奥が深いのでこの辺を参考にしてみてください
https://www.rworks.jp/system/system-column/sys-entry/21776/

補足:一般的なレンタルサーバのメリットとデメリット。

メリット
1.料金が安い(年間数千円~数万円程度)
2.設定項目は殆どお任せ。料金コースを選ぶだけ。
3.ほぼマウスでぽちぽち、簡単に設定ができる
4.サーバの障害がおきても、お任せで勝手に対応してくれる
デメリット
1.サーバの性能は、あまり自由に選べない。カスタマイズ不可。
2.他の契約者と物理的なサーバ性能、ネットワークを共有する
3.サーバ、性能を他の契約者と共有するので、アクセスが集中すれば、他の契約者にも迷惑をかける。
4.アクセスが集中した際、負荷の分散がされない
5.突発的なアクセス集中・高負荷が続くと、機能や性能をいきなり制限される(使えなくなる)

メリットは、設定とサイトの開設が簡単なことなのですが、突発的にアクセスが集中するようなサイトでは、デメリットの最後の項目は致命的だと思います。
契約するだけで簡単に始められて、料金が安いのが最大の利点でしょうか。

例:エックスサーバ、さくらのレンタルサーバ、ヘテムル、ロリポップ、お名前ドットコムレンタルサーバ…など。

 

会員制サイトでの負荷分散について

例えばある会員制サイトがあり、サイトにログインをする、というイメージをしてください。
マイページなど自分専用の情報が表示できるようなページがあるはずです。

これって実際にはどういう動きをしているかというと、サイトにログインすると「ログインしている」という情報がWEBサーバーに保持されるんですが、セッションという「ファイル」で情報が保存されるため、AWSの負荷分散(オートスケール)で、サーバをいくつも自動で起動させた場合、ある人のアクセスが、途中何かのタイミングで別のサーバに繋がってしまうと、セッションが保持できなくなります。

つまり、アクセス(負荷)を分散させるために、新しい仮想サーバが自動で起動しても、そのままではサーバ間でログイン状態(セッション情報)を保持できずに、ログアウトしてしまうんです。

そのため、AWSではそれを解決する機能(スティッキーセッション・ElastiCache・Memchache等)もありますが、高機能な反面、最終的に請求金額が高額になりがちなうえ、設定が複雑で素人には手が出せたものではありません。
それでも興味がある人は、AWSを勉強して使えばいいと思いますが…。
このセッションは、データベースに保持する方法もあるので、一概にこの構成だけではありませんが、基本的にはこのイメージです。

参考ページ
https://dev.classmethod.jp/articles/stateless_ec2/

ロリポップマネージドクラウドの場合もセッションを維持する機能が標準で装備されており、とくに設定を気にすることはありません。
格安で使えるので、ログインのあるような会員制サイトでも利用が可能です。

まとめ

<AWSを使う人いい人>

  • 予算が潤沢にあるので高機能で良いサービスを使いたい人(サーバの予算が月間、数万~十数万円)
  • サーバメンテナンスや、障害対応ができる人材がいる。
  • 土日・夜間でもエンジニアが嫌な顔せずに障害対応してくれる
  • サーバをブラックボックスにせずに、きちんと自分でコントロールしたい

<ロリポップマネージドクラウドを使うといい人>

  • 予算を抑えたい(月間、数千円程度)
  • サーバの知識があまりない人
  • ある程度表示が遅くてもいいから、アクセスが集中しても落ちないサイトがほしい
  • サーバはある程度ブラックボックスでも良いから、メンテナンス不要の落ちないサイトが欲しい
  • 無い機能は、外部のサービスで代用してもいい

【ロリポップマネージドクラウドを使うときの注意点】

  • 利用可能なPHPバージョンが少々古く、最新のPHPは使えない。(2021年3月現在、PHPは7.2)
  • 会員登録をするとメールが飛ぶようなシステムの場合、外部のメールサービスを使う必要がある。
  • 指定の時間に自動でプログラムを動かす「クーロン(Cron)」は対応していないので、URLでアクセスできる所にプログラムを設置して、エックスサーバなどの外部サービスからそのURLをキックさせる必要がある。
  • ロリポップマネージドクラウドのコンテナからは、少量のメールは送信できるものの、あくまでもオマケなので、エックスサーバ等の外部のメールサーバを使う。(本稼働で使うと途中からメールが送信されなくなります)

AWSは高機能で柔軟に使えるサービスなんですが、小規模の事業者や個人用途では、値段が高すぎて予算に見合わないと思います。
高機能で何でもできてしまうので、安心感はあるかもしれませんが、予算がなければ低スペックの機能・サーバしか使えません。

それでも例えば自社のサービスがテレビで紹介されるとか、Twitterでバズってからアクセスが多いページとか、芸能人のグッズを限定販売するとかそんな話になったとき、低予算でサイトを運用する場合は、ここで紹介したような方法で対処することを考えても良いのではと思います。

ただし、これだけは覚えておいてください。
ロリポップマネージドクラウドは、“機能が制限されているので安い”ということを念頭にいれてご判断ください。

何を取るかは、・・・あなた次第、といったところでしょうか。

-Web関連コラム, サーバ
-, , , , ,