Vultr Load Balancerの使い方

本記事では、現役ウェブエンジニアの管理人が、クラウドプラットフォームのVultrが提供しているマネージド・ロードバランサー「Vultr Load Balancer」の使い方について解説します。

ロードバランサーの作成方法、VPSインスタンスとの紐付け、転送ルールの設定、SSL/TLS終端設定、VPCネットワークへの設置方法など、一通りの使い方がわかるようになるので、ぜひ読んでみてください。

Vultr Load Balancerとは

Vultrが提供しているロードバランサー用のマネージド・サービスです。

  • ロードバランサーのインフラ、設定、スケーリング、モニタリングはVultrが担当してくれるため、ユーザはアプリケーション開発に集中することができます。
  • レイヤー4(TCP)とレイヤー7(HTTP/HTTPS)の両方に対応したロードバランサーです。TCPではIPアドレスとポート番号のみでルーティングを行うため、非常に高速です。
  • SSL/TLS終端をサポートしています。
  • 複数リージョンで運用することでグローバル規模でのトラフィック分散が可能です。

Vultr Load Balancerの料金

VultrのLoad Balancerは、月額$10から利用可能です。

ノード数を増やしたり、複数リージョンに配置すると料金はあがります。

注)ここで言うノード数はロードバランサーの数で、紐づけるVPSの数ではありません。

  • ノード数:最初の1つは$10/月、以後2つ追加するごとに$10/月を加算(例:3ノードなら$20/月)
  • 複数リージョン:ノード数による小計金額にリージョン数を乗じて合計金額を算出

例:3ノード構成のロードバランサーを2リージョンに配置した場合、$20 x 2 = $40 / 月となります。

ロードバランサー自身の転送量は転送枠にはカウントされず、VPSの転送量のみがカウントされます。

Vultr Load Balancerの使い方

前提:VultrアカウントとVPSインスタンスの作成

Vultr Load Balancerを使うには、Vultrのユーザアカウントを登録しVPSインスタンスを作成する必要があります。

もしまだVultrにアカウントを持っていない方は、以下のリンクから登録すると$300のクレジットがもらえます。$300あればロードバランサーやVPSインスタンスを含むVultrのほとんどの機能を無料で試すことができます。

ユーザ登録とVPS作成の詳しいステップは以下の記事で解説しています。

関連記事: Vultr VPSを現役エンジニアがレビュー

ロードバランサー作成

管理ダッシュボード左メニューの「Network」セクションから「Load Balancers」を選択し、「Create Load Balancer」をクリックします。

ロードバランサーの基本情報を入力します。デフォルト値で良ければ、入力が必要な基本情報フィールドは「Label」のみです。

  • Label: ロードバランサーの名前
  • Algorithm: Round RobinもしくはLeast Connectionを選択
  • Timeout: デフォルトは600秒
  • Number of Nodes: ノード数。奇数のみ選択可能です。
  • Force HTTP to HTTPS: HTTPトラフィックをHTTPSにリダイレクトします。
  • Proxy Protocol: 接続元クライアントのIPアドレスをバックエンドVPSサーバーに転送します。
  • Sticky Sessions: 同じクライアントのリクエストは同じバックエンドサーバーに転送します。
  • Health Check: バックエンドサーバーのヘルスチェックに使うプロトコル、ポート番号、パス、インターバルを設定します。

ロケーションを選択します。複数ロケーションを選択すると、それぞれのロケーションにロードバランサーが配置されます。

必要であれば追加で以下の設定を行います(作成後でも設定可能です)。個々の詳しい設定方法は後述します。

  • Non‑Public VPC Network: VPCネットワーク内にロードバランサーを設置する場合に使用
  • Forwarding Rules: バックエンドへの転送ルールをプロトコルやポート番号で指定
  • Firewall:ロードバランサー本体にファイアウォールを設定し、アクセス可能なソースIPを制限します。(VPSのファイアウォール機能の「Vultr Firewall」とは別物です)
  • SSL:SSL/TLS終端を設定

Summaryで詳細を確認し、問題なければ「Create Load Balancer」をクリックして作成します。

