一億人のアクセスに耐えるサイトを作る新規事業の為にウェブサイトを作って宣伝を始めました。何らかの理由で大量のアクセスがあり、あっという間にサーバーが止まってしまう。そんなこともあり得ないことではありません。沢山の人が見にきてくれてるのに、サーバーがダウンしてしまったら機会損失です。Storeのショッピングサイトがダウンしたら、1日に何億円もの損失があると思います。我々もサーバーを絶対にダウンさせたくないですね。事業をやるからには、なるべく機会損失を避けなければいけません。1日中長蛇の列ができるラーメン屋があったとしても、1日一億人が訪れることはないでしょう。ウェブサイトではあり得るのです。そのような事を心配して高価なサーバーをデータセンターに置いてもらい、初めから高いコストをかけることはするべきではありません。アクセスが多くなるまでは金をかけないようにしたい。これからそのような方法を語ります。同じシステムが最初は小さく後で大きくできる柔軟性を持つ。それをスケーラビリティーと言います。初期投資は少ないことが大事ウェブサイトを新しく作るということは、新規事業を始める場合が多いと思います。新規事業を始める時には経費は、とことん安い方が良い。始めは0円で済ませる努力をします。新規事業がうまくいく可能性は100%ではありません。資金を用意しても、その資金が簡単に溶けて無くなってしまいます。それでは新規事業の開始になかなか踏み切れませんね。初期投資が0円だったら、うまくいかないと判断した時点で撤退を決意しやすく、次のアイデアに行くことができます。この身軽さが新規事業を起こしやすい秘訣だと思っています。まあ実際には0円は無理なので、今回はさくらレンタルサーバーの月500円くらいのでスタートするとします。レンタルサーバーはさくらインターネットhttps://www.sakura.ne.jp/plans.htmlさくらのレンタルサーバの各サービス機能について表を用いて比較。さくらインターネットのレンタルサーバーなら2週間無料でお試しいただけて即利用OK。メールアドレスの追加も無制限の「さくらのレンタルサーバ」にお任せください。pocketsサーバーに負担をかけない技術を使うウェブサイトの製作には様々な技術があり、目的が重複するものがあります。多くのウェブデザイナーは、流行の技術を使ってウェブサイトを作ろうとしますが、重複する目的のものを同時に使ってたりします。CSSもテンプレートもデータベースも、データとデザインを分離する為に使う事ができるので、どれか一つだけでも目的は達すると思います。ウェブサイトを作る技術は、見た目を良くする、製作の効率をよくするなどの目的もありますが、今回はサーバーに負担をかけない技術を優先します。最初はお金のかからない方法のみを使います。共有サーバーで月額何百円で済むようなサーバーにします。トップページ、お問い合わせ等のようなページしか必要ないならば、静的なHTMLのみでウェブサイトを作るべきです。動的なページと静的なページは、サーバーの作業負担に大きく違いがあります。医者が問診と検査をして患者に診断結果を伝える作業と、チラシ配りの作業くらいに違います。情報を多くの人に渡せる量は圧倒的に後者が多いのです。WordPressのようなCMSが必要となるのは、ページ数が多くなるウェブサイトになる場合と、複数のスタッフでウェブサイトを運用をする場合だけに思います。BootstrapはCSSとAjaxを使ったフレームワークで、見栄えの良いウェブサイトを効率よく作れる良いものだと思います。HTMLファイルのみのページがサーバーの負担は極力減らせますが、PHPならばヘッダーやフッター等の共通部分をインクルードで共有できますので、複雑な事をさせないならば、PHPを使って良いと思います。usersWordPress使う場合ページ数が多くなることが想定される場合と、複数のスタッフでサイトの運用をするのならば、WordPressのようなCMSを使うのは仕方ないと思います。WordPressはサーバーが重くなりがちなので、気をつけないといけません。CMSを使う時点で、様々な対策もしなければならないと心得るべきです。・プラグインを減らすWordPressのプラグインは具体的に何やっているかというと、記事などHTMLデータの文字列操作をしています。その文字列操作の前に、別のサーバーとの通信を行ったりします。その処理が複雑になればなるほど、サーバーの負担が増えます。その上で、プラグインが数が増えれば、その倍数でサーバー負担が増えるのです。余計なプラグインを入れないようにしましょうという事です。Cache等のWordPressのプラグインが何をしているかというと、おおよそ閲覧者のブラウザーキャッシュを積極的に使わせたり、コンテンツの更新をする端末には逆にブラウザーキャッシュを使わせなかったりすることをしています。ブラウザーのリクエストに対して、サーバーは何もせず大分怠けさせてくれという事です。入れた方が良いと思います。・ニュースやブログなどはSNSを使うFacebookやTwitterにお知らせなどを投稿して、その一覧をウェブページに埋め込めばサーバーの負担は一切ありません。Webページの中で表示されていても、閲覧している端末のブラウザーとSNSのサーバーが通信しているだけです。FacebookやTwitterのサーバーは、世界最高の強固さを持つサーバーですので安心してください。・PHP7.1のモジュール版が使えるサーバーを選ぶ前のバージョンと比べてPHP7.1は、ものすごく早くなっています。古いPHPのバージョンでないと動かないプラグインは捨てて、対応済みのものだけを使いましょう。次の段階アクセスがある程度多くなると、少々費用をかけてもよくなるはずです。良い理由でアクセスが多いならば、当然売り上げも上がっているはずですからケチらずにいきましょう。S3に置くようにします。ページの中で画像をいくら使おうと、ウェブサイトのサーバーにはまったく負担がかかりません。画像のダウンロードは、閲覧している端末のブラウザーと、Amazonのサーバーが通信しているだけになります。Servicesですから落ちません。pockets・ランク上のサーバーに引っ越して自由にチューニング専用サーバーなどに引っ越して、Apacheやmysqlのチューンナップできるようにします。それと、遅い場合の原因を見つけやすくする為にも、共有ではなく専用サーバーが良いと多います。選べるさくらインターネットの物理サーバーサービスです。セキュリティ管理も万全な国内自社データセンターにて24時間365日オンサイトの保守体制。MaxRequestsPerChild等を調整します。初期値ではまったく速度を優先させていません。オープンソース系のソフトウエアの初期設定の特徴に感じるのは、速度よりも多くの環境での安定性を優先しているように思えます。闇雲に数値を大きくしてはいけません。MaxClientsなどは小さくする事で、前のリクエストの処理が終わるまで、次のリクエストを待たせるという動きをします。数値が大きすぎると、同時に仕事を受けすぎてメモリを消費し、閲覧者のブラウザーからのリクエストを処理できなくなります。ここあたりは、本当に詳しい人とexcelと電卓を使って、メモリサイズなどを超えないようにして値を決めるような調整をしなければいけません。うまくいく設定値を見つければ、目を疑うような速度を出します。・Apacheのmod_cacheを使うとにかく画像や文章のデータを、サーバーのメモリ内に置いておき、アクセスの遅いディスクへのアクセスをさせないようにします。その代わりに、メモリが多いサーバーである事が前提です。・Mysqlをチューニングmy.cnfをいじってチューンをします。コネクションの数、バッファーの量、クエリーキャッシュも有効に設定します。Apacheと一緒で、メモリを上手にギリギリまで利用するような設定が理想です。その時は詳しい人に相談するか、説明サイトを見て行いましょう。・Nginxをフロントエンドにするあと1台サーバーを用意して、ロシアのウェブサーバーNginxを使ってプロキシーキャッシュを行わせます。これはよく行われる方法です。フロントエンドの数を増やして負荷分散することは、非常に難易度が高いです。自信がない方はCDNサービスの利用をお勧めします。CloudFrontを使うNginxを使ってプロキシーキャッシュでは頼りなくなったら、誰でも使えるCDNサービスのCloudFrontを使いましょう。Servicesが自社サーバーの代わりに働いてくれるわけですから、相当働きます。世界最大のCDNサービスであるAkamaiに頼まなければならないほどサーバーへのアクセスが多かったら、もうその事業は大成功のはずです。サービス(コンテンツデリバリネットワーク)やクラウドコンピューティングサービスにおいて、お客様のニーズに適した高度なサービスを提供します。pocketsAkamaiは大きな会社でないと話も聞いてくれないのではないかと思います。費用も相当かかるのではとも想像します。Akamaiが必要なくらいのウエブサイトであれば、ガッポガッポ稼いでいて、そんな心配しないでいいはずだと勝手に思っております。画像を多く使いましょう今までの話を全てやってきてるならば、ウェブページに画像を多く使っても構いません。ネットの通信速度は上がっていきますし、早いうちに5Gもやってきます。画像を使うことは、必ずしも遅いとも言えなくなっています。それに、画像はあらゆる箇所でキャッシュが効きやすい。画像を使わずCSSを多用して見栄えの良いデザインにすると、一見データ量が少ないので負担がないように感じますが、実際は端末のブラウザーがレンダリングをして画像を作っているので、端末のメモリとCPUパワーはかなり使います。Apple社のウェブサイトのように、画像しかないようなページでも遅く感じないのは、そのような理由だと思います。最後に今までの話の骨子は、とにかくサーバー仕事を少なくするということです。ウェブサーバーはコンテンツの管理だけをさせます。代わりに周りの設備に配信の仕事を任せる、という考え方です。今回、一億人のアクセスに耐えるサイトを作る、という話をさせていただきました。実際に私はまだそのような経験はありませんが、いずれ経験したいですね。