自社ECサイトの自動スケーリング:トラフィック急増への対応、拡張戦略、コスト管理と監視

自社ECサイトで自動スケーリングが本当に必要なのは、"アクセスが急に増減する"ときではなく、"展示会・新商品発表・広告出稿で予測できるピーク"が来るときです。適切な設定は、最小インスタンス1台・最大5台、CPUが60...

独立站自动扩缩容:触发策略、冷却时间与成本曲线Auto-scaling: triggers, cooldown and cost curve 反直觉:独立站90%的峰值是 predictable 的展会/新品发布,用定时扩缩比自动扩更省钱Counter-intuitive: scheduled scaling beats reactive spikes 流量来了Traffic rises CPU>60%持续3分钟CPU>60% for 3min 判断可预测性Predictable? 展会/新品/广告投放Campaign/event known 两种策略Two strategies 定时 vs 反应式Scheduled vs reactive 定时扩缩(推荐独立站)Scheduled (preferred) 展会前2小时扩到3台Scale up 2h before event 展会后2小时缩回1台Scale down 2h after 反应式扩缩(兜底)Reactive (backup) CPU阈值触发,冷却5分钟CPU trigger, 5min cooldown 最小1台最大5台封顶Min 1 max 5 成本曲线:基线1台 · 峰值3台 · 每小时按实例计费Cost: baseline 1, peak 3, hourly billed 波浪线=真实流量曲线;定时扩缩把峰值提前覆盖,反应式追赶总是慢3至5分钟Wave = real traffic; scheduled covers before, reactive lags 3-5min 时间 →Time →
スケジュールスケーリングとリアクティブスケーリングの起動タイミングとコスト曲線の比較

自社ECサイトの自動スケーリング:トラフィック急増への対応、拡張戦略、コスト管理と監視

結論から言うと:自社ECサイトで自動スケーリングが本当に必要なのは、”アクセスが急に増減する”ときではなく、”展示会・新商品発表・広告出稿で予測できるピーク”が来るときです。適切な設定は、最小インスタンス1台・最大5台、CPUが60%を3分間超えたら拡張を起動、クールダウン5分、定期タスクで既知のピークをカバーする、という内容です。直感に反しますが、自社ECサイトではリアクティブな自動スケーリングよりスケジュールスケーリングのほうがコストを抑えられます。自社ECサイトのピークの90%は事前に分かっているからです。CPUアラートを待ってから拡張すると、新しいマシンの起動に5分かかり、その間にユーザーの半分は離脱してしまいます。

1. 自社ECサイトのトラフィックピークとはどんなものか

自社ECサイトのトラフィック曲線はToCアプリとはまったく異なります。ToCアプリのピークはランダムです。バズった動画やトレンド入りで、10分でアクセスが10倍になります。自社ECサイトのピークはほぼ予測できます。業界展示会の1週前に広告を出稿する、新商品の発売日、海外顧客が欧米の平日午前にメールから公式サイトへアクセスする、といった具合です。つまり終日自動スケーリングする必要はなく、予定されているイベントの前にマシンを増やせばよいのです。

判断基準は一つです。過去3か月のピーク発生時間をカレンダーに書き出せるならスケジュールスケーリングを使います。ピークが完全にランダムで、通常の5倍を超えるなら、リアクティブスケーリングを保険として併用します。B2Bサイトの現実は前者が90%です。CDNの静的キャッシュでピークトラフィックの70%はさばけます。詳しくはCDNグローバル高速化。

ピークの種類 発生パターン 規模 推奨戦略
展示会からの流入 2週前から予測可能 通常の3〜5倍 スケジュールスケーリング、2時間前
新商品の発売 発売日当日 通常の2〜4倍 スケジュールスケーリング、1時間前
広告出稿 出稿計画に準拠 通常の5〜10倍 スケジュール+リアクティブの二重体制
自然検索の変動 平日午前がピーク 通常の1.5〜2倍 平日の時間帯別にスケジュール設定
突発的なメディア報道 完全にランダム 通常の10倍以上 リアクティブスケーリングで対応

2. リアクティブスケーリング:閾値をどう設定すれば安定するか

リアクティブスケーリングで最もよくある問題は”振動”です。CPUが60%を超えたので1台追加し、2分後にトラフィックが落ちて削減し、3分後にまた増えて、1日に十数回増減を繰り返します。これを解決するには3つのパラメータを使います。起動閾値、継続時間、クールダウンです。自社ECサイトの推奨値は、CPUが60%を3分間超えたらマシンを追加、拡張のクールダウン5分、削減のクールダウン15分です。

もう一つの鍵は最大インスタンス数の上限設定です。上限のない自動スケーリングでは、クローラーやDDoS攻撃を受けると、クラウドの請求書を見るまでインスタンス数が増え続けます。最大5台に設定し、それを超える分はサーバーを増やすのではなくCDNとWAFで対応します。監視アラートとレート制限の連携についてはサイト監視とアラート。

