En este instructivo se muestra cómo comenzar a usar Compute Engine. Si deseas seguirlo, implementa una aplicación web de Hello World para Node.js en Compute Engine. Si deseas obtener ayuda para comenzar a usar App Engine, consulta el entorno estándar de App Engine.
Objetivos
- Usa Cloud Shell para descargar y, luego, implementar una aplicación de muestra Hello World.
- Implementar una app Hello World de muestra en una sola instancia de Compute Engine
Costos
En este documento, usarás los siguientes componentes facturables de Google Cloud:
Para generar una estimación de costos en función del uso previsto, usa la calculadora de precios.
Antes de comenzar
- 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.
-
En Google Cloud Console, abre la aplicación en Cloud Shell.
Cloud Shell proporciona acceso de línea de comandos a tus recursos en la nube directamente desde el navegador.
-
Si aceptas clonar el repositorio, haz clic en Confirmar para descargar el código de muestra y pasar al directorio de la app.
-
En Cloud Shell, configura la CLI de gcloud para usar tu proyecto de Google Cloud nuevo:
# Configure gcloud for your project gcloud config set project YOUR_PROJECT_ID
Ejecuta la app en Cloud Shell
Si hiciste clic en Ir a Cloud Shell en la sección anterior, Cloud Shell clonó el repositorio nodejs-getting-started
en tu instancia. Después de que se inicie la instancia, tu directorio de trabajo será ~/cloudshell_open/nodejs-getting-started/gce
. Si no te encuentras en este directorio, consulta los pasos en Antes de comenzar.
Instala las dependencias:
npm install
Ejecuta la app:
npm start
En Cloud Shell, haz clic en Vista previa web y selecciona Obtener vista previa en el puerto 8080. Se abrirá una ventana nueva con tu aplicación en ejecución.
Para detener el servidor web local, presiona Control+C.
Configura Cloud Source Repositories
Habilitar la API de Cloud Source Repositories
En la consola de Google Cloud, ve a Cloud Source Repositories.
Selecciona Agregar repositorio.
Selecciona Crear repositorio nuevo y haz clic en Continuar.
En el campo Nombre del repositorio, ingresa
new-repo
.En el campo Proyecto, ingresa el ID del proyecto que creaste o seleccionaste para este instructivo y, luego, haz clic en Continuar.
Sigue estos pasos para clonar tu repositorio en un repositorio de Git local.
En Cloud Shell, regresa a la raíz y clona el repositorio según las instrucciones de la pestaña SDK de Google Cloud y mantén esta pestaña abierta.
Antes de completar el paso final en las instrucciones, copia tu aplicación en tu repositorio nuevo en 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
Sigue las instrucciones restantes en la pestaña SDK de Google Cloud para confirmar tus cambios en el repositorio. Para confirmar que agregaste tu código al repositorio, actualiza el navegador y verifica que tu código se haya agregado al repositorio
new-repo
.
Implementa en una sola instancia
Esta sección te explica cómo ejecutar una instancia única de tu aplicación en Compute Engine.
En Cloud Shell, puedes realizar una implementación en la máquina virtual (VM) de una sola instancia de Compute Engine que ejecuta tu aplicación.
Usa una secuencia de comandos de inicio para inicializar una instancia
Necesitas una forma de indicar a tu instancia que descargue y ejecute tu código. Una instancia puede tener una secuencia de comandos de inicio que se ejecuta cada vez que se inicia o reinicia la instancia.
Esta es la secuencia de comandos de inicio que se incluye en la app de muestra de Hello World:
La secuencia de comandos de inicio realiza las siguientes tareas:
Instala el agente de Cloud Logging. Este agente recopila registros de syslog automáticamente.
Instala Supervisor para ejecutar la app como un daemon.
Clona el código fuente de la aplicación desde Cloud Source Repositories e instala dependencias.
Configura Supervisor para ejecutar la app. Supervisor se asegura de que la app se reinicie si se cierra de forma inesperada o si la cierra un administrador o algún otro proceso. También envía
stdout
ystderr
de la app a syslog para que los recopile el agente de Logging.
Crea y configura una instancia de Compute Engine
Crea una instancia de 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
Reemplaza la zona por una zona de desarrollo, por ejemplo,
us-central1-a
. Para obtener más información sobre regiones y zonas, consulta Geografía y regiones.Esto permite crear una instancia nueva para acceder a los servicios de Google Cloud y ejecutar tu secuencia de comandos de inicio. El nombre de la instancia es
my-app-instance
.Revisa el progreso de la creación de la instancia con el comando siguiente:
gcloud compute instances get-serial-port-output my-app-instance --zone YOUR_ZONE
Reemplaza
YOUR_ZONE
por la zona en la que implementaste tu instancia.Cuando se complete la secuencia de comandos de inicio, verás el mensaje siguiente:
startup-script: INFO Finished running startup scripts.
Crea una regla de firewall para permitir el tráfico hacia tu instancia de la manera siguiente:
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"
Obtén la dirección IP externa de la instancia con el comando siguiente:
gcloud compute instances list
Para ver la aplicación en ejecución, ingresa la URL siguiente en el navegador:
http://YOUR_INSTANCE_IP:8080
Reemplaza
YOUR_INSTANCE_IP
por la dirección IP externa de la instancia.
Administra y supervisa una instancia
Puedes usar GCP Console para supervisar y administrar tu instancia.
- 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 los registros generados por tus recursos de Compute Engine, ve a la página Explorador de registros.
Ir al Explorador de registros
Cloud Logging se configura de forma automática para recopilar los registros de diversos servicios comunes, incluido
syslog
.
Realiza una limpieza
Para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos usados en este instructivo, borra el proyecto que contiene los recursos o conserva el proyecto y borra los recursos individuales.
Borra el proyecto
- 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.
Borra los recursos individuales
gcloud compute instances delete my-app-instance --zone=YOUR_ZONE --delete-disks=all gcloud compute firewall-rules delete default-allow-http-8080
¿Qué sigue?
Explora arquitecturas de referencia, diagramas y prácticas recomendadas sobre Google Cloud. Consulta nuestro Cloud Architecture Center.
Si deseas obtener otros recursos de Node.js para compilar tus apps, consulta los siguientes vínculos:
- Administra y supervisa la implementación de tu grupo de instancias en Compute Engine > Grupos de instancias.
- Administra tu configuración de balanceo de cargas, incluidos los mapas de URL y los servicios de backend, en Servicios de red > Balanceo de cargas.
- Controla sesiones con Cloud Firestore
- Autentica usuarios con Identity-Aware Proxy
- Implementa una app en Google Kubernetes Engine
- Explora otros servicios de Google Cloud.