parudou
parudou
parudou
更新日:2018/12/04

同時アクセス数対策でレンサバからさくらVPSに移行して試行錯誤した話し

今、自分はVPSを5台で一つのWEBサイトを運営しています。
なぜにそこまでスケールアウトするようになったのか?
その歴史を語る。

1、VPSのきっかけ

レンサバではアクセス集中に耐えられなくなった。

某サイトがテレビの影響などでアクセス集中することが多かった。
1分間に4000アクセス程度が時々起こる。
これがまたキャッシュできない仕様だったので、毎回サーバーダウン。

もはやレンサバは限界。さくらマネージドサーバーとかも無意味。
VPSにて負荷分散というのを試してみよう、というのがきっかけです。

なお、この時は非SSLです。

2、WEBとDBの2台構成

さくらVPSを2台借りて、WEBサーバーとDBサーバーを作った。
WEBがメモリ2G、DBが4Gという無駄な選択。

初めてのサーバーだったので、それはもう苦労しました。
なんかよくわからんけど動いている!という危険な状況。
これという設定もせず、ほぼ初期状態でした。

その時はNginxではなくApache。
その分、設定も簡単だったので、よくわからないまま進行。
エラーログすら見ていない。

当然、レンサバとあまり変わらず、
アクセス集中にて500台のエラー多発で終了。

3、Nginxに切り替え

ここから本格的なサーバーの勉強が始まる。

同時アクセスはNginxが良いということなので、
Apacheを要らない子にして、Nginxの本を3冊購入。
どれも5周くらいは読んで、いろいろ実験してみた。

この段階で実験用としてVPSを追加。
実験的にNginxで運用し始める。
ただ、これでもダメだった。2台では無理という判断に。
(この頃はアクセス集中の頻度が半端なかった)

データベースについても無知だったので、併せて勉強。
キャッシュの設定をしたり、ワードプレスの仕様自体を見直すことができた。

4、Nginx5台構成へ

勉強の結果、次の構成にした。

1、フロントにリバースプロキシ用サーバ(メモリ1G)
2、バックエンドにWEBサーバーを2台(メモリ2G)
3、そのバックエンドにDBサーバー2台(メモリ2G)

WEBサーバーはlsyncdでの同期。
DBサーバーはMariaDBでのレプリケーション。
DBサーバーへの振り分けは、プラグイン(HyperDB)を使用。

これはさすがにアクセス集中に耐えることができました。
今までとは桁違いの性能で大満足。

が、長くは続かなかった。

またもや大きめのアクセス集中で500エラーの多発。
しかもWEBサーバーではなくフロントが。
「Too many open files」のエラーログを確認。

「これ以上ファイルを開けない!」というエラーでした。
Nginxのプロセスがファイルを使いまくって上限に達し、バックエンドに接続不可能に。
まさかの項目。完全に知らない世界だった。

OS・Nginxに設定項目がありますが、
自由に上げるのではなく、メモリに合わせて設定しないといけない。
計算した結果、OS側が全く足りていないことが判明。

メモリ1Gでは不可能ということがわかりました(おおよそ2000が限界)。

5、フロントを増強

フロントをメモリ2Gプランに変更。

メモリ2Gプランに変更して、2倍まで耐えられるように。
おそらく同時アクセス4000程度は耐えられるはず。
リバースプロキシは意外と高スペックにする必要があった。

これでバッチリ!と言いたいところなのですが、
2Gに変更してから大きなアクセス集中がなく、かつSSL化したのでまだ何とも言えない状況です。
キャッシュ無しで日に15万pv程度は余裕で耐えています。

同時アクセス2000程度は当たり前に起こるので、
負荷が少ないフロントであってもメモリ1Gプランは使えないということがわかった。
こんなのは経験しないと絶対に気づけない。

※対処できる上手な設定があるかもしれませんが、自分はわからない…

まとめ

WEBサイト運営なら最低でもメモリ2Gプラン。
キャッシュ無しなら5台構成が最低か?

キャッシュ有りなら、1台でも何とかなると思います。
というよりレンサバで十分。VPS自体が過剰になる。
VPSの強みはキャッシュ無しサイトの運営です。

だから、ECサイトなどは複数台構成が必須と言えるだろう。
アクセス集中は逃すと本当に悔しいし、大損害。
これを味わった人は「メモリ2Gプラン1台で十分!」なんて言えない。

余裕があればメモリ8Gプランにして、
同時アクセス1万に耐えられるようにすると良いと思います。

おおよその同時アクセス対策はわかったので、
あとはスケールアウト・アップをしていくだけで対応できる。
この5台体制でも月額1万円程度。コスパは素晴らしい。

是非ご感想・ご指摘等をください。

プロフィール

管理人:parudou
単なるWEBサイト作成マニアです。
底辺法人アフィリエイター。
Twitterはこちら

日記はパルどうSEOブログ

閲覧履歴
履歴なし
カテゴリー
Copyright (c) parudou All Rights Reserved.