ロードバランシングの設定

このガイドでは、2つ以上のオリジンサーバー間で自動的にロードバランシングを取る方法を説明します。ロードバランシングでは、リソースの使用を最適化し、単一のリソースの過負荷を避けるために、リクエストを複数のサーバーに配信します。

設定前の注意点

ロードバランシングを設定する前に、以下の点に注意してください。

  • オリジンシールドを有効にした際のエラーを防ぐために、自動ロードバランシンググループのすべてのバックエンドが同じオリジンシールドの位置を使用する必要があります。
  • オリジンサーバーの条件によって、自動ロードバランシングの動作が直接変わります。自動ロードバランシングが正しく機能するように、条件を確認してください。
  • 多くのお客様は、ロードバランシング機能の設定と同時にフェイルオーバーを設定しています。フェイルオーバーの設定方法については、こちらをご覧ください。

ロードバランシングを有効にする

2つ以上のオリジンサーバーでロードバランシングを有効にするには、以下の手順に従ってください。

  1. Fastly コントロールパネルにログインします。
  2. All services ページから、該当するサービスを選択します。検索ボックスを使用して ID、名前、またはドメインで検索することができます。
  3. Edit configuration ボタンをクリックし、アクティブなバージョンをクローンするオプションを選択します。ドメインページが表示されます。
  4. Origins をクリックします。Origins ページが表示されます。
  5. 編集する Host の名前をクリックします。Edit this Host ページが表示されます。
  6. Auto load balance メニューからは Yes を選択します。
  7. Weight フィールドには、オリジンサーバーに送信するトラフィック全体の割合を入力します。

  8. Update ボタンをクリックします。
  9. 自動ロードバランシングのグループに含めるオリジンサーバーごとに、手順5、6、7、8を繰り返します。

  10. Activate ボタンをクリックして設定変更をデプロイします。

ロードバランシングで条件を使用する

オリジンサーバーやヘッダーに 条件を設定して、ロードバランシングの動作を変更することができます。

オリジンサーバーの条件設定

オリジンサーバーに条件を設定すると、自動ロードバランシングの仕組みが変わる可能性があります。ロード・バランシング・オートダイレクターは、同じような条件に基づいてサーバーをグループ化します。それにより、異なる条件をオリジンのグループに割り当て、オートダイレクターのサブセットを効果的に作成することができます。オリジンサーバーの各グループにてロードバランシングに影響を及ぼす条件が異なる場合、オートロード機能は異なるサーバー間でランダムにロードバランシングすることはありません。

ヘッダーの条件設定

条件は、ヘッダーを通してサーバーに割り当てることもできます。例えば、F_Fastly、F_Second_backend、F_Third_backend という3つのサーバーがあり、特定のプリフィックスを持つすべての URL をデフォルトでセカンドサーバーにしたいとします。まず、ヘッダーを作成します。

  1. Fastly コントロールパネルにログインし、Configure をクリックします。
  2. All services ページから、該当するサービスを選択します。検索ボックスを使用して ID、名前、またはドメインで検索することができます。
  3. Edit configuration ボタンをクリックし、アクティブなバージョンをクローンするオプションを選択します。ドメインページが表示されます。
  4. Content をクリックします。Content ページが表示されます。
  5. Headers エリアで Create header ボタンをクリックすると、新しいヘッダーが作成されます。Create a header ページが表示されます。

    Create a header ウィンドウ

  6. Create a header のフィールドを以下のように入力します。
    • Name フィールドに、新しいヘッダーを説明する名前を入力します (例:Media Requests)。
    • Type メニューから Request を選択し、Action メニューから Set を選択します。
    • Destination フィールドに、アクションの影響を受けるヘッダーの名前を入力します (例:backend)。
    • Source フィールドには、このヘッダーのコンテンツの取得元となるオリジンサーバーの名前を入力します (例:F_Second_backend)。
    • Ignore if set フィールドと Priority フィールドは、デフォルトの設定のままにしておきます。
  7. Create をクリックします。

ヘッダーを作成した後、URL が希望のプリフィックスに一致した場合に適用する新しい条件を作成します。

  1. Headers エリアで、作成したばかりの新しいヘッダー名の横にある Attach a condition リンクをクリックします。Create a new request condition ウィンドウが表示されます。

    New Condition ウィンドウ

  2. Create a new request condition フィールドに以下のように入力します。
    • Name フィールドに、新しい条件を説明する名前を入力します (例:Media Files)。
    • Apply if フィールドに、適用されるリクエスト条件を入力します (例:req.url="^/media")。
    • Priority の設定はデフォルトのままにしておきます。
  3. Save and apply to ボタンをクリックすると、ヘッダーの新規条件が作成されます。
  4. Activate ボタンをクリックして設定変更をデプロイします。

以下の生成された VCL は、3つのサーバーに設定されたオートダイレクターを示しています。sub vcl_recv のセクション内では、デフォルトのオリジンサーバーがオートディレクターに設定されており、メディアの条件が満たされた場合には、リクエストをセカンドサーバーに転送されるようになっています。この条件が満たされない場合、リクエストは3つのサーバーのうち1つにランダムに転送されます。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
director autodirector_ random {
  {
    .backend = F_Second_backend;
    .weight  = 100;
  }{
    .backend = F_Third_backend;
    .weight  = 100;
  }{
    .backend = F_Fastly;
    .weight  = 100;
  }
}

sub vcl_recv {
#--FASTLY RECV CODE START
  if (req.restarts == 0) {
    if (!req.http.X-Timer) {
      set req.http.X-Timer = "S" time.start.sec "." time.start.usec_frac;
    }
    set req.http.X-Timer = req.http.X-Timer ",VS0";
  }

  # default conditions
  set req.backend = autodirector_;

  # end default conditions

  # Request Condition: Media files Prio: 10
  if (req.url ~ "^/media") {

    # Header rewrite Media Requests : 10
    set req.backend = F_Second_backend;
  }
  #end condition

#--FASTLY RECV CODE END
}
Back to Top