概要
やりたいこと
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 へアクセスできている。
コメント