TFG
Daniel Quiles
Created on June 12, 2023
Over 30 million people create interactive content in Genially.
Check out what others have designed:
TRUE FALSE GEOGRAPHY
Quizzes
ENGLISH SCHOOL VOCABULARY
Quizzes
PARTS OF SPEECH REVIEW
Quizzes
ANIMALS BY CATEGORY
Quizzes
DRACULA ESL
Quizzes
MODALS 1 BACH MARIO GAME
Quizzes
RECYCLING SORTING GAME
Quizzes
Transcript
start>
TFG Daniel Quiles Berber
Terraform AWS
>
<
Diseño del proyecto y definicion de las partes
provider "aws" {region = "us-east-1" allowed_account_ids = ["ID_cuenta"] profile ="perfil"} resource "aws_vpc" "vpc" { cdir_block = "${var.cidr}" enable_dns_hostnames = true enable_dns_support = true tags = {name = "MiNube"}}
Crear codigo
resource "aws_security_group" "www" {name = "sec-grup" vpc_id = "${aws_vpc.vpc.id}" ingress { from_port = 80 #Puerto de inicio protocol = "tcp" #Portocolo to_port = 80 #Puerto de rango final cidr_blocks = ["0.0.0.0/0"] } ingress { from_port = 443 #Puerto de inicio protocol = "tcp" #Portocolo to_port = 443 #Puerto de rango final cidr_blocks = ["0.0.0.0/0"] } egress { from_port = 0 protocol = "-1" to_port = 0 cidr_blocks = ["0.0.0.0/0"] } }
Crear codigo
resource "aws_subnet" "pub1" {cidr_block = "${var.pub1_cidr}" #10.2.0.0/24 vpc_id = "${aws_vpc.vpc.id}" map_public_ip_on_launch = true #Para proporcionar a las instancias una ip publica tags= { Name = "pub1" } }
Crear codigo
resource "aws_internet_gateway" "gw" { vpc_id = "${aws_vpc.vpc.id}" }
Crear codigo
resource "aws_route_table" "example" { vpc_id = "${aws_vpc.vpc.id}" route { cidr_block = "0.0.0.0/0" gateway_id = "${aws_internet_gateway.gw.id}" } tags = {Name = "example" } }resource "aws_route_table_association" "a" { subnet_id = aws_subnet.pub1.id route_table_id = aws_route_table.example.id }
Crear codigo
resource "aws_instance" "Ubuntu" {ami = "${data.aws_ami.ubuntu.id}" #que sistema tendra la instancia instance_type = "t2.micro" user_data = "${data.template_file.userdata.rendered}" #asocimos la "plantilla" subnet_id = "${aws_subnet.pub1.id}" depends_on = [ aws_internet_gateway.gw ] vpc_security_group_ids = [aws_security_group.www.id] tags = { Name="equipo1" } }
Crear codigo
data "aws_ami" "ubuntu" { most_recent = true #Si se devuelve más de un resultado, utilice la AMI más reciente. filter { name = "name" values = ["ubuntu/images/hvm-ssd/ubuntu-focal-20.04-amd64-server-*"] } filter { name = "virtualization-type" values = ["hvm"] } #Quien es el propietario de la ami owners = ["099720109477"] # Canonical }
Crear codigo
data "template_file" "userdata" { #Donde esta el archivo template = "${file("./template/Server-web.tpl")}" vars={ #la definicion de la variable puesta en el archivo server-web = "nginx" } }
#!/bin/bash #Esto es para actualizar la instancia de ubuntu sudo apt update && sudo apt upgrade -y #Aqui se instala el servicio de nginx sudo apt install ${server-web} -y #modificar el cortafuegos de ubuntu sudo ufw allow 'Nginx HTTP' #Aqui levantamos el servicio por si no lo esta al instalar sudo systemctl start ${server-web}
Crear codigo
resource "aws_network_interface" "test" { subnet_id = aws_subnet.pub1.id #inicamos la subred security_groups = [aws_security_group.www.id] #indicamos el grupo de seguridad } resource "aws_eip" "lb" { instance = aws_instance.Ubuntu.id #Indicamos la instancia domain = "vpc" #que estara en la VPC depends_on = [ aws_internet_gateway.gw ] #Indicamos el Gatewey associate_with_private_ip = aws_instance.Ubuntu.private_ip }
Crear codigo
>
<
Demostración