ステータスがActiveになったら、ロードバランサー詳細画面の「RDNS」セクションの「Address」カラムに表示されているIPアドレスをコピーし、DNSでAレコードを作成します。

dig your_domain.com A
# ;; ANSWER SECTION:
# your_domain.com. 300 IN A lb_ip_address

VPSインスタンスの紐付け

バックエンドVPSをロードバランサーと同じリージョンで作成します。本記事はデモのため、HTTPポートが自動で作成されるLAMPをMarketplace Appから選択して作成します。

「Resources」の「Location」セクションを展開し、「Add Instances」ボタンをクリックします。

同じリージョンのVPSインスタンス一覧が表示されるので、ロードバランサーに紐づけたいVPSインスタンスを選択し「Attach Load Balancer」ボタンをクリックします。

ロードバランサーにVPSインスタンスが紐づきます。

転送ルールの設定

ロードバランサートラフィックの転送には、VPSとの紐付けだけでなく転送ルールの設定も必要です。

「Forwarding Rules」セクションで「+」ボタンをクリックします。

以下の転送ルールを設定します。

  • ロードバランサーのプロトコル
  • ロードバランサーのポート番号
  • VPSインスタンスのプロトコル
  • VPSインスタンスのポート番号

本記事ではロードバランサーとVPSインスタンス両方で以下のように設定します。

  • プロトコル:HTTP
  • ポート番号:80

RDNSセクションに表示されているロードバランサーのIPアドレスをHTTPプロトコルを指定してブラウザーで開き、VPSインスタンスのウェブページが表示されれば成功です。

SSL/TLS終端(ターミネーション)

VultrのロードバランサーはSSL/TLS終端をサポートしています。

SSL/TLS終端とは、ロードバランサーがクライアントとのHTTPS通信の暗号化・復号化を担い、バックエンドVPSサーバーとの通信は平文で行う機能です。

SSL終端には以下の2通りの設定方法があります。

  1. 手動でSSL証明書をロードバランサーに設定:Vultr以外のDNSプロバイダーでドメイン管理を行っている場合に使います。
  2. VultrがSSL証明書の発行・ロードバランサーへの設置を自動で行う(Auto SSL):Vultr DNSでドメインを管理している場合に使います。

本記事では1の方法を使います。

1. SSL/TLS証明書をLet’s Encryptなどを使って発行します。

2. ロードバランサー詳細画面の「SSL」セクションで編集アイコンをクリックします。

3. 「SSL Certificate」を選択し、復号済みのプライベートキー、証明書本文、証明書チェーンを貼り付け「Save Changes」をクリックします。

4. 「Forwarding Rules」セクションで、以下の転送ルールを設定します。

  • Load Balancer Protocol: HTTPS
  • Load Balancer Port: 443
  • Instance Protocol: HTTP
  • Instance Port: 80

5. 証明書を発行したホスト名(DNSでロードバランサーIPにルーティング済み)にHTTPSでアクセスし、VPSインスタンスがホスティングしているウェブサイト画面が表示されたら成功です。

VPCネットワークに追加

VPCネットワークにロードバランサーを追加すると、VPSインスタンスへのトラフィック転送やヘルスチェックをプライベートネットワーク上で行えるようになります。

関連記事:Vultr VPCとNAT Gatewayの使い方

「Resources」セクションの「Location」を展開し、該当リージョンNetworkの「+」ボタンをクリックします。

「VPC Network」を選択し、VPCを選択して「Save Changes」をクリックします。

ロードバランサーがVPCに追加されます。ロードバランサーのプライベートIPアドレスは、VPCメニューの詳細画面から確認可能です。

まとめ:Vultr Load Balancerを使ってみよう

Vultrのロードバランサーを使うと、以下のようなメリットがあります。

  • VPSヘルスチェックによる冗長化
  • 複数リージョン&VPSインスタンスへのトラフィック分散
  • SSL/TLS終端によるセキュリティ強化

ウェブサイトやアプリケーションの本番環境には欠かせない機能なので、ぜひ使ってみてください。