mirror of
https://github.com/bregman-arie/devops-exercises.git
synced 2026-02-05 08:09:13 +00:00
Added Solution for AWS - Launch EC2 Web Instance Using Terraform (#10260)
Co-authored-by: Kranthi <devarapallykranthikumar@gmail.com>
This commit is contained in:
parent
4425b6a325
commit
9e89d10b61
@ -37,3 +37,58 @@ echo "<h1>I made it! This is is awesome!</h1>" > /var/www/html/index.html
|
|||||||
9. In the security group section, add a rule to accept HTTP traffic (TCP) on port 80 from anywhere
|
9. In the security group section, add a rule to accept HTTP traffic (TCP) on port 80 from anywhere
|
||||||
10. Click on "Review" and then click on "Launch" after reviewing.
|
10. Click on "Review" and then click on "Launch" after reviewing.
|
||||||
11. If you don't have a key pair, create one and download it.
|
11. If you don't have a key pair, create one and download it.
|
||||||
|
|
||||||
|
12. ### Solution using Terraform
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
provider "aws" {
|
||||||
|
region = "us-east-1" // Or your desired region
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_instance" "web_server" {
|
||||||
|
ami = "ami-12345678" // Replace with the correct AMI for Amazon Linux 2
|
||||||
|
instance_type = "t2.micro" // Or any instance type with 1 vCPU and 1 GiB memory
|
||||||
|
|
||||||
|
tags = {
|
||||||
|
Name = "web-1"
|
||||||
|
Type = "web"
|
||||||
|
}
|
||||||
|
|
||||||
|
root_block_device {
|
||||||
|
volume_size = 8 // Or any desired size
|
||||||
|
delete_on_termination = true
|
||||||
|
}
|
||||||
|
|
||||||
|
provisioner "remote-exec" {
|
||||||
|
inline = [
|
||||||
|
"sudo yum update -y",
|
||||||
|
"sudo yum install -y httpd",
|
||||||
|
"sudo systemctl start httpd",
|
||||||
|
"sudo bash -c 'echo \"I made it! This is awesome!\" > /var/www/html/index.html'",
|
||||||
|
"sudo systemctl enable httpd"
|
||||||
|
]
|
||||||
|
|
||||||
|
connection {
|
||||||
|
type = "ssh"
|
||||||
|
user = "ec2-user"
|
||||||
|
private_key = file("~/.ssh/your_private_key.pem") // Replace with the path to your private key
|
||||||
|
host = self.public_ip
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
security_group_ids = [aws_security_group.web_sg.id]
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_security_group" "web_sg" {
|
||||||
|
name = "web_sg"
|
||||||
|
description = "Security group for web server"
|
||||||
|
|
||||||
|
ingress {
|
||||||
|
from_port = 80
|
||||||
|
to_port = 80
|
||||||
|
protocol = "tcp"
|
||||||
|
cidr_blocks = ["0.0.0.0/0"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
Loading…
x
Reference in New Issue
Block a user