diff --git a/main.tf b/main.tf index 9b32ce06bb..6f3e43065f 100644 --- a/main.tf +++ b/main.tf @@ -14,11 +14,80 @@ data "aws_ami" "app_ami" { owners = ["979382823631"] # Bitnami } -resource "aws_instance" "web" { +data "aws_vpc" "defvpc" { + default = true +} + +resource "aws_instance" "blog" { ami = data.aws_ami.app_ami.id - instance_type = "t3.nano" + instance_type = var.instance_type + + #vpc_security_group_ids = [module.xart_blog_secgroup.security_group_id] + vpc_security_group_ids = [resource.aws_security_group.blog.id] + tags = { - Name = "HelloWorld" + Name = "XartTestInstance" } } + +module "xart_blog_secgroup" { + source = "terraform-aws-modules/security-group/aws" + version = "5.3.0" + name = "blog_new" + + vpc_id = data.aws_vpc.defvpc.id + + ingress_rules = ["http-80-tcp","https-443-tcp"] + ingress_cidr_blocks = ["0.0.0.0/0"] + + egress_rules = ["all-all"] + egress_cidr_blocks = ["0.0.0.0/0"] +} + +resource "aws_security_group" "blog" { + name = "blog" + description = "Allow http/https inbound. Allow everything out" + + vpc_id = data.aws_vpc.defvpc.id +} + +resource "aws_security_group_rule" "blog_http_in" { + type = "ingress" + from_port = 80 + to_port = 80 + protocol = "tcp" + cidr_blocks = ["0.0.0.0/0"] + + security_group_id = aws_security_group.blog.id +} + +resource "aws_security_group_rule" "blog_https_in" { + type = "ingress" + from_port = 443 + to_port = 443 + protocol = "tcp" + cidr_blocks = ["0.0.0.0/0"] + + security_group_id = aws_security_group.blog.id +} + +resource "aws_security_group_rule" "ssh_in" { + type = "ingress" + from_port = 22 + to_port = 22 + protocol = "tcp" + cidr_blocks = ["0.0.0.0/0"] + + security_group_id = aws_security_group.blog.id +} + +resource "aws_security_group_rule" "blog_everything_out" { + type = "ingress" + from_port = 0 + to_port = 0 + protocol = "-1" + cidr_blocks = ["0.0.0.0/0"] + + security_group_id = aws_security_group.blog.id +} \ No newline at end of file diff --git a/outputs.tf b/outputs.tf index b35171bef1..7e9410b55c 100644 --- a/outputs.tf +++ b/outputs.tf @@ -1,7 +1,7 @@ -#output "instance_ami" { -# value = aws_instance.web.ami -#} +output "instance_ami" { + value = aws_instance.blog.ami +} -#output "instance_arn" { -# value = aws_instance.web.arn -#} +output "instance_arn" { + value = aws_instance.blog.arn +} diff --git a/variables.tf b/variables.tf index c750667e0f..36cfe64a08 100644 --- a/variables.tf +++ b/variables.tf @@ -1,4 +1,4 @@ -#variable "instance_type" { -# description = "Type of EC2 instance to provision" -# default = "t3.nano" -#} +variable "instance_type" { + description = "Type of EC2 instance to provision" + default = "t3.micro" +}