Skip to main content

Search the Dev Center

Search tutorials, templates, examples, and more.

Web server using Compute Engine

Basic example of an Google Cloud web server accessible over HTTP

This example lives in the pulumi/examples repository. Check out just this directory to use it:

Get started with this example
git clone --filter=blob:none --sparse https://github.com/pulumi/examples pulumi-examples
git -C pulumi-examples sparse-checkout set gcp-go-webserver
cd pulumi-examples/gcp-go-webserver

Starting point for building the Pulumi web server sample in Google Cloud.

This example deploys a Google Compute Engine virtual machine — together with a network and a firewall rule that allows SSH and HTTP access to instances tagged web — and runs a simple HTTP server on it that responds with Hello, World!.

Prerequisites#

  1. Install Pulumi
  2. Configure GCP credentials
  3. Install Go

Deploying the example#

  1. Create a new stack:

    Terminal window
    pulumi stack init dev
  2. Configure the project:

    Terminal window
    pulumi config set gcp:project YOURGOOGLECLOUDPROJECT
    pulumi config set gcp:zone us-central1-a
  3. Install dependencies:

    Terminal window
    go mod download
  4. Run pulumi up to preview and deploy changes:

    Terminal window
    pulumi up
    Updating (dev):
    Type Name Status
    + pulumi:pulumi:Stack webserver-gcp-dev created
    + ├─ gcp:compute:Network network created
    + ├─ gcp:compute:Firewall firewall created
    + └─ gcp:compute:Instance instance created
    Outputs:
    instanceIP : "35.185.200.158"
    instanceName: "instance-af7e53b"
    Resources:
    + 4 created
    Duration: 1m23s
  5. Curl the HTTP server:

    Terminal window
    curl $(pulumi stack output instanceIP)
    Hello, World!
  6. SSH into the server:

    Terminal window
    gcloud compute ssh $(pulumi stack output instanceName)

Cleaning up#

Once you’re finished experimenting, destroy your stack and remove it:

Terminal window
pulumi destroy
pulumi stack rm

Related

The infrastructure as code platform for any cloud.