1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

GCPにDjangoの環境を整えていく03(GCLB)

Posted at

こんにちは
株式会社クラスアクト インフラストラクチャ事業部の大塚です。
前回GCEとCloud SQLを使って構築したDjango環境にGCLB(Google Cloud Load Balancing)を導入し、VMでの負荷分散環境を作りたいと思います。

今までの記事は以下となります。

環境イメージ

ざっくりこんな感じのイメージになると思います。正直自信はありません。
GCLBで使うプロキシのSubnetをVPC上に作らないといけなかったり、ヘルスチェック用の定義を作成しないといけなかったりとAWSと比べると色々手間だなぁと感じました。(もしかしたらAWSもそのあたりの設定項目が実はあり、私が気が付いていだけなのかもしれませんが…)
GCP01-ページ5.drawio (1).png

構築

VMをもう1台立ち上げる

Subnetをもう1つ作る

VPCの管理画面を開きます。サブネットタブを押下し、サブネットを追加を押下します。
Pasted image 20240502131903.png
今回は以下の設定を入れました。他はデフォルトの設定になります。

  • 名前:classact-public-subnet02
  • リージョン:asia-northeast1(東京)
  • IPv4範囲:192.168.2.0/24

Pasted image 20240502132554.png
作成出来たことを確認します。
Pasted image 20240502132817.png

独り言

Clouud SQLとの連携に必要なVPCネットワークピアリングやプライベートサービスアクセスはVPC単位で設定されているからSubnetに追加に伴う追加設定は思ったよりも少なそう。。。
私の環境の場合FWのルールがSubnetに割り当てているIPアドレスレンジ単位になるので、そこには手を入れないといけませんでしたが。
Pasted image 20240502155338.png

VMを作成するためのマシンイメージを作成する。

GCE管理画面に移動してマシンイメージの元となるVM(今回はclassact-vm-django)を選択します。
右の3ポチ(名前がわからない)をクリックして新しいマシンイメージの作成を押下します。
Pasted image 20240502130656.png
以下の設定で作成します

  • 名前:classact-django-image
  • ソースVM:classact-vm-django(自動で選択されてます)
  • ロケーション:マルチリージョン:asia

Pasted image 20240502131155.png
作成後暫く待機するとステータスに緑のチェックがつき、利用可能となります。
Pasted image 20240502131731.png

VMを立ち上げる

作成したpublic-subnet02にマシンイメージを使ってVMをデプロイしていきます。
作成したマシンイメージからインスタンス作成を押下します。
Pasted image 20240502152248.png
以下の設定で立ち上げました。長くなり恐縮です。

  • 名前:classact-vm-django-other
  • リージョン:asia-northeast1(東京)
  • ゾーン:asia-northeast1-b(前立ち上げたVMが1-aなので別な場所にデプロイします)
  • マシン構成:E2
  • マシンタイプ:e2-micro
  • ファイアウォール:ロードバランサ、HTTP
  • ネットワーク:classact-vpc
  • サブネットワーク:classact-public-subnet02

screencapture-console-cloud-google-compute-instancesAdd-2024-05-02-15_27_31.png
立ち上がったことを確認します。
Pasted image 20240502153538.png

GCLBを作成し、VMと紐づける

インスタンスグループを作成する

GCLBにはバックエンドサービスというものを紐づけていくのですが、そのバックエンドサービスを作成するためにインスタンスグループというものを用意する必要があります。これを用意します。
Pasted image 20240502202905.png

インスタンスグループは各リージョン・ゾーンごとに1つずつ作らないといけない様子でした。
今回は東京リージョンの1-a,1-bそれぞれにDjango VMがあるため2つ作ります。
まず1つ目の設定は以下としました。VPCやSubnet、紐づけるVMを選択して作成します。
Pasted image 20240502204253.png
次に2つ目です。
Pasted image 20240502204820.png
正常に作成されていることを確認します。
Pasted image 20240502205053.png

バックエンドサービスとヘルスチェックの作成

次にインスタンスグループをまとめるバックエンドサービスを作成します。
バックエンドサービスを作成を押下します。
Pasted image 20240502202542.png
今回GCLBで紐づけたいVMは東京リージョンにしかない為、Regionalを選択します。Pasted image 20240502202557.png
バックエンドサービスを作成したいのですが、途中にヘルスチェックを作成する項目があるので、まずこれを埋めます。
Pasted image 20240502205556.png
以下の設定で作成していきます。基本デフォルトで問題ありませんでした。

  • 名前:classact-django-backend-healthcheck
  • プロトコル:HTTP

Pasted image 20240502205656.png
ヘルスチェック作成後、バックエンドサービスの作成に戻ります。
以下の設定で作成しました。

  • 名前:classact-django-backend-service
  • リージョン:asia-northeast1
  • ロードバランサの種類:リージョン外部アプリケーションロードバランサ
  • バックエンドタイプ:インスタンスグループ
  • プロトコル:HTTP
  • ネットワーク:classact-vpc
  • バックエンド1:インスタンスグループ:classact-instance-group-public-subnet01
  • バックエンド2:インスタンスグループ:classact-instamce-group-public-subnet02

screencapture-console-cloud-google-net-services-loadbalancing-backends-regionalBackendService-add-2024-05-02-20_58_17.png
作成出来たことを確認します。
Pasted image 20240502210121.png

GCLBをデプロイする

ロードバランサをデプロイします。ロードバランサを作成を押下します。
Pasted image 20240502201356.png
ALBを使いたいのでアプリケーションの方を選択
image.png
インターネットにコンテンツ提供するLBなので、インターネット接続を選択
image.png
DjangoのVMは東京リージョンにしかない為、リージョンワークロードの方を選択
image.png
構成を押下します。
image.png
プロキシ用のサブネットの作成が必要そうですね。サブネットを予約を押下します。
Pasted image 20240502201808.png
以下の設定でProxy用のサブネットを作成します。

  • classact-alb-subnet
  • IPアドレス範囲:192.168.100.0/24

Pasted image 20240502201940.png
改めて以下の内容でGCLBのフロントエンドの構成を作成します。
入力出来たらバックエンドの構成を押下します。

  • ロードバランサの名前:classact-django-alb
  • リージョン:asia-northeast1(東京)
  • ネットワーク:classact-vpc
  • フロントエンドIPの名前:classactfrontendip
  • プロトコル:HTTP

Pasted image 20240502202106.png

画面右にバックエンドを入れる項目がありますので、作成したバックエンドサービスを選択します。今回はclassact-django-backend-serviceとなります。入力後作成を押下します。
Pasted image 20240502210332.png
作成されたことを確認します。
Pasted image 20240502210512.png
作成したGCLBのIPアドレスを確認します。
Pasted image 20240502210948.png

テスト

GCLBのIPアドレスを任意のWebブラウザで叩いてDjangoのデフォルトの画面が出てくれば環境構築は成功です。
お疲れ様でした。
Pasted image 20240502211033.png

1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?