Terraform で GCE を構築、Apache へアクセス
概要
やりたいこと
Terraform を使って Google Compute Engine (GCE ) を作成する。
また、Apache を建ててアクセスできるようにする。
Terraform
GCE
Terraform サンプルを参考にやる。
scratch_disk と service_account を削る。
resource "google_compute_instance" "default" { name = "test" machine_type = "e2-medium" zone = "us-central1-a" tags = ["foo", "bar"] boot_disk { initialize_params { image = "debian-cloud/debian-9" } } network_interface { network = "default" access_config { // Ephemeral IP } } metadata = { foo = "bar" } metadata_startup_script = "echo hi > /test.txt" }
デプロイ。
terraform apply
Compute Engine コンソールから確認できる。

コンソールから ssh でログインし、metadata_startup_script で指定した操作が実行されていることを確認。

GCE + Apache
以下 2 つを追加。
- tags に http-server を指定
- metadata_startup_script に後述するスクリプトファイルを指定
tags はネットワークタグと呼ぶファイアウォールルールのことで、どのトラフィックを許可するか、を指定する。ファイアウォールルールにデフォルトのルールがある。

GCE 用 Terraform テンプレートを修正。
vi gce.tf
resource "google_compute_instance" "default" { name = "test" machine_type = "e2-medium" zone = "us-central1-a" tags = ["http-server"] boot_disk { initialize_params { #image = "centos-cloud/centos-7" image = "debian-cloud/debian-9" } } network_interface { network = "default" access_config { } } metadata = { foo = "bar" } metadata_startup_script = file("/Users/USERNAME/work/gcp/test/test_lb_gce/apache.sh") }
スタートアップ時に実行するシェルを作成。
vi apache.sh
!/bin/bash sudo apt-get update && sudo apt -y install apache2 echo '<!doctype html><html><body><h1>Hello if you see this than you have apache running!</h1></body></html>' | sudo tee /var/www/html/index.html
デプロイ。
terraform apply
インスタンスに割り当てられた GIP にアクセスし、下記のような画面が表示されれば Apache へアクセスできている。

ディスカッション
コメント一覧
まだ、コメントがありません