vpc.tf 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. // Recurso principal para redes
  2. resource "aws_vpc" "tut-vpc" {
  3. assign_generated_ipv6_cidr_block = true
  4. cidr_block = "10.0.0.0/16"
  5. enable_dns_hostnames = true
  6. enable_dns_support = true
  7. tags = {
  8. Name = "Tutorial"
  9. }
  10. }
  11. // Puerta de enlace para salida a Internet
  12. // Se adjunta a la VPC
  13. resource "aws_internet_gateway" "tut-gateway" {
  14. vpc_id = aws_vpc.tut-vpc.id
  15. tags = {
  16. Name = "Tutorial"
  17. }
  18. }
  19. // Sub-red para instancias
  20. // Se adjunta a la VPC
  21. // Se definen sus direcciones
  22. resource "aws_subnet" "tut-subnet-1" {
  23. assign_ipv6_address_on_creation = true
  24. availability_zone = "us-west-2a"
  25. cidr_block = cidrsubnet(aws_vpc.tut-vpc.cidr_block, 8, 1)
  26. ipv6_cidr_block = cidrsubnet(aws_vpc.tut-vpc.ipv6_cidr_block, 8, 1)
  27. map_public_ip_on_launch = true
  28. vpc_id = aws_vpc.tut-vpc.id
  29. tags = {
  30. Name = "Tutorial"
  31. }
  32. }
  33. // Rutas para salida a Internet
  34. // Toma por defecto la tabla predefinida en la VPC
  35. resource "aws_default_route_table" "tut-routes" {
  36. default_route_table_id = aws_vpc.tut-vpc.default_route_table_id
  37. route {
  38. cidr_block = "0.0.0.0/0"
  39. gateway_id = aws_internet_gateway.tut-gateway.id
  40. }
  41. route {
  42. ipv6_cidr_block = "::/0"
  43. gateway_id = aws_internet_gateway.tut-gateway.id
  44. }
  45. tags = {
  46. Name = "Tutorial"
  47. }
  48. }
  49. // Adjunta las rutas par salida a Internet en la sub-red
  50. resource "aws_route_table_association" "tut-route-1" {
  51. subnet_id = aws_subnet.tut-subnet-1.id
  52. route_table_id = aws_default_route_table.tut-routes.id
  53. }