3

GCPのHTTPロードバランサには、グローバル転送ルール、ターゲットプロキシ、URLマップ、バックエンドサービス、インスタンスグループなどの多くの可動部分があります。Google Cloud PlatformでHTTPロードバランサを作成する

私はHTTPロードバランサの設定が困難であることから、GCPにHTTPロードバランサを設定する手順を集約した以下の回答を書いています。

この質問は、別のquestion's answerの一部です。これは、自動スケール調整され、負荷分散されたバックエンドを構築することについてです。

答えて

5

最初に、GCPには2種類のロードバランサ、つまりネットワークとHTTPのロードバランサが用意されています。 ネットワーク対HTTPロードバランサhereの違いを見つけることができます。この時点から、HTTPロードバランサとして、HLBと呼ぶことにします(長すぎます)。ここで

GCPから取られたHLBのアーキテクチャです:

HTTP load balancer architecture

あなたは上記のアーキテクチャから見てきたように、HLBを設定するための可動部品がたくさんあります。ここでは、インスタンステンプレート、インスタンスグループ、転送ルールから順に作成します。

1.インスタンステンプレート:アンマネージドインスタンスグループを使用してHLBでアタッチできるため、インスタンステンプレートはHLBの設定には必要ありませんが、私は、インスタンステンプレートと管理されたインスタンスグループを持つことを好みます。そのため、自動拡張機能を同種のインスタンスのグループに追加することもできます。 インスタンステンプレートhereを作成する手順を記述しました。インスタンスグループ管理

Lets assume the instance template to be sample-template. 

2:管理インスタンス・グループを作成し、hereを自動スケーリングのための手順を行ってください。オートスケーリングとロードバランシングは互いに独立しています。どちらもヘルスチェックを提供します。私の見解では、ロードバランサとオートスケーリングの両方についてヘルスチェックを設定することは冗長であり、ロードバランサのヘルスチェックだけではうまくいくと思います。

Lets assume the managed instance group to be autoscale-managed-instance group, which is autoscaled and created based on sample-template. 

3.サービスエンドポイント:あなたはHLBによって使用されるサービスのエンドポイントを指定する必要があります。 gcloudにサービス・エンドポイントを設定するためのコマンド:

gcloud compute instance-groups managed \ 
set-named-ports \ 
autoscale-managed-instance group \ 
--named-ports http:80 \ 
--region asia-northeast1 

上記のコマンドは、HLBは、グループ内の均一なインスタンスと通信するのに役立つインスタンス・グループ内のサービス・エンドポイントを作成します。

4.正常性チェック:これは、HLBが正常なインスタンスにのみトラフィックをルーティングするために不可欠です。インスタンスグループ内のインスタンスすなわちすべてのバックエンドインスタンスにこのサービスルーティングトラフィック:

gcloud compute http-health-checks create sample-health-check 

5.バックエンドサービス:ヘルスチェックを作成するコマンド。また、インスタンスのヘルスチェックを関連付けて、正常なインスタンスにのみトラフィックをルーティングするようにします。バックエンドサービスを作成するためのコマンド:

gcloud compute backend-services create \ 
sample-backend-service \ 
--http-health-checks sample-health-check 

上記のコマンドは、バックエンドサービスを作成し、前のステップで作成したヘルスチェックに自分自身を関連付けます。今、次のコマンドを実行して、バックエンドサービスにインスタンス・グループを追加する:

gcloud compute backend-services add-backend sample-backend-service \ 
--instance-group \ 
sample-managed-instance-group \ 
--balancing-mode RATE \ 
--max-rate-per-instance 100 \ 
--instance-group-region asia-northeast1 

上記のコマンドは、バックエンドサービスへのインスタンスのグループを添付してもbalancing-を使用して要求の数に基づいて負荷を分散しましたモードフラグ。 ロードバランサ使用率に基づいて自動スケーラビリティポリシーを設定していた場合、最大速度 - インスタンスがオートスケーラで使用されます。

6. URLマップ: HTTPリクエストURLをバックエンドサービスにマップするURLマップを作成します。 URLマップを作成するためのコマンド:あなたはコンテンツベースのロードバランサを選択すると

gcloud compute url-maps create sample-map \ 
--default-service sample-backend-service 

が、あなたは、URLマップに多くのエントリを追加する必要があり、それのルート適切なバックエンドサービスに要求するように。

7.ターゲットHTTPプロキシ:この手順では、ターゲットプロキシをURLマップに関連付けます。ターゲットHTTPプロキシを作成するためのコマンド:

gcloud compute target-http-proxies \ 
create sample-target-proxy \ 
--url-map sample-map 

8.転送ルール:これはHLBのグローバル外部IPアドレスを与える最後のステップです。

gcloud compute forwarding-rules \ 
create sample-forward \ 
--global \ 
--ports 80 \ 
--target-http-proxy sample-target-proxy 

ここで、ブラウザでHLBのIPアドレスにアクセスすると、インスタンスグループ内のインスタンスによって処理されるWebページが提供されます。これは最終的に、自動スケーリングとロードバランスの両方を行うスケーラビリティの高いWebアプリケーションを設定します。

これは、自動的に負荷分散されたバックエンドを構築することに関するパート33-part seriesです。

関連する問題