Tutorial: configurar um domínio usando o Cloud DNS


Neste tutorial, você vai aprender a registrar um domínio, configurar um servidor da Web de exemplo e usar o Cloud DNS para apontar o URL do domínio para o servidor.

Se você ainda não usou o Terraform para Google Cloud, consulte Introdução ao Terraform.

Objetivos

Neste tutorial, você vai aprender a realizar o seguinte:

  • Registrar um nome de domínio usando o Cloud Domains;
  • criar uma instância de máquina virtual (VM) do Compute Engine;
  • executar um servidor da Web Apache básico;
  • configurar o domínio usando o Cloud DNS;
  • atualizar servidores de nomes;
  • verificar sua configuração.

Custos

Há um custo associado ao registro de um nome de domínio. Para saber os preços do Cloud Domains, consulte 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.

    Ativar a API

Registrar um nome de domínio

Se você já tiver um domínio registrado, pule esta seção.

Você pode usar o Cloud Domains para registrar um domínio. Com o Cloud Domains, você pode usar para o domínio a mesma conta de faturamento criada na seção Antes de começar. Para saber como registrar um domínio usando o Cloud Domains, consulte Registrar um domínio.

Criar uma instância de máquina virtual

Console

Para criar uma instância de máquina virtual (VM) do 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. Na guia Public images, escolha Debian GNU/Linux.
  4. Clique em Selecionar.
  5. Na seção Firewall, selecione Permitir tráfego HTTP.
  6. Para criar a VM, clique em Criar.

Aguarde um momento até que a instância seja iniciada. Depois que estiver pronta, ela será listada na página Instâncias de VM com um ícone de status verde.

Conectar-se à 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 você tem uma janela de terminal para interagir com a instância do Linux.

Para saber mais, consulte o Guia de início rápido sobre como usar uma VM do Linux.

Executar um servidor da Web Apache básico

Nesta seção, você vai executar e testar um servidor da Web Apache.

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

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

    Depois que o servidor Apache é instalado, o sistema operacional o inicia automaticamente.

  2. Substitua a página da Web padrão do servidor da Web Apache usando este comando:

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

Testar o servidor

Verifique se a instância está enviando tráfego pelo IP externo.

Console

  1. No console do Google Cloud , acesse a página Instâncias de VM.

    Acessar a página Instâncias de VM

  2. Na coluna IP externo, copie o endereço IP externo da instância.
  3. Em um navegador, acesse http://[EXTERNAL_IP]. Não use https para se conectar porque o servidor vai retornar um erro Connection Refused.

A página Hello World! será exibida.

Para mais detalhes, consulte Como executar um servidor da Web Apache básico.

Configurar o domínio usando o Cloud DNS

Ao migrar de um provedor, é possível importar as zonas atuais para o Cloud DNS. Para mais instruções, consulte Exportar a configuração de DNS do provedor atual. Caso contrário, siga estas etapas para criar uma zona pública.

Console

  1. No console do Google Cloud , acesse a página Criar zona de DNS.

    Acessar a página Criar zona de DNS

  2. Em Tipo de zona, selecione Pública.

  3. Em Nome da zona, digite my-new-zone.

  4. Em Nome do DNS, insira um sufixo do nome do DNS para a zona usando um nome de domínio registrado (por exemplo, example.com).

  5. Em DNSSEC, verifique se a configuração Off está selecionada.

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

  7. Para que o nome de domínio registrado aponte para o endereço IP do servidor de hospedagem, adicione um registro A à zona:

    1. Na página Detalhes da zona, clique em Adicionar padrão.
    2. Selecione A no menu Tipo de registro de recurso.
    3. Em Endereço IPv4, insira o endereço IP externo da instância.
    4. Clique em Criar para gerar o registro A para a zona.
  8. Opcional: adicione um registro CNAME para contabilizar um prefixo do nome de domínio, como www.:

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

Atualizar servidores de nomes

Para atualizar os servidores de nomes no Cloud Domains, siga estas etapas:

  1. No console do Google Cloud , acesse a página Cloud Domains.

    Acessar a página Cloud Domains

  2. Clique no nome de domínio que você quer editar. Também é possível clicar em Mais ao lado do nome do domínio para conferir o menu de edição.

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

  4. Selecione Usar Cloud DNS (recomendado).

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

  6. Clique em Salvar.

Terraform

É possível usar os recursos do Terraform para criar uma instância de máquina virtual (VM), executar um servidor da Web Apache, configurar o domínio usando o Cloud DNS e atualizar servidores de nomes.

Também é possível usar o módulo Terraform para configurar o Cloud DNS com zonas públicas, particulares, de peering ou de encaminhamento. Para mais informações sobre zonas, consulte a Visão geral de 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
  ]
}

Verificar sua configuração

Para verificar se a configuração está funcionando, depois da atualização dos servidores de nomes, acesse o nome de domínio, como example.com. O domínio precisa ser resolvido para seu endereço IP e apontar para a VM do Compute Engine que exibe a página Hello World! criada em Executar um servidor da Web Apache básico.

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

dig +trace example.com

O final da saída precisa incluir o seguinte, em que IP_ADDRESS é o endereço IP do servidor da 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 mudanças foram aplicadas, execute o seguinte comando:

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

Depois que a propagação de DNS for concluída, você também poderá executar o comando nslookup para verificar a configuração:

nslookup example.com

A resposta precisa incluir o seguinte, em que IP_ADDRESS é o endereço IP do servidor da Web.

Server:     127.0.0.1
Address:    127.0.0.1#53

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

Limpar

Console

  1. No console do Google Cloud , acesse a página Zonas do Cloud DNS.

    Acessar a página Zonas do Cloud DNS

  2. Clique em um nome de zona, como my-new-zone, para acessar a página Detalhes da zona.

  3. Selecione os registros A e CNAME que você criou.

  4. Clique em Excluir conjuntos de registros.

  5. Para excluir a zona, clique em Excluir zona no nome de zona my-new-zone.

  6. Acesse a página Instâncias de VM.

    Acessar a página Instâncias de VM

  7. Selecione a instância que você quer excluir.

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

A seguir