Terraformを使ってAWS EC2インスタンスを1台起動する方法について説明します。以下の手順に従って、Terraform設定ファイルを作成し、EC2インスタンスを起動してください。

前提条件

  1. AWSアカウントを持っていること
  2. AWS CLIがインストールされており、適切なアクセスキーとシークレットキーが設定されていること
  3. Terraformがインストールされていること

手順

  1. ワーキングディレクトリの作成:

任意の場所に新しいディレクトリを作成し、そのディレクトリに移動します。

bash
mkdir ec2-instance
cd ec2-instance
  1. provider.tfファイルの作成:

以下の内容で新しいファイル provider.tf を作成し、AWSプロバイダを設定します。適切なリージョン(例:us-west-2)を指定してください。

hcl
provider "aws" {
region = "us-west-2"
}
  1. main.tfファイルの作成:

以下の内容で新しいファイル main.tf を作成し、EC2インスタンスを起動するリソースを設定します。適切なAMI IDとインスタンスタイプを指定してください。

hcl
resource "aws_instance" "example" {
ami = "ami-0c94855ba95b798c7" # このAMI IDはAmazon Linux 2の例です。適切なAMI IDを指定してください。
instance_type = "t2.micro"
tags = {
Name = "example-instance"
}
}

  1. 初期化と実行計画の作成:

コマンドプロンプトまたはPowerShellウィンドウで以下のコマンドを実行して、Terraformを初期化し、実行計画を作成します。

bash
terraform init
terraform plan
  1. EC2インスタンスの起動:

以下のコマンドを実行して、EC2インスタンスを起動します。

bash
terraform apply

terraform applyコマンドを実行すると、確認プロンプトが表示されます。yesと入力してEnterキーを押すと、EC2インスタンスが起動されます。

  1. EC2インスタンスの削除 (オプション):

EC2インスタンスを削除したい場合は、以下のコマンドを実行してください。

bash
terraform destroy

これで、Terraformを使ってEC2インスタンスを1台起動する方法が分かりました。上記の設定ファイルやコマンドを参考にして、自分の環境に合わせ

てカスタマイズすることができます。たとえば、VPCやセキュリティグループ、キーペアなどの追加リソースを構成して、インフラストラクチャのセットアップをさらに詳細に行うことができます。

以下に、VPC、サブネット、セキュリティグループ、キーペアを追加する例を示します。main.tf ファイルを以下のように更新してください。

hcl
resource "aws_vpc" "example" {
cidr_block = "10.0.0.0/16"
tags = {
Name = "example-vpc"
}
}

resource "aws_subnet" "example" {
vpc_id = aws_vpc.example.id
cidr_block = "10.0.1.0/24"

tags = {
Name = "example-subnet"
}
}

resource "aws_security_group" "example" {
name = "example"
description = "Example security group"
vpc_id = aws_vpc.example.id

ingress {
from_port = 22
to_port = 22
protocol = "tcp"
cidr_blocks = ["0.0.0.0/0"] }
}

resource "aws_key_pair" "example" {
key_name = "example-key"
public_key = file("<path-to-your-public-key>.pub")
}

resource "aws_instance" "example" {
ami = "ami-0c94855ba95b798c7" # このAMI IDはAmazon Linux 2の例です。適切なAMI IDを指定してください。
instance_type = "t2.micro"

subnet_id = aws_subnet.example.id
vpc_security_group_ids = [aws_security_group.example.id] key_name = aws_key_pair.example.key_name

tags = {
Name = "example-instance"
}
}

この設定ファイルは、VPC、サブネット、セキュリティグループ、およびキーペアを含むインフラストラクチャを作成します。ファイルを更新したら、terraform init(新しいリソースが追加された場合)、terraform plan、およびterraform applyコマンドを再度実行して、インフラストラクチャを作成または更新してください。

記事タイトル検索