Tutorial: configure um domínio através do Cloud DNS


Este tutorial explica o processo de registo de um domínio, configuração de um servidor Web de exemplo e utilização do Cloud DNS para direcionar o URL do domínio para o servidor.

Se não conhece o Terraform para o Google Cloud, consulte o artigo Comece a usar o Terraform.

Objetivos

Este tutorial demonstra como concluir as seguintes tarefas:

  • Registe um nome de domínio através do Cloud Domains
  • Crie uma instância de máquina virtual (VM) do Compute Engine
  • Execute um servidor Web Apache básico
  • Configure o seu domínio através do Cloud DNS
  • Atualize os servidores de nomes
  • Valide a configuração

Custos

Existe um custo associado ao registo de um nome de domínio. Para ver os preços do Cloud Domains, consulte a página de preços do Cloud Domains.

Antes de começar

  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. Verify 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. Verify that billing is enabled for your Google Cloud project.

  6. Ative a API Compute Engine.

    Ative a API

Registe um nome de domínio

Se já tiver um domínio registado, ignore esta secção.

Pode usar o Cloud Domains para registar um domínio. O Cloud Domains permite-lhe usar a mesma conta de faturação para o seu domínio que criou na secção Antes de começar. Para ver instruções sobre como registar um domínio através do Cloud Domains, consulte o artigo Registar um domínio.

Crie uma instância de máquina virtual

Consola

Para criar uma instância de máquina virtual (VM) Linux no Compute Engine, siga estas instruções:

  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. No separador Public images, escolha Debian GNU/Linux.
  4. Clique em Selecionar.
  5. Na secção Firewall, selecione Permitir tráfego HTTP.
  6. Para criar a VM, clique em Criar.

Aguarde um curto período para que a instância seja iniciada. Quando a instância estiver pronta, é apresentada na página Instâncias de VM com um ícone de estado verde.

Associe-se à sua instância

  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.

Agora, tem uma janela de terminal para interagir com a sua instância do Linux.

Para ver detalhes, consulte o Guia de início rápido com uma VM Linux.

Execute um servidor Web Apache básico

Nesta secção, vai executar e testar um servidor Web Apache.

  1. Na janela SSH, use o gestor de pacotes Debian para instalar o pacote apache2.

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

    Após a instalação do Apache, o sistema operativo inicia automaticamente o servidor Apache.

  2. Substitua a página Web predefinida do servidor Web Apache com o seguinte comando:

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

Teste o seu servidor

Teste se a sua instância está a publicar tráfego no respetivo endereço IP externo.

Consola

  1. Na Google Cloud consola, aceda à página Instâncias de VM.

    Aceda às instâncias de VM

  2. Na coluna IP externo, copie o endereço IP externo da sua instância.
  3. Num navegador, navegue para http://[EXTERNAL_IP]. Não use https para se ligar, porque o servidor devolve um erro Connection Refused.

Agora, deve ver a página Olá mundo!.

Para mais detalhes, consulte o artigo Executar um servidor Web Apache básico.

Configure o seu domínio através do Cloud DNS

Se estiver a migrar de um fornecedor existente, pode importar as suas zonas existentes para o Cloud DNS. Para ver instruções, consulte o artigo Exporte a configuração de DNS do seu fornecedor atual. Caso contrário, siga estes passos para criar uma nova zona pública.

Consola

  1. Na Google Cloud consola, aceda à página Criar uma zona DNS.

    Aceda a Crie uma zona DNS

  2. Para o Tipo de zona, selecione Público.

  3. Para o Nome da zona, introduza my-new-zone.

  4. Para o Nome DNS, introduza um sufixo de nome DNS para a zona usando um nome de domínio que registou (por exemplo, example.com).

  5. Para DNSSEC, certifique-se de que a definição Off está selecionada.

  6. Clique em Criar para criar uma zona preenchida com os registos NS e SOA.

  7. Para direcionar o nome de domínio registado para o endereço IP do servidor de alojamento, tem de adicionar um registo A à sua zona:

    1. Na página Detalhes da zona, clique em Adicionar padrão.
    2. Selecione A no menu Resource Record Type.
    3. Para Endereço IPv4, introduza o endereço IP externo da sua instância.
    4. Clique em Criar para criar o registo A para a sua zona.
  8. Opcional: adicione um registo CNAME para ter em conta um prefixo no seu nome de domínio (por exemplo, www.):

    1. Clique em Adicionar padrão.
    2. No campo Nome DNS, adicione o prefixo www para o domínio.
    3. Para Tipo de registo de recursos, escolha CNAME.
    4. Em Nome canónico, introduza o nome do domínio, seguido de um ponto (por exemplo, example.com.).
    5. Clique em Criar.

Atualize os servidores de nomes

Para atualizar os servidores de nomes no Cloud Domains, siga estes passos:

  1. Na Google Cloud consola, aceda à página Cloud Domains.

    Aceda ao Cloud Domains

  2. Clique no nome do domínio que quer editar. Também pode clicar em Mais junto ao nome do domínio para ver o menu de edição.

  3. Para editar os detalhes de DNS, clique em Editar detalhes de DNS.

  4. Selecione Usar DNS na nuvem (recomendado).

  5. Na lista Zona do Cloud DNS, selecione my-new-zone.

  6. Clique em Guardar.

Terraform

Pode usar recursos do Terraform para criar uma instância de máquina virtual (VM), executar um servidor Web Apache, configurar o seu domínio através do Cloud DNS e atualizar servidores de nomes.

Também pode usar o módulo Terraform para configurar o Cloud DNS com zonas públicas, privadas, de intercâmbio ou de encaminhamento. Para mais informações sobre as zonas, consulte a vista geral das zonas de 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
  ]
}

Valide a configuração

Para verificar se a configuração está a funcionar, depois de os servidores de nomes serem atualizados, navegue para o nome do seu domínio (por exemplo, example.com). O domínio deve ser resolvido para o seu endereço IP e deve apontar para a VM do Compute Engine que apresenta a página Hello World! que criou em Execute um servidor Web Apache básico.

Para verificar se a configuração está correta, também pode executar o comando dig +trace example.com na janela do terminal. Substitua example.com pelo nome do domínio registado.

dig +trace example.com

O final do resultado deve incluir o seguinte. IP_ADDRESS é o endereço IP do seu 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 se as alterações foram bem-sucedidas, execute o seguinte comando:

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

Depois de aguardar a propagação do DNS para concluir, também pode executar o comando nslookup para validar a configuração:

nslookup example.com

O resultado deve incluir o seguinte. IP_ADDRESS é o endereço IP do seu servidor Web.

Server:     127.0.0.1
Address:    127.0.0.1#53

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

Limpar

Consola

  1. Na Google Cloud consola, aceda à página Zonas de DNS na nuvem.

    Aceda às zonas do Cloud DNS

  2. Clique no nome de uma zona (por exemplo, my-new-zone) para aceder à página Detalhes da zona.

  3. Selecione os registos A e CNAME que criou.

  4. Clique em Eliminar conjuntos de registos.

  5. Para eliminar a zona, clique em Eliminar zona para o nome da zona my-new-zone.

  6. Aceda à página Instâncias de VM.

    Aceder às instâncias de VM

  7. Selecione a instância que quer eliminar.

  8. No menu Mais na linha da instância, clique em Eliminar.

O que se segue?