TOPTerraform + AWSでLaravel環境を構築する③ - EC2編

2026/06/18

Terraform + AWSでLaravel環境を構築する③ - EC2編

環境構築AWS CLIAWSTerraform
Terraform + AWSでLaravel環境を構築する③ - EC2編
広告準備中

Terraformを使用してEC2を追加してみます。

前回までの記事はこちら

Terraform + AWSでLaravel環境を構築する① - 初期設定・ネットワーク編

Terraform + AWSでLaravel環境を構築する② - セキュリティグループ編

EC2に接続するためのキーペアの作成

まずはSSH接続のためのキーペアを作成します。

ssh-keygen -t ed25519 -f "$env:USERPROFILE\.ssh\practice-key"

パスフレーズを設定すると公開鍵と秘密鍵が作成されます。

キーペアの登録

TerraformでAWSにキーペアを登録します。

pathexpand("~")を使うと OS に関係なくホームディレクトリを解決してくれるため、Windows でも動作します。

resource "aws_key_pair" "main" {
  key_name   = "practice-key"
  public_key = file("${pathexpand("~")}/.ssh/practice-key.pub")
}

EC2インスタンスの作成

無料枠でも使用できるように設定します。

SSH接続のためにIPアドレスを出力するようにしておきます。

resource "aws_instance" "web" {
  ami                    = "ami-0d52744d6551d851e" # Amazon Linux 2023 (ap-northeast-1)
  instance_type          = "t2.micro"
  subnet_id              = aws_subnet.public_1a.id
  vpc_security_group_ids = [aws_security_group.web.id]
  key_name               = aws_key_pair.main.key_name
 
  tags = {
    Name = "practice-web"
  }
}
 
# IPアドレスの出力
output "web_public_ip" {
  value = aws_instance.web.public_ip
}

実行する

今まで通りterraformコマンドで実行します。

# フォーマット
terraform fmt
 
# 実行計画の確認
terraform plan
 
# 実行
terraform apply

作成できたらOKです!

SSHで接続してする

作成できたらSSHで接続してみます。

ssh -i ~/.ssh/practice-key ubuntu@52.192.11.250

さきほど入力したパスワードを入力してサーバーにアクセスできたらOKです!

接続時に秘密鍵への権限エラーが出たときは鍵の権限を変更してみてください。

以下のサイトが参考になりました。

https://qiita.com/eltociear/items/02e8b1f5590b49eb9d87

まとめ

EC2インスタンスの追加までできました!

次はRDSを追加していこうと思います。