En este instructivo se muestra cómo comenzar a usar Compute Engine. Para seguir este instructivo, implementa una app web Hello World de Go 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.
- Usar Cloud Build para compilar una app Hello World de muestra
- 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
- Accede a tu Google Cloud cuenta de. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
-
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 role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. 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.enablepermission. 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 role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. 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.enablepermission. Learn how to grant roles.-
En la Google Cloud consola, abre la aplicación en Cloud Shell.
Cloud Shell brinda acceso de línea de comandos a los 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 cambiar al directorio de la app.
-
En Cloud Shell, configura gcloud CLI para usar
tu nuevo Google Cloud proyecto:
# Configure gcloud for your project gcloud config set project YOUR_PROJECT_ID
Ejecuta la app en Cloud Shell
En Cloud Shell, inicia un servidor web local:
go build -o app ./appEn Cloud Shell, haz clic en Vista previa web y selecciona Obtener vista previa en el puerto 8080. Se abrirá una ventana nueva con la app en ejecución.
En el navegador web, verás
Hello, World!.Cuando estés listo para continuar, presiona Control + C en Cloud Shell a fin de detener el servidor web local.
Implementa en una sola instancia
En esta sección, se 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 Cloud Build para compilar la app
Cloud Build se usa para compilar la app, comprimirla en un archivo tar y subir el archivo a un bucket de Cloud Storage. Los depósitos son los contenedores básicos que conservan tus datos en Cloud Storage.
En la ventana de la terminal, crea un bucket de Cloud Storage, en el que
YOUR_BUCKET_NAMErepresente el nombre del bucket:gcloud storage buckets create gs://YOUR_BUCKET_NAME
Puedes elegir cualquier nombre para el bucket de Cloud Storage. Es una buena práctica asignarle a tu bucket el mismo nombre que tu ID del proyecto. Los nombres de bucket s deben ser únicos en todo Google Cloud, por lo que es posible que no puedas usar el ID del proyecto como el nombre del bucket.
Inicia el proceso de Cloud Build:
gcloud builds submit --substitutions=_DEPLOY_DIR=gs://
YOUR_BUCKET_NAME,_DEPLOY_FILENAME=app.tar.gzEl comando
gcloud builds submitusa--substitutionspara configurar la ubicación a la que se subirá el archivo tar resultante. Luego, ese archivo tar se descarga en la instancia de Compute Engine.Cloud Build usa un archivo de configuración YAML a fin de definir los pasos necesarios para la compilació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.
Una secuencia de comandos de inicio se ejecuta cuando se inicia una instancia por primera vez.
La secuencia de comandos de inicio realiza las siguientes tareas:
Instala el agente de Cloud Logging y lo configura para supervisar los registros de la app.
Descarga y extrae el archivo tar de implementación.
Inicia un servicio
systemdpara ejecutar la app.
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-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
Reemplaza
YOUR_ZONEpor una zona de desarrollo, por ejemplous-central1-a. Para obtener más información sobre las regiones y zonas, consulta Geografía y regiones.La marca
--metadata app-locationindica a la secuencia de comandos de inicio dónde debe descargar el archivo tar de la 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
Reemplaza
YOUR_ZONEpor una zona de desarrollo, por ejemplous-central1-a. Para obtener más información sobre las regiones y zonas, consulta Geografía y regiones.La marca
--metadata app-locationindica a la secuencia de comandos de inicio dónde debe descargar el archivo tar de la app.Se creará una instancia nueva, se permitirá que esta acceda a los Google Cloud servicios y se ejecutará la secuencia de comandos de inicio. El nombre de la instancia es
my-app-instance.Revisa el progreso de la creación de la instancia:
gcloud compute instances get-serial-port-output my-app-instance --zone YOUR_ZONE
Cuando se complete la secuencia de comandos de inicio, verás el siguiente mensaje:
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-80 \ --allow tcp:80 \ --source-ranges 0.0.0.0/0 \ --target-tags http-server \ --description "Allow port 80 access to http-server"Obtén la dirección IP externa de la instancia con el comando siguiente:
gcloud compute instances listPara ver la aplicación en ejecución, ingresa la URL siguiente en el navegador:
http://YOUR_INSTANCE_IP
Reemplaza
YOUR_INSTANCE_IPpor la dirección IP externa de la instancia.
Administra y supervisa una instancia
Puedes usar la Google Cloud consola para supervisar y administrar tu instancia.
- En la Google Cloud consola, ve a la página Instancias de VM.
- En la lista de instancias de máquina virtual, haz clic en SSH en la fila de la instancia a la que deseas conectarte.
-
Para ver todos los registros generados por tus recursos de Compute Engine, ve a la página Explorador de registros.
Ir al Explorador de registrosCloud Logging se configura de forma automática para recopilar los registros de diversos servicios comunes, incluido
syslog.
Limpia
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
- En la Google Cloud consola, ve a la página Administrar recursos.
- En la lista de proyectos, elige el proyecto que tú quieres borrar y haz clic en Borrar.
- En el diálogo, escribe el ID del proyecto y, luego, haz clic en Cerrar para borrar el proyecto.
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-80
¿Qué sigue?
Explora arquitecturas de referencia, diagramas y prácticas recomendadas sobre Google Cloud. Consulta nuestro Cloud Architecture Center.
Si deseas ver otros recursos de Go para compilar las 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.
- Implementa una app en Google Kubernetes Engine
- Explora otros Google Cloud servicios.