「夕方になると決まって重くなる」
「ページの表示が遅い、と言われる」
「アクセスが増えると落ちる」
「セールや受付開始の瞬間だけ繋がらない」
「データが増えてから、明らかに遅くなった」
「サーバーのプランを上げたのに、改善しなかった」
表示が遅い、落ちるといった障害の原因を切り分けて、どこに手を入れるべきかをお伝えします。
■ 「サーバーを増やす」で直らない理由
重い・落ちるの原因は、だいたい次のどれかです。
・データベースの検索が遅い(インデックスが効いていない等)
・同じ処理を何度も繰り返している
・画像など重いファイルをサーバーから直接配信している
・書き込みが一箇所に集中している
・そもそもサーバーの設定が初期値のまま
このうち、サーバーの増強で直るのは一部だけです。
詰まっている場所と、お金をかけた場所がずれていると、
費用だけ増えて改善しません。
まず「どこが詰まっているか」を特定するのが先です。
■ 特に難しいケース
「特定の時刻に一斉にアクセスが来る」タイプは、
平常時のチューニングとは別の設計が必要になります。
・セール開始の瞬間
・受付・予約の開始時刻
・メンテナンス明け
平常時はほぼ無風なのに、数十秒だけ垂直に立ち上がる。
この形は、普通の増強では対処できません。
私は、開始時刻に数万人が同時アクセスするサービスの
インフラ設計を担当しました。
・ボトルネックをデータベースの書き込みと特定
・書き込みが集中するデータをKVSへ分離
・重い処理をリクエストから切り離して非同期化
・読み取り側はCDN / キャッシュ / リードレプリカで分散
負荷試験で20万人規模の同時処理が成立することを確認し、
構築から8年、無停止で稼働しています。
■ 納品するもの
診断レポート(テキストまたはMarkdown)。
1. 原因がどこにあるかの切り分け
2. 対策案(費用対効果の高い順)
3. お金をかけずに済む対策と、投資が必要な対策の区別
4. 負荷試験をするなら、何をどの規模で測るべきか
「スペックを上げましょう」では終わりません。
今の規模で本当に必要かどうかまで書きます。
■ 対応できるもの
・レンタルサーバー / VPS / AWS / GCP / Azure
・PHP / MySQL / PostgreSQL / WordPress
・言語やフレームワークは問いません
まずは「いつ、どう重いか」だけでも構いません。
見積り相談からお気軽にご連絡ください。
【ご提供いただきたいもの】
・構成図、またはリソースの一覧
(マネジメントコンソールのスクリーンショットでも構いません)
・何に困っているか、または何が不安か
・月額のおおよその費用(コスト相談をご希望の場合)
・想定しているアクセス数(分かる範囲で)
【対応範囲】
本サービスは資料をもとにした診断と改善提案です。
以下は含みません。別途お見積りいたします。
・実際の構築・設定変更作業
・AWSアカウントへのログインを伴う調査
・監視ツールの導入
・コードの修正
【お願いとご注意】
・平日は別の仕事があるため、土日を中心に作業しております。
返信は原則24時間以内。納期は10日いただいています。
・AWSアカウントへのアクセス権はいただきません。
いただいた資料をもとに診断します。
・アカウントID、アクセスキー、IPアドレスなどは
必ずマスキングしてからお送りください。
・診断の結果「特に大きな問題はありません」となる場合もあります。
その場合も、今後注意すべき点をお伝えします。