Instructivo: Configurar un dominio con Cloud DNS


En este instructivo, se proporciona una explicación del proceso para registrar un dominio, configurar un servidor web de muestra y usar Cloud DNS a fin de apuntar la URL del dominio hacia el servidor.

Si es la primera vez que usas Terraform para Google Cloud, consulta Comienza a usar Terraform.

Objetivos

En este instructivo, se muestra cómo completar las siguientes tareas:

  • Registra un nombre de dominio con Cloud Domains
  • Crea una instancia de máquina virtual (VM) de Compute Engine
  • Ejecutar un Apache Web Server básico
  • Configurar tu dominio con Cloud DNS
  • Actualiza los servidores de nombres
  • Verificar tu configuración

Costos

Hay un costo asociado con el registro de un nombre de dominio. Para conocer los precios de Cloud Domains, consulta los precios de Cloud Domains.

Antes de comenzar

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Make sure that billing is enabled for your Google Cloud project.

  6. Habilita la API de Compute Engine.

    Habilitación de la API

Registrar un nombre de dominio

Si ya tienes un dominio registrado, omite esta sección.

Puedes usar Cloud Domains para registrar un dominio. Cloud Domains te permite usar la misma cuenta de facturación para tu dominio que creaste en la sección Antes de comenzar. Si deseas obtener instrucciones para registrar un dominio con Cloud Domains, consulta Registra un dominio.

Crea una instancia de máquina virtual

Console

Para crear una instancia de máquina virtual (VM) de Linux en Compute Engine, sigue estas instrucciones:

  1. In the Google Cloud console, go to the Create an instance page.

    Go to Create an instance

  2. In the Boot disk section, click Change to begin configuring your boot disk.
  3. En la pestaña Public images, selecciona Debian GNU/Linux.
  4. Haz clic en Seleccionar.
  5. En la sección Firewall, selecciona Permitir tráfico HTTP.
  6. Para crear la VM, haz clic en Crear.

Espera un momento hasta que se inicie la instancia. Una vez que la instancia esté lista, se mostrará en la página Instancias de VM con un ícono de estado verde.

Conéctate a la instancia

  1. In the Google Cloud console, go to the VM instances page.

    Go to VM instances

  2. In the list of virtual machine instances, click SSH in the row of the instance that you want to connect to.

    SSH button next to instance name.

Ahora tienes una ventana de la terminal para interactuar con tu instancia de Linux.

Para obtener detalles, consulta Guía de inicio rápido para usar una VM de Linux.

Ejecutar un Apache Web Server básico

En esta sección, ejecutarás y probarás un servidor web Apache.

  1. Desde la ventana de SSH, usa el administrador de paquetes de Debian para instalar el paquete apache2.

     sudo apt-get update && sudo apt-get install apache2 -y
     

    Después de instalar Apache, el sistema operativo inicia el servidor Apache de forma automática.

  2. Reemplaza la página web predeterminada del servidor web Apache con el siguiente comando:

     echo "<!doctype html><html><body><h1>Hello World!</h1></body></html>" 
    | sudo tee /var/www/html/index.html

Probar el servidor

Verifica que tu instancia entregue tráfico en su IP externa.

Console

  1. En la consola de Google Cloud, ve a la página Instancias de VM.

    Ir a Instancias de VM

  2. En la columna IP externa, copia la dirección IP externa para la instancia.
  3. En el navegador, ve a http://[EXTERNAL_IP]. No uses https para conectarte porque el servidor mostrará un error Connection Refused.

Ahora, deberías ver la página Hello World!.

Para obtener más detalles, consulta la sección para ejecutar un servidor web Apache básico.

Configurar tu dominio con Cloud DNS

Si migras desde un proveedor existente, puedes importar tus zonas existentes a Cloud DNS. Para obtener instrucciones, consulta Exporta tu configuración de DNS desde tu proveedor existente. De lo contrario, sigue estos pasos para crear una zona pública nueva.

Console

  1. En la consola de Google Cloud, ve a la página Crear una zona del DNS.

    Ir a Crear una zona de DNS

  2. En Tipo de zona, selecciona Público.

  3. En Nombre de zona, ingresa my-new-zone.

  4. En Nombre de DNS, ingresa un sufijo de nombre de DNS para la zona. Para ello, usa un nombre de dominio que hayas registrado (por ejemplo, example.com).

  5. En DNSSEC, asegúrate de que esté seleccionada la configuración Off.

  6. Haz clic en Crear para crear una zona propagada con los registros NS y SOA.

  7. Para apuntar el nombre de dominio registrado a la dirección IP del servidor de hosting, debes agregar un registro A a tu zona:

    1. En la página Detalles de la zona, haz clic en Agregar estándar.
    2. Selecciona A en el menú Tipo de registro del recurso.
    3. En Dirección IPv4, ingresa la dirección IP externa de tu instancia.
    4. Haz clic en Crear a fin de crear el registro A para su zona.
  8. Agrega un registro CNAME si deseas dar cuenta de un prefijo para tu nombre de dominio (por ejemplo, www.) (opcional).

    1. Haz clic en Agregar estándar.
    2. En el campo Nombre de DNS, agrega el prefijo www para el dominio.
    3. En Tipo de registro de recursos, selecciona CNAME.
    4. En Nombre canónico, ingresa el nombre de dominio, seguido de un punto (por ejemplo, example.com.).
    5. Haz clic en Crear.

