Neste tutorial, você aprenderá como começar a usar o Compute Engine. Para segui-lo, implante um app da Web Ruby "Hello World" 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 oferece acesso por linha de comando aos seus recursos de nuvem diretamente no navegador. Abra o Cloud Shell no navegador e clique em Continuar para fazer o download do código de amostra e carregá-lo no diretório de aplicativos.
-
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
Como executar o app no Cloud Shell
No Cloud Shell, instale as dependências do app usando
bundle
:bundle install
Execute o app Sinatra:
bundle exec ruby app.rb -p 8080
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.
Implantar em uma instância única
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.
Estas tarefas são executadas no script de inicialização:
Instala o agente do Cloud Logging. Ele coleta registros automaticamente do syslog.
Instala o Ruby 2.6.5, o Bundler e as dependências do sistema.
Clona o código-fonte do aplicativo nos Cloud Source Repositories e instala dependências.
Instala e configura o Nginx.
Instala o Supervisor para executar o app como um daemon.
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
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-a ^ --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 sua 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-80 \ --allow tcp:80 \ --source-ranges 0.0.0.0/0 \ --target-tags http-server \ --description "Allow port 80 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
Substitua
YOUR_INSTANCE_IP
pelo endereço IP externo da instância.
Gerenciar e monitorar uma instância
É possível usar o Console do Cloud 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 coletar 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-80