概要と初期セットアップ
Load Balancer とは
負荷分散(Load Balancer)とは、仮想サーバーのグループまたはバックエンドリソースのグループに負荷を分散することです。現代の環境では、Web サイトやアプリケーションは毎日数十万のクライアントと数百万の同時リクエストを処理する必要があり、単一のサーバーでは対応できません。
単一のサーバーに依存する代わりに、FPT Cloud Load Balancer は複数のサーバーにトラフィックをインテリジェントに分散します。システムはサーバーの状態を継続的に監視し、あるサーバーに障害が発生した場合は自動的に別のサーバーへトラフィックをリダイレクトすることで、そのサーバーが復旧するまでサービスを中断させません。
主なメリット
- パフォーマンスの最適化: リクエストを均等に分散することで、処理速度を最大化します。
- 高可用性: 自動フェイルオーバー(failover)により、サービスの継続性を維持します。
- 信頼性: バックエンドサーバーの health check を継続的に実施し、正常に稼働しているサーバーのみがトラフィックを受け取るようにします。
- 拡張性: 需要の増加に応じて Server Pool にサーバーを追加することで、容易にスケールできます。
導入前に計画すべき要素
Load Balancer を導入する前に、次を準備してください。
- ワークロードに基づいて必要なバックエンドサーバーの数。
- 適切なプラン(size)の選択 — FPT Cloud は high-availability プラン Basic-1、Basic-2、Standard、Advanced を提供しています。
- 遅延を最適化するための Load Balancer を配置する地理的リージョン(region)。
- 適切な負荷分散アルゴリズム(Round Robin、Least Connections など)。
初期セットアップ
FPT Cloud Load Balancer サービスを利用する前に、次の手順を完了してください。
- FPT Cloud アカウントを作成し、FPT Cloud Portal にログインします。
- FPT Cloud 上に仮想サーバーを作成します。
- 仮想サーバーに Security Group を割り当てます。
アカウントの作成と FPT Cloud Portal へのログイン
- https://console.fptcloud.com にアクセスし、FPT Cloud のアカウント情報でログインします。
- サービスに適した Tenant、Region、VPC を選択します。
FPT Cloud アカウントをまだお持ちでない場合は、https://fptcloud.com/ にアクセスし、Sign Up をクリックして手順に従ってください。サポートチームがアカウント情報の確認のために連絡します。
仮想サーバーの作成
FPT Cloud Load Balancer は、FPT Cloud 上の仮想サーバーの負荷分散をサポートします。仮想サーバーの作成と管理については、FPT Cloud Server のガイドを参照してください。
仮想サーバーへの Security Group の割り当て
Security Group は、仮想マシンレベルのネットワークファイアウォールとして機能し、インバウンド(inbound)とアウトバウンド(outbound)のトラフィックを制御します。デフォルトでは、FPT Cloud の仮想マシンはすべてのアウトバウンドトラフィックを許可し、すべてのインバウンドトラフィックをブロックします。そのため、Security Group を設定していない場合、Load Balancer はバックエンドのサービスポートに到達できず、health check は常に DOWN を報告します。
Load Balancer から転送されるトラフィックを受け取るには、バックエンドサーバー上で特定のポートを開放する必要があります。次を開放してください。
- アプリケーションが待ち受けているサービスポート(例: HTTP のポート 80、HTTPS のポート 443 など)。
- Load Balancer がサーバーの状態を確認するために使用する health check 用ポート(通常はサービスポートと同じです)。
シナリオ別に開放すべきポート
| シナリオ | バックエンドで開放すべき inbound ポート | 送信元(Source) |
|---|---|---|
| Web HTTP | TCP 80 | Load Balancer の Subnet |
| Web HTTPS(バックエンドで SSL を終端) | TCP 443 | Load Balancer の Subnet |
| Web HTTPS(Load Balancer で SSL を終端) | TCP 80 | Load Balancer の Subnet |
| カスタム API | TCP <service-port> | Load Balancer の Subnet |
| 専用の health check(HTTP/TCP) | TCP <health-check-port> | Load Balancer の Subnet |
Load Balancer の Subnet とは、Load Balancer がバックエンドにリクエストを送信するために使用する内部 IP レンジのことです。このレンジは、作成後に Load Balancer の Overview タブ → Subnet で確認できます。手早く済ませたい場合は、一時的に VPC CIDR 全体を許可し、その後セキュリティを高めるために正しい subnet に絞り込むこともできます。
具体例
2 台の仮想マシン A と B 上でポート 80 で稼働する Web サーバーを負荷分散する Load Balancer LB1 を作成する場合:
- この Web サーバークラスター専用の新しい Security Group を作成します。 Security Group の作成と管理については、FPT Cloud Server のガイドを参照してください。
- ポート 80(TCP プロトコル)に対する Inbound rule を追加します — Source は Load Balancer の subnet です(
LB1の Overview タブで確認できます)。 - health check に使用するポートに対する Inbound rule を追加します(例: health check が HTTP を使用する場合はポート 80、health check エンドポイントを別に設定する場合は専用ポート)。
- デフォルトの Outbound rule(
allow all)をそのまま維持する、または少なくとも Load Balancer の subnet へのレスポンス返送を許可します。 - 各仮想マシンの FPT Cloud Portal 上の詳細ページから、仮想マシン A と B に Security Group を割り当てます。
LB1が External Load Balancer(Public IP を割り当て)の場合は、インターネットからのトラフィックを許可するために、LB1自体にも適切な Security Group を割り当てます。通常は、Source0.0.0.0/0でTCP 80/TCP 443を開放します。
複数のバックエンドサーバーが同じポート設定を共有する場合は、すべてに同一の Security Group を再利用できます。Inbound rule がすべてのサービスポートと health check ポートを網羅していることを確認するだけです。後でサービスポートを変更する場合も、共有している Security Group の rule を修正するだけでよく、各仮想マシンで作業する必要はありません。
Security Group の割り当てが完了したら、Server Pool の Members タブを確認してください。30~60 秒経過してもステータスが DOWN のままの場合は、次を再確認してください。
- Server Pool の health check ポートが、Security Group で開放しているポートと一致しているか。
- Inbound rule の Source が、Load Balancer の subnet を正しく網羅しているか。
- バックエンドのアプリケーションが実際にそのポートで待ち受けているか(
netstat -tlnpまたはss -tlnp)。