はじめに
普段AWSをメインに触っている私が、GCP(Google Cloud)でHTTPロードバランサーとインスタンスを構築するハンズオンを行いました。
セキュリティグループは「アタッチ」ではなく「タグ」
AWSでは、あらかじめ定義したセキュリティグループを「アタッチ(紐付け)」するのが一般的です。
しかし、GCPのファイアウォールルールには**「アタッチ」という概念がないようでした。**
最初はAWSと同じようにアタッチしようとして該当項目が見つからずに戸惑いました。
GCP流の紐付け方
GCPでは、ネットワークタグという仕組みを使ってルールを適用します。
-
ルール側: 「このルールは
http-serverというタグが付いたインスタンスに適用する」と定義。 -
インスタンス側: 自身のタグに
http-serverと書き込む。
ハンズオンの構成メモ
今回の構築フローの概要です。
-
VMインスタンスの作成
- ネットワークタグに
http-serverを付与。 - スタートアップスクリプトでApacheを起動。
- ネットワークタグに
-
プロキシ専用サブネットの作成
- GCPのLB(Envoyベース)特有の概念。プロキシ用のIP帯をVPC内に予約する必要がある(今回は
192.168.0.0/24等で作成)。
- GCPのLB(Envoyベース)特有の概念。プロキシ用のIP帯をVPC内に予約する必要がある(今回は
-
ファイアウォールの設定
-
ヘルスチェック許可:
35.191.0.0/16,130.211.0.0/22からのアクセスを許可。 - プロキシ通信許可: 上記で作ったプロキシ専用サブネットからのアクセスを許可。
-
ヘルスチェック許可:
- ロードバランサー(LB)のデプロイ
ファイアウォールルールのターゲット
| ターゲット(適用範囲) | 内容 |
|---|---|
| 全インスタンス | VPC 内のすべての VM に適用 |
| ネットワーク タグ | タグが付いた VM のみに適用 |
| サービス アカウント指定 | 指定したサービス アカウントの VM に適用 |