Este tutorial mostra como começar a usar o Compute Engine. Siga este tutorial implementando uma app Web Hello World Go no Compute Engine. Para obter ajuda nos primeiros passos com o App Engine, consulte o ambiente padrão do App Engine.
Objetivos
- Use o Cloud Shell para transferir e implementar uma app de exemplo Hello World.
- Use o Cloud Build para criar uma app de exemplo Hello World.
- Implemente uma app de exemplo Hello World numa única instância do Compute Engine.
Custos
Neste documento, usa os seguintes componentes faturáveis do Google Cloud:
Para gerar uma estimativa de custos com base na sua utilização projetada,
use a calculadora de preços.
Antes de começar
- 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Compute Engine and Cloud Build APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Compute Engine and Cloud Build APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. -
Na Google Cloud consola, abra a app no Cloud Shell.
O Cloud Shell dá acesso à linha de comandos aos recursos da nuvem diretamente a partir do navegador.
-
Se aceitar clonar o repositório, clique em Confirmar para transferir o código de exemplo e mudar para o diretório da app.
-
No Cloud Shell, configure a CLI gcloud para usar o seu novo Google Cloud projeto:
# Configure gcloud for your project gcloud config set project YOUR_PROJECT_ID
Executar a app no Cloud Shell
No Cloud Shell, inicie um servidor Web local:
go build -o app ./app
No Cloud Shell, clique em Pré-visualização Web , e selecione Pré-visualizar na porta 8080. Esta ação abre uma nova janela com a app em execução.
No navegador de Internet, vê
Hello, World!
.Quando tiver tudo pronto para avançar, pare o servidor Web local premindo Control+C no Cloud Shell.
Implementar numa única instância
Esta secção explica como executar uma única instância da sua app no Compute Engine.
A partir do Cloud Shell, pode implementar numa única máquina virtual (VM) de instância do Compute Engine que executa a sua app.
Use o Cloud Build para criar a app
O Cloud Build é usado para criar a app, comprimi-la num ficheiro TAR e carregar o ficheiro para um contentor do Cloud Storage. Os contentores são os contentores básicos que contêm os seus dados no Cloud Storage.
Na janela do terminal, crie um contentor do Cloud Storage, onde
YOUR_BUCKET_NAME
representa o nome do seu contentor:gcloud storage buckets create gs://YOUR_BUCKET_NAME
Pode escolher qualquer nome para o seu contentor do Cloud Storage. É uma prática recomendada dar ao seu contentor o mesmo nome que o ID do projeto. Os nomes dos contentores têm de ser exclusivos em todos os Google Cloud, pelo que é possível que não possa usar o ID do projeto como o nome do contentor.
Inicie o processo do Cloud Build:
gcloud builds submit --substitutions=_DEPLOY_DIR=gs://
YOUR_BUCKET_NAME
,_DEPLOY_FILENAME=app.tar.gzO comando
gcloud builds submit
usa--substitutions
para configurar a localização para a qual o ficheiro TAR resultante é carregado. Posteriormente, o ficheiro TAR é transferido para a instância do Compute Engine.O Cloud Build usa um ficheiro de configuração YAML para definir os passos necessários para a compilação.
Use um script de arranque para inicializar uma instância
Precisa de uma forma de dar instruções à sua instância para transferir e executar o seu código. Uma instância pode ter um script de arranque que é executado sempre que a instância é iniciada ou reiniciada.
Um script de arranque é executado quando uma instância é iniciada pela primeira vez.
O script de arranque realiza estas tarefas:
Instala o agente do Cloud Logging e configura-o para monitorizar os registos da app.
Transfere e extrai o ficheiro TAR de implementação.
Inicia um serviço
systemd
para executar a app.
Crie e configure uma instância do Compute Engine
Crie uma instância do Compute Engine:
Linux/macOS
gcloud compute instances create my-app-instance \ --image-family=debian-10 \ --image-project=debian-cloud \ --machine-type=g1-small \ --scopes userinfo-email,cloud-platform \ --metadata-from-file startup-script=startup-script.sh \ --metadata app-location="gs://YOUR_BUCKET_NAME/app.tar.gz" \ --zone YOUR_ZONE \ --tags http-server
Substitua
YOUR_ZONE
por uma zona de desenvolvimento, por exemplo,us-central1-a
. Para mais informações sobre regiões e zonas, consulte o artigo Geografia e regiões.A flag
--metadata app-location
indica ao script de arranque onde transferir o ficheiro TAR da app.Windows
gcloud compute instances create my-app-instance ^ --image-family=debian-10 ^ --image-project=debian-cloud ^ --machine-type=g1-small ^ --scopes userinfo-email,cloud-platform ^ --metadata-from-file startup-script=startup-script.sh ^ --metadata app-location="gs://YOUR_BUCKET_NAME/app.tar.gz" ^ --zone YOUR_ZONE ^ --tags http-server
Substitua
YOUR_ZONE
por uma zona de desenvolvimento, por exemplo,us-central1-a
. Para mais informações sobre regiões e zonas, consulte o artigo Geografia e regiões.A flag
--metadata app-location
indica ao script de arranque onde transferir o ficheiro TAR da app.Esta ação cria uma nova instância, permite-lhe aceder aos serviços Google Cloud e executa o script de arranque. O nome da instância é
my-app-instance
.Verifique o progresso da criação da instância:
gcloud compute instances get-serial-port-output my-app-instance --zone YOUR_ZONE
Quando o script de arranque estiver concluído, é apresentada a seguinte mensagem:
startup-script: INFO Finished running startup scripts.
Crie uma regra de firewall para permitir o tráfego para a sua instância:
gcloud compute firewall-rules create default-allow-http-80 \ --allow tcp:80 \ --source-ranges 0.0.0.0/0 \ --target-tags http-server \ --description "Allow port 80 access to http-server"
Obtenha o endereço IP externo da sua instância:
gcloud compute instances list
Para ver a sua app em execução, introduza este URL no navegador:
http://YOUR_INSTANCE_IP
Substitua
YOUR_INSTANCE_IP
pelo endereço IP externo da sua instância.
Faça a gestão e a monitorização de uma instância
Pode usar a Google Cloud consola para monitorizar e gerir a sua instância.
- In the Google Cloud console, go to the VM instances page.
- In the list of virtual machine instances, click SSH in the row of the instance that you want to connect to.
-
Para ver todos os registos gerados pelos seus recursos do Compute Engine, aceda à página do Explorador de registos.
Aceda ao Explorador de registosO Cloud Logging está configurado automaticamente para recolher registos de vários serviços comuns, incluindo o
syslog
.
Limpar
Para evitar incorrer em custos na sua conta do Google Cloud pelos recursos usados neste tutorial, elimine o projeto que contém os recursos ou mantenha o projeto e elimine os recursos individuais.
Elimine o projeto
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
Elimine os recursos individuais
gcloud compute instances delete my-app-instance --zone=YOUR_ZONE --delete-disks=all gcloud compute firewall-rules delete default-allow-http-80
O que se segue?
Explore arquiteturas de referência, diagramas e práticas recomendadas sobre o Google Cloud. Consulte o nosso Centro de arquitetura na nuvem.
Para outros recursos do Go para criar as suas apps, consulte o seguinte:
- Faça a gestão e a monitorização da implementação do grupo de instâncias em Compute Engine > Grupos de instâncias.
- Faça a gestão da configuração do balanceamento de carga, incluindo mapas de URL e serviços de back-end, em Serviços de rede > Balanceamento de carga.
- Implemente uma app no Google Kubernetes Engine
- Explore outros Google Cloud serviços.