パラメータ 推奨値 役割 設定ミスの影響
スケールアウト閾値 CPU>60%が3分間継続 瞬間的なスパイクによる誤判定を防ぐ 閾値が低すぎると頻繁に変動
スケールアウトのクールダウン 5分 新しいマシンの起動時間を確保 短すぎるとスケールアウトが重複
スケールイン閾値 CPU<30%が10分間継続 トラフィックが下がった直後の縮小を防ぐ 短すぎるとユーザーが固まる
スケールインのクールダウン 15分 観察期間 短すぎると振動を繰り返す
最小インスタンス数 1 最低限の可用性を確保 0にするとコールドスタートが遅い
最大インスタンス数 5(予算に応じて) 請求の暴走を防ぐ 上限なしは請求の爆発

三、スケジュールスケーリング:自社ECサイトに最もお得な戦略

展示会前日の夜にcronを設定し、2時間前にインスタンスを1台から3台に増やし、展示会終了の2時間後に1台に戻します。これがリアクティブスケーリングより安上がりな理由は2つあります。新しいマシンはコールドスタートからトラフィックを受け付けるまで5分かかり、リアクティブスケーリングはCPUアラートが出てから起動するため、マシンが準備できる頃にはピークの半分が過ぎています。スケジュールスケーリングはピークが来る前にマシンを用意するので、ユーザーの待ち時間はゼロです。

実行可能なスケジュール例:月曜から金曜の朝8時(ヨーロッパの顧客の出勤時間に合わせて)に2台へ増やし、午後5時に1台へ戻す。展示会の日は2時間前に3台へ増やす。週末は1台を維持。このスケジュールルールで自社ECサイトの予測可能なピークの80%をカバーでき、月のコスト増は300元以内に抑えられます。多言語サイトのトラフィック時間帯の違いについては多言語GEO。

時間帯 対応する顧客の時間帯 インスタンス数 アクション
平日 08:00〜17:00(北京時間) ヨーロッパの顧客の午前の出勤時間 2台 朝8時に増やし、夕方5時に戻す
平日 20:00〜24:00(北京時間) アメリカ東海岸の午前 2台 夜8時に増やし、0時に戻す
週末終日 トラフィックが少ない 1台 最小を維持
展示会の日 2時間前 展示会への集客開始 3台 スケジュールで起動
新製品発表日 発表当日終日 3台 1時間前に増やす

四、コスト管理:スケーリングで本当にコストが下がるのか

自動スケーリングのコストモデルはシンプルです。時間単位の課金で、4コア8GのVPS1台は1時間あたり約0.5元。昼間に3台へ増やし、夜に1台へ戻すと、1日あたり約4元、月に約120元の追加です。スケーリングをせずピークに備えて常時3台にすると、月のコストは600元増えます。スケーリングで節約できるのはこの480元です。

ただし直感に反するコストの落とし穴があります。新しいマシンの起動には時間がかかり、イメージの取得が遅かったり依存関係の初期化に時間がかかったりすると、増やしたマシンは最初の10分間空回りします。イメージを小さくし(参照Dockerイメージの最適化)、ウォームアップスクリプトを事前に実行することで、1台あたりのコールドスタート時間を10分から2分に短縮でき、この節約もコストになります。

プラン 月のインスタンス費用 帯域幅/CDN 月の総コスト 適した用途
常時3台でスケーリングなし 約1800元 200円 2000円 トラフィックが安定して多い
常時1台+定時拡張 約700元 200円 900円 規則的なピークがある
常時1台+リアクティブ拡張 約600元 200円 800円 ピークがランダム
定時+リアクティブの組み合わせ 約750元 200円 950円 自社サイトにおすすめ

五、監視:オートスケーリングは動いていることを知る術が必要

オートスケーリングを導入したら、必ず監視ダッシュボードを用意しましょう。そうしないと、いつ拡張しているのか、なぜ拡張したのか、上限を超えていないかが分かりません。見るべき指標は4つです。現在のインスタンス数、拡張イベントの回数、平均CPU使用率、インスタンスあたりのエラー率。イベントログは毎日、コスト曲線は毎週確認しましょう。

判断の目安はこうです。1週間でリアクティブ拡張が5回を超えたら、定時ルールが実際のトラフィックパターンをカバーできていない証拠なので、そのイベントを定時スケジュールに加えましょう。逆に1回も発動しなければ、リアクティブルールのしきい値を緩めるか停止して、深夜にアラートで起こされないようにしましょう。監視アラートの完全なリストはこちらサイト監視とアラート。

