GCP ロードバランサと GKE クラスタを Terraform を使って構築する
こんにちは。@jedipunkz です。 少し前まで Google Cloud Platform (GCP) を使っていたのですが、今回はその時に得たノウハウを記事にしようと思います。 Google Container Engine (GKE) とロードバランサを組み合わせてサービスを立ち上げていました。手動でブラウザ上からポチポチして構築すると人的ミスや情報共有という観点でマズイと思ったので Terraform を使って GCP の各リソースを構築するよう仕掛けたのですが、まだまだ Terraform を使って GCP インフラを構築されている方が少ないため情報が無く情報収集や検証に時間が掛かりました。よって今回はまだネット上に情報が少ない GKE とロードバランサの構築を Terraform を使って行う方法を共有します。 構築のシナリオ 構築するにあたって2パターンの構築の流れがあると思います。 GKE クラスタとロードバランサを同時に構築する GKE クラスタを予め構築しそのクラスタ向けにロードバランサを構築する 両方の方法を記していきます。 GKE クラスタとロードバランサを同時に構築する GKE クラスタとロードバランサを同時に作る方法です。 早速ですが下記に terraform ファイルを記しました。それぞれのシンタックスの意味については Terraform の公式ドキュメントをご覧になってください。 公式ドキュメント : https://www.terraform.io/docs/providers/google/ ここで特筆すべき点としては下記が挙げられます。 ロードバランサに紐付けるバックエンドの ID 取得のため “${replace(element…” 的なことをしている ロードバランサのバックエンドサービスに対して GKE クラスタを作成した際に自動で作成されるインスタンスグループの URI を紐付ける必要があります。ユーザとしては URI ではなく “インスタンスグループ名” であると扱いやすいのですが、URI が必要になります。この情報は下記のサイトを参考にさせていただきました。 参考サイト : GKEでkubernetesのnodesをロードバランサーのバックエンドとして使いたいとき with terraform URL : http://qiita.com/techeten/items/b2ec5f11f4a70dd21d70 ロードバランサ一つ作るために 6 個ものインフラリソースを作っている 一つのロードバランサを作るために6つのインフラリソースが必要になるというのも驚きですが公式ドキュメントを読むとなかなかその感覚がつかめませんでした。それぞれの簡単な意味を下記に記しておきます。 ...