[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

https://kacfg.com/terraform-vpc-ec2/

https://qiita.com/tk_tatsuro/items/ef71d9c2c42b6257d55e

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

*