Terraformを使ってAWS EC2インスタンスを1台起動する方法について説明します。以下の手順に従って、Terraform設定ファイルを作成し、EC2インスタンスを起動してください。
前提条件
- AWSアカウントを持っていること
- AWS CLIがインストールされており、適切なアクセスキーとシークレットキーが設定されていること
- Terraformがインストールされていること
手順
- ワーキングディレクトリの作成:
任意の場所に新しいディレクトリを作成し、そのディレクトリに移動します。
mkdir ec2-instance
cd ec2-instance
provider.tf
ファイルの作成:
以下の内容で新しいファイル provider.tf
を作成し、AWSプロバイダを設定します。適切なリージョン(例:us-west-2
)を指定してください。
provider "aws" {
region = "us-west-2"
}
main.tf
ファイルの作成:
以下の内容で新しいファイル main.tf
を作成し、EC2インスタンスを起動するリソースを設定します。適切なAMI IDとインスタンスタイプを指定してください。
resource "aws_instance" "example" {
ami = "ami-0c94855ba95b798c7" # このAMI IDはAmazon Linux 2の例です。適切なAMI IDを指定してください。
instance_type = "t2.micro"
tags = {Name = "example-instance"
}
}
- 初期化と実行計画の作成:
コマンドプロンプトまたはPowerShellウィンドウで以下のコマンドを実行して、Terraformを初期化し、実行計画を作成します。
terraform init
terraform plan
- EC2インスタンスの起動:
以下のコマンドを実行して、EC2インスタンスを起動します。
terraform apply
terraform apply
コマンドを実行すると、確認プロンプトが表示されます。yes
と入力してEnterキーを押すと、EC2インスタンスが起動されます。
- EC2インスタンスの削除 (オプション):
EC2インスタンスを削除したい場合は、以下のコマンドを実行してください。
terraform destroy
これで、Terraformを使ってEC2インスタンスを1台起動する方法が分かりました。上記の設定ファイルやコマンドを参考にして、自分の環境に合わせ
てカスタマイズすることができます。たとえば、VPCやセキュリティグループ、キーペアなどの追加リソースを構成して、インフラストラクチャのセットアップをさらに詳細に行うことができます。
以下に、VPC、サブネット、セキュリティグループ、キーペアを追加する例を示します。main.tf
ファイルを以下のように更新してください。
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
コマンドを再度実行して、インフラストラクチャを作成または更新してください。