Neste tutorial, você aprenderá como começar a usar o Compute Engine. Siga este tutorial implantando um aplicativo da Web "Hello World" em Node.js no Compute Engine. Para receber ajuda com os primeiros passos no App Engine, consulte o ambiente padrão do App Engine.
Objetivos
- Usar o Cloud Shell para fazer o download e implantar um app de amostra "Hello World".
- Implantar um app de amostra "Hello World" em uma única instância do Compute Engine.
Custos
Neste documento, você usará os seguintes componentes faturáveis do Google Cloud:
Para gerar uma estimativa de custo baseada na projeção de uso deste tutorial, 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.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Compute Engine API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Compute Engine API.
-
No console do Google Cloud, abra o app no Cloud Shell.
O Cloud Shell fornece acesso de linha de comando aos seus recursos na nuvem diretamente do navegador.
-
Se você concordar em clonar o repositório, clique em Confirmar para fazer o download do exemplo de código e mudar para o diretório do app.
-
No Cloud Shell, configure a CLI gcloud para usar
seu novo projeto do Google Cloud:
# Configure gcloud for your project gcloud config set project YOUR_PROJECT_ID
Executar o app no Cloud Shell
Se você clicou em Ir para o Cloud Shell na seção anterior, o Cloud Shell clonou o repositório nodejs-getting-started
na sua instância. Depois que a instância
for iniciada, seu diretório de trabalho será
~/cloudshell_open/nodejs-getting-started/gce
. Se você não estiver nesse
diretório, consulte as etapas em Antes de começar.
Instale as dependências:
npm install
Execute o app:
npm start
No Cloud Shell, clique em Visualização da Web e selecione Visualizar na porta 8080. Uma nova janela será aberta com o aplicativo em execução.
Para interromper o servidor da Web local, pressione Control+C.
Configurar o Cloud Source Repositories
Ative a API Cloud Source Repositories.
No console do Google Cloud, acesse o Cloud Source Repositories.
Selecione Adicionar repositório.
Selecione Criar novo repositório e clique em Continuar.
No campo Nome do repositório, insira
new-repo
.No campo Projeto, insira o ID do projeto que você criou ou selecionou para este tutorial e clique em Continuar.
Selecione Clone seu repositório do Google Cloud em um repositório Git local.
No Cloud Shell, volte para a raiz e clone o repositório seguindo as instruções na guia SDK do Google Cloud e mantenha esta guia aberta.
Antes de concluir a etapa final das instruções, copie seu app no novo repositório no Cloud Shell:
cd new-repo cp ../cloudshell_open/nodejs-getting-started/gce/app.js app.js cp ../cloudshell_open/nodejs-getting-started/gce/package.json package.json
Siga as instruções restantes na guia SDK do Google Cloud para confirmar as alterações no repositório. Confirme se você adicionou seu código ao repositório. Para isso, atualize o navegador e verifique se o seu código foi adicionado ao repositório
new-repo
.
Implantar em uma única instância
Nesta seção, mostramos como executar uma única instância do aplicativo no Compute Engine.
No Cloud Shell, é possível implantar em uma máquina virtual (VM, na sigla em inglês) de instância única do Compute Engine que executa o aplicativo.
Usar um script para inicializar uma instância
É necessário instruir sua instância para que ela faça o download e execute o código. Isso pode ser feito por meio de um script de inicialização que é executado sempre que a instância for iniciada ou reiniciada.
Este é o script de inicialização incluído no aplicativo de amostra "Hello World":
O script de inicialização executa as seguintes ações:
Instala o agente do Cloud Logging. Ele coleta registros automaticamente do syslog.
Instala o Supervisor para executar o app como um daemon.
Clonagem do código-fonte do aplicativo do Cloud Source Repositories e instalação das dependências.
Configura o Supervisor para executar o app. Com ele, você garante que o app seja reiniciado em caso de saídas inesperadas ou encerramento por um administrador ou outro processo. Ele também envia o
stdout
e ostderr
do app ao syslog para serem coletados pelo agente do Logging.
Criar e configurar 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-9 \ --image-project=debian-cloud \ --machine-type=g1-small \ --scopes userinfo-email,cloud-platform \ --metadata app-location=us-central1-f \ --metadata-from-file startup-script=gce/startup-script.sh \ --zone us-central1-f \ --tags http-server
Windows
gcloud compute instances create my-app-instance ^ --image-family=debian-9 ^ --image-project=debian-cloud ^ --machine-type=g1-small ^ --scopes userinfo-email,cloud-platform ^ --metadata-from-file startup-script=gce/startup-script.sh ^ --zone us-central1-f ^ --tags http-server
Substitua a zona por uma zona de desenvolvimento, por exemplo,
us-central1-a
. Para mais informações sobre regiões e zonas, consulte Geografia e regiões.Isso cria uma nova instância e permite que ela acesse os serviços do Google Cloud e execute o script de inicialização. O nome da instância é
my-app-instance
.Verifique o andamento da criação da instância:
gcloud compute instances get-serial-port-output my-app-instance --zone YOUR_ZONE
Substitua
YOUR_ZONE
pela zona em que você implantou a instância.Quando o script de inicialização estiver concluído, você verá a seguinte mensagem:
startup-script: INFO Finished running startup scripts.
Crie uma regra de firewall para permitir o tráfego para a instância:
gcloud compute firewall-rules create default-allow-http-8080 \ --allow tcp:8080 \ --source-ranges 0.0.0.0/0 \ --target-tags http-server \ --description "Allow port 8080 access to http-server"
Receba o endereço IP externo da instância:
gcloud compute instances list
Para ver a execução do aplicativo, insira este URL no navegador:
http://YOUR_INSTANCE_IP:8080
Substitua
YOUR_INSTANCE_IP
pelo endereço IP externo da instância.
Gerenciar e monitorar uma instância
Use o Console do GCP para monitorar e gerenciar a 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 registros gerados pelos recursos do Compute Engine,
acesse a página Explorador de registros.
Acessar o Explorador de registros
O Cloud Logging é configurado automaticamente para reunir registros de vários serviços comuns, incluindo
syslog
.
Limpar
Para evitar cobranças na sua conta do Google Cloud pelos recursos usados no tutorial, exclua o projeto que os contém ou mantenha o projeto e exclua os recursos individuais.
Excluir 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.
Excluir recursos individuais
gcloud compute instances delete my-app-instance --zone=YOUR_ZONE --delete-disks=all gcloud compute firewall-rules delete default-allow-http-8080
A seguir
Explore arquiteturas de referência, diagramas e práticas recomendadas sobre o Google Cloud. Confira o Centro de arquitetura do Cloud.
Para outros recursos do Node.js para criar aplicativos, consulte:
- Gerencie e monitore a implantação do grupo de instâncias em Compute Engine > Grupos de instâncias.
- Gerencie sua configuração de balanceamento de carga, incluindo mapas de URL e serviços de back-end em Serviços de rede > Balanceamento de carga.
- Gerenciar sessões com o Firestore
- Autentique usuários com o Identity-Aware Proxy
- Implantar um app no Google Kubernetes Engine
- Explore outros serviços do Google Cloud.