監視指標 正常範囲 異常シグナル アクション
現在のインスタンス数 1〜3台 最大5台に張り付き アクセス攻撃を受けていないか確認
拡張イベント/週 2〜5回 >10回または0回 定時またはしきい値を調整
平均CPU使用率 30%から50% >70%が継続 最小インスタンス数を増やす
インスタンスあたりのエラー率 0.5%未満 >2% 新インスタンスの健全性を確認
月のインスタンス費用 予算内±20% 予算超過30% 最大インスタンス数を確認

FAQ よくある質問

自社サイトにオートスケーリングは本当に必要か?
ほとんどの自社サイトに24時間365日のオートスケーリングは不要です。日間5万PV以内なら、4コア8GBの1台とCDNで十分です。本当に必要なのは、展示会、新商品、広告出稿など、予測できるピークがあるサイトです。こうしたケースは定時拡張で足り、リアクティブなオートスケーリングは不要です。まず過去3か月で通常の3倍を超えるピークがあったか確認しましょう。なければ導入は不要です。
CPUしきい値はいくつが適切か?
自社サイトなら60%が妥当な発動ラインで、かつ3分間の継続が必要です。50%は敏感すぎて日常の変動でも発動します。80%は鈍すぎて、CPUが飽和してから追加するのではユーザーはすでに待たされています。3分間の継続は瞬間的なスパイクを除外するためです。縮小のしきい値は30%で10分間継続、クールダウンは15分にしましょう。
最小インスタンス数は1か2か?
予算が許せば2、厳しければ1です。1の問題はコールドスタートの遅さで、新しいマシンが起動してトラフィックを受け付けるまで5分かかります。その間にピークが重なるとユーザーは待たされます。2の利点は常に1台の余裕があり、片方が落ちてももう片方が受け付けられることです。月額コストの差は約300元。B2Bサイトで問い合わせを逃す損失はこの300元をはるかに超えるので、最低2を推奨します。
クローラーでインスタンス数が爆発するのを防ぐには?
最大インスタンス数は必ず上限を設け、5台を推奨します。同時にCDN層でWAFとレート制限を設定し、クローラーを検知したらエッジで遮断してオリジンに到達させないようにしましょう。1週間で拡張イベントが10回を超えたら、マシンを増やす前にアクセスログで攻撃を受けていないか確認しましょう。攻撃を受けているサイトのオートスケーリングは、クラウド事業者にお金を渡しているだけです。
新しいマシンの起動にはどれくらいかかる?どうすれば速くなる?
ネイティブイメージのコールドスタートは通常5〜10分です。改善の方向性:イメージを200MB以内に抑える(参照Dockerイメージの最適化)、ウォームアップスクリプト(composer install、キャッシュのウォームアップ)を起動フェーズではなくイメージビルドフェーズに移す、クラウドベンダーの起動テンプレートでマシンプールを事前作成する。自社ECサイトならウォームアップ済みマシンを2台プールで維持し、ピーク時にはLBにそのまま追加すれば秒単位で反映されます。
スケジュール拡縮とリアクティブ拡縮は併用できますか?
併用できますし、おすすめです。スケジュール拡縮は事前に把握しているピークを担当し、リアクティブ拡縮は予期しない突発をカバーします。両方を同じスケーリンググループで使い、スケジュールタスクで目標インスタンス数を設定し、リアクティブルールがその数を基準に上下させます。たとえばスケジュールで3台に設定し、リアクティブで3〜5台の範囲で変動させる、といった形です。2つのルールをそれぞれ独立して動かすと衝突するので避けてください。

最後に

自動スケーリングは自動化すればするほど良いわけではありません。自社ECサイトのようにトラフィック曲線が予測できるビジネスでは、カレンダー上で把握済みのピークを2時間前に拡張しておく方が、どんなスマートアルゴリズムよりもコストを抑えられ、信頼性も高くなります。リアクティブ拡縮はあくまで保険で、まったく予想外の突発トラフィックに対応するためのものです。

実行は3ステップ:まず過去3か月のトラフィック曲線を集計し、把握済みのピークをすべて洗い出します。次にそのピークをスケジュールタスクとして登録し、2時間前に拡張、2時間後に縮小します。最後に保険としてリアクティブルールを1つ追加し、CPUが60%を超えた状態が3分続いたら発動、最大5台で上限とします。この3ステップで、月額コストは常時3台より半分節約でき、ピーク時もユーザーは何も気づきません。関連する監視はこちらサイト監視とアラート。

覚えておきたい一言:自社ECサイトのピークはサプライズではなくカレンダーです。スケジュールタスクに書き込む方が、CPUアラートを待ってから対応するより10倍安く済みます。

环形山
环形山 クレーター専門家

公式アカウント · 環形山 Crater

環形山(Crater)は、WordPress独立サイト開発+Google SEO+GEO全域成長に特化した海外展開支援会社で、スマートハードウェア、産業機器、SaaS、新エネルギーなどの分野を手がけています。

プロダクト能力方法論ホワイトペーパー業界レポート
965件のシェア
78件のナレッジベース