[A-00144]TerraformでEC2を作成してみる
terraformを使ってaws上にec2インスタンスを作成したいと思います。
awsでterraformを利用できるようにする設定はこちら
・Terraformの作成/実行
provider "aws" {
    region = "ap-northeast-1"
}resource "aws_vpc" "default" {
    cidr_block ="10.0.0.0/16"
    enable_dns_hostnames = true
}
resource "aws_subnet" "default" {
    vpc_id = aws_vpc.default.id
    cidr_block = "10.0.1.0/24"
    availability_zone = "ap-northeast-1a"
    map_public_ip_on_launch = true
}
resource "aws_internet_gateway" "default" {
    vpc_id = aws_vpc.default.id
}
resource "aws_route_table" "default" {
    vpc_id = aws_vpc.default.id
    
    route {
        cidr_block = "0.0.0.0/0"
        gateway_id = aws_internet_gateway.default.id
    }
}
resource "aws_route_table_association" "default" {
    subnet_id = aws_subnet.default.id
    route_table_id = aws_route_table.default.id
}
resource "aws_security_group" "default" {
    name = "test-sg"
    vpc_id = aws_vpc.default.id
    
    ingress {
        from_port = 80
        to_port = 80
        protocol = "tcp"
        cidr_blocks = ["0.0.0.0/0"]
    }
    
    egress {
        from_port = 0
        to_port = 0
        protocol = "-1"
        cidr_blocks = ["0.0.0.0/0"]
    }
}resource "aws_instance" "default" {
    ami = "ami-09d28faae2e9e7138"
    instance_type = "t2.micro"
    subnet_id = aws_subnet.default.id
    vpc_security_group_ids = [aws_security_group.default.id]
    
    user_data = <<EOF
    #!/bin/bash
    sudo yum install -y httpd
    sudo systemctl start httpd
    sudo systemctl enable httpd
    EOF
}上記ファイルを作成した下記のterraformコマンドを実行します。
terraform init
terraform plan
terraform apply完了後、下記のようにEC2インスタンスが作成されます。

確認が完了したら後片付けをします。
terraform destroy・Appendix
参考文献はこちら
https://blog.dcs.co.jp/aws/20210401-terraformaws.html
コメントを残す