Questo tutorial mostra come iniziare a utilizzare Compute Engine. Segui questo tutorial eseguendo il deployment di un'app web Hello World Go in Compute Engine. Per assistenza su come iniziare a utilizzare App Engine, consulta l'ambiente standard di App Engine.
Obiettivi
- Utilizza Cloud Shell per scaricare ed eseguire il deployment di un'app di esempio Hello World.
- Utilizzare Cloud Build per creare un'app di esempio Hello World.
- Esegui il deployment di un'app di esempio Hello World in una singola istanza Compute Engine.
Costi
In questo documento vengono utilizzati i seguenti componenti fatturabili di Google Cloud:
Per generare una stima dei costi in base all'utilizzo previsto,
utilizza il Calcolatore prezzi.
Prima di iniziare
- Accedi al tuo account Google Cloud. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
-
Nella pagina del selettore di progetti della console Google Cloud, seleziona o crea un progetto Google Cloud.
-
Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.
-
Abilita le API Compute Engine and Cloud Build.
-
Nella pagina del selettore di progetti della console Google Cloud, seleziona o crea un progetto Google Cloud.
-
Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.
-
Abilita le API Compute Engine and Cloud Build.
-
Nella console Google Cloud, apri l'app in Cloud Shell.
Cloud Shell fornisce l'accesso tramite riga di comando alle risorse cloud direttamente dal browser.
-
Se accetti di clonare il repository, fai clic su Conferma per scaricare il codice campione e passare alla directory dell'app.
-
In Cloud Shell, configura gcloud CLI in modo da utilizzare il nuovo progetto Google Cloud:
# Configure gcloud for your project gcloud config set project YOUR_PROJECT_ID
Esecuzione dell'app in Cloud Shell
In Cloud Shell, avvia un server web locale:
go build -o app ./app
In Cloud Shell, fai clic su Anteprima web e seleziona Anteprima sulla porta 8080. Si apre una nuova finestra con la tua app in esecuzione.
Nel browser web, vedi
Hello, World!
.Quando è tutto pronto per proseguire, arresta il server web locale premendo Ctrl+C in Cloud Shell.
Distribuzione su una singola istanza
Questa sezione illustra come eseguire una singola istanza della tua app su Compute Engine.
Da Cloud Shell, puoi eseguire il deployment su una singola macchina virtuale (VM) istanza di Compute Engine che esegue l'app.
Usa Cloud Build per creare l'app
Cloud Build viene utilizzato per creare l'app, comprimerla in un file tar e caricare il file in un bucket Cloud Storage. I bucket sono i container di base di Cloud Storage in cui vengono archiviati i dati.
Nella finestra del terminale, crea un bucket Cloud Storage, dove
YOUR_BUCKET_NAME
rappresenta il nome del bucket:gsutil mb gs://YOUR_BUCKET_NAME
Puoi scegliere qualsiasi nome per il tuo bucket Cloud Storage. È buona norma assegnare al bucket lo stesso nome dell'ID progetto. I nomi dei bucket devono essere univoci in tutto Google Cloud, pertanto è possibile che tu non possa utilizzare il tuo ID progetto come nome dei bucket.
Avvia il processo di Cloud Build:
gcloud builds submit --substitutions=_DEPLOY_DIR=gs://
YOUR_BUCKET_NAME
,_DEPLOY_FILENAME=app.tar.gzIl comando
gcloud builds submit
utilizza--substitutions
per configurare la posizione in cui viene caricato il file tar risultante. In seguito, il file tar viene scaricato nell'istanza di Compute Engine.Cloud Build utilizza un file di configurazione YAML per definire i passaggi richiesti dalla build.
Utilizza uno script di avvio per inizializzare un'istanza
Hai bisogno di un modo per indicare all'istanza di scaricare ed eseguire il codice. Un'istanza può avere uno script di avvio che viene eseguito ogni volta che l'istanza viene avviata o riavviata.
Uno script di avvio viene eseguito al primo avvio di un'istanza.
Lo script di avvio esegue le seguenti attività:
Installa l'agente Cloud Logging e lo configura per monitorare i log dell'app.
Scarica ed estrae il file tar di deployment.
Avvia un servizio
systemd
per eseguire l'app.
Crea e configura un'istanza Compute Engine
Crea un'istanza 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
Sostituisci
YOUR_ZONE
con una zona di sviluppo, ad esempious-central1-a
. Per ulteriori informazioni su regioni e zone, consulta Area geografica e regioni.Il flag
--metadata app-location
indica allo script di avvio dove scaricare il file tar dell'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
Sostituisci
YOUR_ZONE
con una zona di sviluppo, ad esempious-central1-a
. Per ulteriori informazioni su regioni e zone, consulta Area geografica e regioni.Il flag
--metadata app-location
indica allo script di avvio dove scaricare il file tar dell'app.Viene creata una nuova istanza, l'istanza può accedere ai servizi Google Cloud ed esegue lo script di avvio. Il nome dell'istanza è
my-app-instance
.Verifica lo stato di avanzamento della creazione dell'istanza:
gcloud compute instances get-serial-port-output my-app-instance --zone YOUR_ZONE
Una volta completato lo script di avvio, viene visualizzato il seguente messaggio:
startup-script: INFO Finished running startup scripts.
Crea una regola firewall per consentire il traffico nell'istanza:
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"
Ottieni l'indirizzo IP esterno dell'istanza:
gcloud compute instances list
Per vedere che la tua app è in esecuzione, inserisci questo URL nel browser:
http://YOUR_INSTANCE_IP
Sostituisci
YOUR_INSTANCE_IP
con l'indirizzo IP esterno della tua istanza.
Gestisci e monitora un'istanza
Puoi utilizzare la console Google Cloud per monitorare e gestire l'istanza.
- Nella console Google Cloud, vai alla pagina Istanze VM.
- Nell'elenco delle istanze di macchine virtuali, fai clic su SSH nella riga dell'istanza a cui vuoi connetterti.
- Per visualizzare tutti i log generati dalle risorse Compute Engine, vai alla pagina Esplora log.
Vai a Esplora log
Cloud Logging è configurato automaticamente per raccogliere i log da vari servizi comuni, tra cui
syslog
.
Esegui la pulizia
Per evitare che al tuo Account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questo tutorial, elimina il progetto che contiene le risorse oppure mantieni il progetto ed elimina le singole risorse.
Elimina il progetto
- Nella console Google Cloud, vai alla pagina Gestisci risorse.
- Nell'elenco dei progetti, seleziona il progetto che vuoi eliminare, quindi fai clic su Elimina.
- Nella finestra di dialogo, digita l'ID del progetto e fai clic su Chiudi per eliminare il progetto.
Elimina le singole risorse
gcloud compute instances delete my-app-instance --zone=YOUR_ZONE --delete-disks=all gcloud compute firewall-rules delete default-allow-http-80
Passaggi successivi
Esplora le architetture di riferimento, i diagrammi e le best practice su Google Cloud. Visita il nostro Cloud Architecture Center.
Per altre risorse Go per la creazione delle app, vedi quanto segue:
- Gestisci e monitora il deployment del gruppo di istanze in Compute Engine > Gruppi di istanze.
- Per gestire la configurazione del bilanciamento del carico, incluse le mappe URL e i servizi di backend, vai a Servizi di rete > Bilanciamento del carico.
- Deployment di un'app in Google Kubernetes Engine
- Esplora gli altri servizi Google Cloud.