Skip to main content

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 firewall rule that allows SSH and HTTP access — and runs a simple HTTP server on it that responds with Hello, World!.

Running the App#

  1. Create a new stack:

    $ pulumi stack init webserver-gcp-testing
  2. Configure the project:

    $ pulumi config set gcp:project YOURGOOGLECLOUDPROJECT
    $ pulumi config set gcp:zone us-central1-a
  3. Restore NPM dependencies:

    $ npm install
  4. Run pulumi up to preview and deploy changes:

    $ pulumi up
    Previewing changes:
    ...
    Performing changes:
    Type Name Status Info
    + pulumi:pulumi:Stack webserver-gcp-webserver-gcp-testing 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"
    info: 4 changes performed:
    + 4 resources created
    Update duration: 1m23s
  5. Curl the HTTP server:

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

    $ gcloud compute ssh $(pulumi stack output instanceName)
    Warning: Permanently added 'compute.4281826686797606751' (ECDSA) to the list of known hosts.
    The programs included with the Debian GNU/Linux system are free software;
    the exact distribution terms for each program are described in the
    individual files in /usr/share/doc/*/copyright.
    Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
    permitted by applicable law.
    albert@instance-af7e53b:~$
  7. Cleanup

    $ pulumi destroy
    $ pulumi stack rm

Related

The infrastructure as code platform for any cloud.