Tutorial: configurar um domínio usando o Cloud DNS


Neste tutorial, você verá o processo completo para registrar um domínio, configurar um servidor da Web de amostra e usar o Cloud DNS para apontar o URL do domínio para o servidor.

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

Objetivos

Neste tutorial, demonstramos como concluir as seguintes tarefas:

  • 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 seu domínio usando o Cloud DNS.
  • Atualizar servidores de nomes
  • Verificar a configuração

Custos

Há um custo associado ao registro de um nome de domínio. Para conferir 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. 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. 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. O Cloud Domains permite usar a mesma conta de faturamento para o domínio criada na seção Antes de começar. Para ver instruções sobre como registrar um domínio usando o Cloud Domains, consulte Registrar um domínio.

Crie 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 detalhes, 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 da instalação do Apache, o sistema operacional inicia automaticamente o servidor Apache.

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

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

Testar o servidor

Faça um teste para verificar se sua instância está gerando tráfego no IP externo dela.

Console

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

    Acessar 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.

Você verá a página Hello World!.

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

Configurar seu domínio usando o Cloud DNS.

Se você estiver migrando de um provedor atual, será 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 nova zona pública.

Console

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

    Acesse "Criar uma zona de DNS"

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

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

  4. Em Nome DNS, insira um sufixo de 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 apontar o nome de domínio registrado para o endereço IP do servidor de hospedagem, adicione um registro A à sua 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 seu nome de domínio, por exemplo, www.:

    1. Clique em Adicionar padrão.
    2. No campo Nome do DNS, adicione o prefixo www do domínio.
    3. Em Tipo de registro de recurso, escolha CNAME.
    4. Em Nome canônico, digite o nome de 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 Domínios do Cloud.

    Acessar o Cloud Domains

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

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

  4. Selecione Usar o 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 Apache Web, configurar seu 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 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
  ]
}

Verificar sua configuração

Para verificar se a configuração está funcionando, após a atualização dos servidores de nomes, navegue até seu nome de domínio (por exemplo, example.com). O domínio precisa ser resolvido para seu endereço IP e apontar para a VM do Compute Engine exibindo a página Hello World! que você criou em Executar um servidor da Web Apache básico.

Para verificar se sua configuração está correta, também é possível executar o comando dig +trace example.com na janela de 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 seu 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 bem-sucedidas, execute o seguinte comando:

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

Depois de aguardar a conclusão da proposição de DNS, também é possível executar o comando nslookup para verificar sua configuração:

nslookup example.com

A resposta precisa incluir o seguinte. 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

Limpeza

Console

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

    Acessar zonas do Cloud DNS

  2. Clique em um nome de zona (por exemplo, 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 para o nome da zona my-new-zone.

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

    Acessar instâncias de VM

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

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

A seguir