Skip to content

Commit

Permalink
projet fil rouge ok
Browse files Browse the repository at this point in the history
  • Loading branch information
franklinfoko committed Apr 3, 2024
1 parent 9672a86 commit 12f9978
Show file tree
Hide file tree
Showing 6 changed files with 183 additions and 0 deletions.
14 changes: 14 additions & 0 deletions projet-fil-rouge/alb.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Create Load Balancer
resource "aws_elb" "my_elb" {
name = "my-elb"
security_groups = [aws_security_group.my_security_group.id]
subnets = [aws_subnet.public_subnet_1.id, aws_subnet.public_subnet_2.id]
cross_zone_load_balancing = true

listener {
instance_port = 80
instance_protocol = "HTTP"
lb_port = 80
lb_protocol = "HTTP"
}
}
18 changes: 18 additions & 0 deletions projet-fil-rouge/asg.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Create Auto Scaling Group
resource "aws_autoscaling_group" "my_asg" {
name = "my-asg"
min_size = 2
max_size = 3
desired_capacity = 2
vpc_zone_identifier = [aws_subnet.public_subnet_1.id, aws_subnet.public_subnet_2.id]
launch_configuration = aws_launch_configuration.my_lc.name
load_balancers = [aws_elb.my_elb.name]
}

# Create Launch Configuration
resource "aws_launch_configuration" "my_lc" {
name = "my-lc"
image_id = "ami-0d71ca6a78e324f68" # Replace with your desired AMI ID
instance_type = "t3.micro" # Replace with your desired instance type
security_groups = [aws_security_group.my_security_group.id]
}
61 changes: 61 additions & 0 deletions projet-fil-rouge/networks.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
# Create VPC
resource "aws_vpc" "my_vpc" {
cidr_block = "10.0.0.0/16"
}

# Create Internet Gateway
resource "aws_internet_gateway" "my_igw" {
vpc_id = aws_vpc.my_vpc.id
}

# Create Public Subnets
resource "aws_subnet" "public_subnet_1" {
vpc_id = aws_vpc.my_vpc.id
cidr_block = "10.0.1.0/24"
availability_zone = "us-east-1c"
}

resource "aws_subnet" "public_subnet_2" {
vpc_id = aws_vpc.my_vpc.id
cidr_block = "10.0.2.0/24"
availability_zone = "us-east-1b"
}

# Create Private Subnets
resource "aws_subnet" "private_subnet_1" {
vpc_id = aws_vpc.my_vpc.id
cidr_block = "10.0.3.0/24"
availability_zone = "us-east-1c"
}

resource "aws_subnet" "private_subnet_2" {
vpc_id = aws_vpc.my_vpc.id
cidr_block = "10.0.4.0/24"
availability_zone = "us-east-1b"
}

# Create a route table for public subnets
resource "aws_route_table" "public_route_table" {
vpc_id = aws_vpc.my_vpc.id

route {
cidr_block = "0.0.0.0/0"
gateway_id = aws_internet_gateway.my_igw.id
}

tags = {
Name = "PublicRouteTable"
}
}

# Associate the route table with public_subnet_1
resource "aws_route_table_association" "public_subnet_1_association" {
subnet_id = aws_subnet.public_subnet_1.id
route_table_id = aws_route_table.public_route_table.id
}

# Associate the route table with public_subnet_2
resource "aws_route_table_association" "public_subnet_2_association" {
subnet_id = aws_subnet.public_subnet_2.id
route_table_id = aws_route_table.public_route_table.id
}
14 changes: 14 additions & 0 deletions projet-fil-rouge/provider.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
terraform {
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 5.0"
}
}
}

provider "aws" {
region = "us-east-1"
# access_key = "PUT YOUR OWN"
# secret_key = "PUT YOUR OWN"
}
24 changes: 24 additions & 0 deletions projet-fil-rouge/rds.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Create DB Subnet Group
resource "aws_db_subnet_group" "my_db_subnet_group" {
name = "my-db-subnet-group"
subnet_ids = [aws_subnet.private_subnet_1.id, aws_subnet.private_subnet_2.id]

tags = {
Name = "my-db-subnet-group"
}
}

# Create RDS Instance
resource "aws_db_instance" "my_rds" {
identifier = "my-rds"
engine = "mysql"
engine_version = "5.7"
instance_class = "db.t3.micro"
allocated_storage = 20
storage_type = "gp2"
username = "admin"
password = "password"
vpc_security_group_ids = [aws_security_group.rds_security_group.id]
db_subnet_group_name = aws_db_subnet_group.my_db_subnet_group.name
multi_az = true
}
52 changes: 52 additions & 0 deletions projet-fil-rouge/sg.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# Create Security Group for EC2 Instances
resource "aws_security_group" "my_security_group" {
vpc_id = aws_vpc.my_vpc.id

ingress {
from_port = 80
to_port = 80
protocol = "tcp"
cidr_blocks = ["0.0.0.0/0"]
}

ingress {
from_port = 22
to_port = 22
protocol = "tcp"
cidr_blocks = ["0.0.0.0/0"]
}

ingress {
from_port = 3306
to_port = 3306
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"]
}
}

# Create Security Group for RDS Instance
resource "aws_security_group" "rds_security_group" {
vpc_id = aws_vpc.my_vpc.id

# Inbound rule to accept connections from EC2 security group on port 3306
ingress {
from_port = 3306
to_port = 3306
protocol = "tcp"
security_groups = [aws_security_group.my_security_group.id]
}

egress {
from_port = 3306
to_port = 3306
protocol = "tcp"
security_groups = [aws_security_group.my_security_group.id]
}
}

0 comments on commit 12f9978

Please sign in to comment.