[GCP][Terraform][v0.11.1]GCEとVPCを自動化してみたら素晴らしかった!

4年ぶりにGCPを触り始めているのですが、自分の経験としてロードバランサー配下でインスタンス2台利用して負荷分散の設定をしたことがなかったので、今回テストとして試してみました。まずは概念からまとめていきたいと思います。


GCLB(Cloud Load Balancing)の概要

https://cloud.google.com/load-balancing

  • 以下3つのロードバランサーがある
  • HTTP(S) 負荷分散 :HTTP および HTTPS アプリケーション用のレイヤ 7 負荷分散
  • TCP 負荷分散TCP/SSL :プロトコルを使用するアプリケーション用のレイヤ 4 負荷分散またはプロキシ
  • UDP 負荷分散 :UDP プロトコルを使用するアプリケーション用のレイヤ 4 負荷分散
  • 負荷分散の対象サービスはGCEインスタンスグループ
  • 料金はAWSと変わらず約4000円ほど

GCEの作成

  • VMインスタンス(2台)
  • name:test-adachi,test-adachi02
  • マシンタイプ(e2-micro/vCPU x 2,メモリ 1 GB)
  • OS( Ubuntu 20.04.3 LTS)
  • ネットワーク(テストなのでdefault)
  • ファイアウォール(HTTPのみ)
  • ネットワークタグ(ssh,http)
  • Nginx

インスタンスグループの作成

  • Compute Engine > インスタンスグループの作成

インスタンスグループはAWSでいうターゲットグループになります。なので上記作成したVMインスタンス2台を指定しましょう。ちなみにマネージド インスタンスグループ(ステートレス)ではオートスケールの細かい設定やヘルスチェックの設定等行えます。今後こっちに移行させたほうがが良さそうですね。


Cloud Load Balancingの設定

  • ネットワークサービス>Cloud Load Balancing>ロードバランサーを作成
  • HTTP(S) 負荷分散を選択しインターネットから自分の VM へを選択
  • バックエンドの構成

  • ホストとパスのルール

ここではホストやパスに対してURLを書き換えたり、リダイレクトなど細かく転送ルールの設定ができます。AWSだとリスナールールになりますね。今回は特にリダイレクトなどはしないので上記のバックエンドを指定しましょう。メンテページリダイレクトとかもできそうですね。

  • フロントエンドの構成

フロントエンドの構成はAWSだとターゲットグループの細かい設定となります。今回はHTTPSではなくHTTPにしました。HTTPSであればSSL証明書も指定できますので、今後試していきたいと思います。その後作成したらフロントエンドに記載されているIPがロードバランサーのIPとなりますのでコピーしておきましょう。

これでロードバランサーの設定は以上となります。


ファイアウォールの作成

  • VPCネットワーク>ファイアウォール

 

ロードバランサー用のファイアウォールを作成していきましょう。ターゲットタグはネットワーク上のすべてのインスタンスを選択し、ソースIPの範囲はLBのSRCIPである35.191.0.0/16, 130.211.0.0/22を指定します。以下決まっているので覚えましょう。プロトコルポートは80のみに絞ります。

ちなみにファイアウォールのターゲットタグでネットワーク上のすべてのインスタントを選択してしまうと、既存のインスタンスに全て紐付いてしまうので、VMインスタンスのネットワークタグとファイアウォールのターゲットタグを共通にすれば絞れるようにしましょう。

https://cloud.google.com/load-balancing/docs/https?hl=ja


負荷分散しているか確認

  • Cloud Load Balancingのフロントエンドに記載してあるhttp://xxx.xxx.xxx.xxxでアクセスする

Nginxのアクセスログが2台とも出ていれば問題なしです。ちゃんとtest01,test02とアクセスするたびに切り替わって分散されていることが分かりますね。


まとめ

AWSとほぼ設定は変わらず、サクッと設定することができました。と言ってもAWSの経験があるからこそと言った感じですね。今後はTerraformで書いてみよう!

参考:https://qiita.com/ShintaNakama/items/6b32cead9d7ea774afcd

カテゴリー: GCP

adachin

1989年生まれのFindy/SRE。ホスティングから大規模なアドテクなどのインフラエンジニアとして携わる。現在はサービスの信頼性向上、DevOps、可用性、レイテンシ、パフォーマンス、モニタリング、オブザーバビリティ、緊急対応、AWSでのインフラ構築、Docker開発環境の提供、IaC、新技術の検証、リファクタリング、セキュリティ強化、分析基盤の運用などを担当している。個人事業主では数社サーバー保守とベンチャー企業のSREインフラコンサルティングやMENTA/TechBullで未経験者にインフラのコーチング/コミュニティマネージャーとして立ち上げと運営をしている。また、過去「脆弱性スキャナVuls」のOSS活動もしており、自称エバンジェリスト/技術広報/テクニカルサポート/コントリビュータでもある。

0件のコメント

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください