誰でもわかる!Terraform+AWSでhttpdサーバーを建てる方法

今回やること

今回はterraformでwebサーバーを建てるよ


    • 今日はterraformでwebサーバーを立ち上げるよ
    • terraformって何?
    • terraformはterraform applyって押すだけで簡単にwebサービスとかアプリが作れちゃうすごいシステムだよ。
    • ちなみにterraformだけだと無料だよ
    • 無料でアプリが作れちゃうの!?
    • もちろんサーバー代はかかるけど。
    • サーバーを建てる手間を省いてくれるシステムが無料ってことね...

terraform+AWSでwebサーバーを立ち上げる方法

手順は三つある


    • terraformを使用してwebサーバーを立ち上げるには、 主に次の3つの手順が必要だよ
    • 手順が三つもあるのか...
    • それだけじゃなくてクラウドベンダーを用意する必要もあるよ。
    • クラウドベンダーはAWSとかGoogle Cloud Platformとかでっかい企業がやっているお金を払ってクラウド上にあるPCを借りるビジネスモデルの企業だよ
    • 個人レベルでもお金とクレジットカードが必要なのね...

terraformを使用してwebサーバーを立ち上げる方法は以下の通りです

  1. Terraformのインストールと設定
  2. クラウドプロバイダー(例:AWS、Azure、Google Cloud)の認証情報の設定
  3. インスタンスを作成するためのTerraformコードの記述

terraform+AWSでwebサーバーを立ち上げるコード


    • それじゃあ実際にコードを書いていくよ
    • 内容がよくわからない人はコードをそのままコピーするだけでいいからね

# Terraformの初期設定
terraform init

# AWSのリソースを作成するためのコード
provider "aws" {
  region = "us-west-2" # インスタンスを立ち上げるリージョン
}

resource "aws_instance" "example" {
  ami           = "ami-0c94855ba95c71c99" # AMI ID(Amazon Linux 2)
  instance_type = "t2.micro"             # インスタンスタイプ
  key_name      = "example_key"          # SSHキーの名前
  subnet_id     = "subnet-0123456789abcdef" # インスタンスを立ち上げるサブネットのID

  # セキュリティグループの設定
  security_groups = ["example_security_group"]

  # ユーザーデータにApacheをインストールするスクリプトを指定
  user_data = <<-EOF
              #!/bin/bash
              sudo yum update -y
              sudo yum install -y httpd
              sudo systemctl start httpd
              sudo systemctl enable httpd
              EOF

  # インスタンスにタグを付ける
  tags = {
    Name = "example-instance"
  }
}

コードの実行時に注意するべき点


    • さっきのコードを~~~.tfファイルを作成して実行してね。
    • ここは任意のファイル名でいいけど.tfは守らないとね
    • 実行する際にはterraform initで初期化をした後、terraform planを実行してエラーが出ないか確認、最後にterraform applyでサーバーを立ち上げるのよ
    • 3ステップでサーバーが立ち上がるのね。
    • サーバーを立ち上げる際、~/.aws/configAWSのアクセスキーを書いておくと、terraformに何かを聞かれずに構築できるよ

まとめ

terraformを使用してwebサーバーを立ち上げる方法は以下の通りです

  1. Terraformのインストールと設定
  2. クラウドプロバイダー(例:AWS、Azure、Google Cloud)の認証情報の設定
  3. インスタンスを作成するためのTerraformコードの記述