Actualiza los servidores de nombres

Para actualizar los servidores de nombres en Cloud Domains, sigue estos pasos:

  1. En la consola de Google Cloud, ve a la página de Cloud Domains.

    Ir a Cloud Domains

  2. Haz clic en el nombre de dominio que deseas editar. También puedes hacer clic en Más junto al nombre del dominio para ver el menú de edición.

  3. Para editar los detalles del DNS, haz clic en Editar detalles de DNS.

  4. Selecciona Usar Cloud DNS (recomendado).

  5. En la lista Zona de Cloud DNS, selecciona my-new-zone.

  6. Haz clic en Guardar.

Terraform

Puedes usar recursos de Terraform para crear una instancia de máquina virtual (VM), ejecutar un servidor web Apache, configurar tu dominio con Cloud DNS y actualizar los servidores de nombres.

También puedes usar el módulo de Terraform para configurar Cloud DNS con zonas públicas, privadas, de intercambio de tráfico o de reenvío. Para obtener más información sobre las zonas, consulta la descripción general de las zonas del DNS.

# to setup a web-server

resource "random_id" "rnd" {
  byte_length = 4
}

resource "google_compute_instance" "default" {
  name         = "dns-compute-instance"
  machine_type = "g1-small"
  zone         = "us-central1-b"

  boot_disk {
    initialize_params {
      image = "debian-cloud/debian-11"
    }
  }

  network_interface {
    network = "default"
    access_config {
      // Ephemeral public IP
    }
  }
  metadata_startup_script = <<-EOF
  sudo apt-get update && \
  sudo apt-get install apache2 -y && \
  echo "<!doctype html><html><body><h1>Hello World!</h1></body></html>" > /var/www/html/index.html
  EOF
}

# to allow http traffic
resource "google_compute_firewall" "default" {
  name    = "allow-http-traffic"
  network = "default"
  allow {
    ports    = ["80"]
    protocol = "tcp"
  }
  source_ranges = ["0.0.0.0/0"]
}

# to create a DNS zone
resource "google_dns_managed_zone" "default" {
  name          = "example-zone-googlecloudexample"
  dns_name      = "example-${random_id.rnd.hex}.com."
  description   = "Example DNS zone"
  force_destroy = "true"
}

# to register web-server's ip address in DNS
resource "google_dns_record_set" "default" {
  name         = google_dns_managed_zone.default.dns_name
  managed_zone = google_dns_managed_zone.default.name
  type         = "A"
  ttl          = 300
  rrdatas = [
    google_compute_instance.default.network_interface[0].access_config[0].nat_ip
  ]
}

Verifica la configuración

Para verificar que tu configuración funcione, después de que se actualicen los servidores de nombres, navega a tu nombre de dominio (por ejemplo, example.com). El dominio debe resolverse en tu dirección IP y debe apuntar a la VM de Compute Engine que muestra la página Hello World! que creaste en Ejecuta un servidor web Apache básico.

Para verificar que tu configuración sea correcta, también puedes ejecutar el comando dig +trace example.com en la ventana de la terminal. Reemplaza example.com por tu nombre de dominio registrado.

dig +trace example.com

El final del resultado debe incluir lo siguiente. IP_ADDRESS es la dirección IP de tu servidor web.

example.com.    300 IN  A   IP_ADDRESS
;; Received 62 bytes from 216.239.34.109#53(ns-cloud-d2.googledomains.com) in 62 ms

Para verificar que los cambios se hayan realizado correctamente, ejecuta el siguiente comando:

example.com IN NS <your Cloud DNS name servers>

Después de esperar a que se complete la propagación de DNS, también puedes ejecutar el comando nslookup para verificar la configuración:

nslookup example.com

El resultado debe incluir lo siguiente. IP_ADDRESS es la dirección IP de tu servidor web.

Server:     127.0.0.1
Address:    127.0.0.1#53

Non-authoritative answer:
Name:   example.com
Address: IP_ADDRESS

Limpia

Console

  1. En la consola de Google Cloud, ve a la página Zonas de Cloud DNS.

    Ir a Zonas de Cloud DNS

  2. Haz clic en el nombre de una zona (por ejemplo, my-new-zone) para acceder a la página Detalles de la zona.

  3. Selecciona los registros A y CNAME que creaste.

  4. Haz clic en Borrar conjuntos de registros.

  5. Si deseas borrar la zona, haz clic en Borrar zona  para el nombre de la zona my-new-zone.

  6. Ve a la página Instancias de VM.

    Ir a Instancias de VM

  7. Selecciona la instancia que deseas borrar.

  8. En el menú Más  en la fila de la instancia, haz clic en Borrar.

¿Qué sigue?