LoginSignup
3
4

More than 5 years have passed since last update.

複数ポートでLISTENしているGCEインスタンスの負荷分散(ロードバランサ)の設定

Last updated at Posted at 2017-02-14

はまったので書いておく。
とりあえず、AWSのELB + EC2構成をGCPにつくりたいんだけどって人向け。

GCPの負荷分散(ロードバランサー)って?
https://cloud.google.com/compute/docs/load-balancing-and-autoscaling

やりたかったこと

これ↓

     |GCEインスタンス|
     /
|LB| 
     \
     |GCEインスタンス|
  • GCEインスタンス2台

    • ともにapiがport3000でListen
    • ともにfrontがport4000でListen
  • やりたいLBの設定

    • front.example.jp:80 -> LB -> 3000でGCEにリクエスト
    • api.example.jp:80 -> LB -> 4000でGCEにリクエスト
  • Http負荷分散 + 非マネージドインスタンスグループで実現した

やったこと

1. インスタンス作成 x2

  • Compute Engine -> VMインスタンス -> インスタンスを作成
    • firewallのHTTP(s)を許可するをチェック
    • zoneもasia-north-eastあたりにしとく
    • あとはお好きなように埋める

2. インスタンスグループ作成

  • Compute Engine -> インスタンスグループ -> インスタンスグループを作成
    • ロケーションはシングルゾーンにチェック
    • "ポート名のマッピングを指定する"リンクをクリックし、以下を登録
      • api: 3000
      • front: 4000
    • 作成方法は"既存のインスタンスを選択"をチェック
    • VMインスタンスの選択欄で、作成した2つのインスタンスを指定

3. 負荷分散の設定

a. 負荷分散の作成

  • ネットワーキング -> 負荷分散 -> ロードバランサの作成 -> HTTPS負荷分散の"設定を開始"をクリック
    • 適当に名前を入れる

b. バックエンドサービスの作成(api用とfront用の2つ)

  • バックエンドの設定 -> バックエンドサービスを作成または選択 -> バックエンドサービスを作成

    • 名前を適当に
    • インスタンスグループに先ほど作成したグループを選択
    • ポップアップで"インスタンスグループは名前付きポートを所有済み"がでるのでapi(ポート:3000)を選択する
      • ("ポート番号"の欄に3000と記入するでもいい)
    • あとはお好きに設定
  • 同様にバックエンドサービスを作成または選択 -> バックエンドサービスを作成 からfront用のバックエンドサービスを作る

    • ポップアップで"インスタンスグループは名前付きポートを所有済み"がでるのでfront(ポート:4000)を選択する
      • ("ポート番号"の欄に4000と記入するでもいい)

c. ホストとパスのルールの作成

  • ホストとパスのルールで以下を設定
    • ホスト: front.example.jp, パス: /*, バックエンド: front用のバックエンドサービス
    • ホスト: api.example.jp, パス: /*, バックエンド: api用のバックエンドサービス

d. フロントエンドの設定

  • フロントエンドのIPとポートを追加で以下を設定
    • プロトコル: HTTP, IP: エフェメラル, ポート: 80

注意

  • 同一のインスタンスは複数のLBに設定できない
  • 同一のインスタンスは複数のバックエンドサービスに設定してLBに紐付けできない
  • TCP負荷分散ではportフォワーディングできない
3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4