Skip to main content

Web Server Using Amazon EC2

Basic example of an AWS 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 aws-ts-webserver
cd pulumi-examples/aws-ts-webserver

This example deploys a simple AWS EC2 virtual machine running a Python web server.

Deploying the App#

To deploy your infrastructure, follow the below steps.

Prerequisites#

  1. Install Pulumi
  2. Configure AWS Credentials

Steps#

After cloning this repo, from this working directory, run these commands:

  1. Create a new stack, which is an isolated deployment target for this example:

    Terminal window
    pulumi stack init
  2. Set the required configuration variables for this program:

    Terminal window
    pulumi config set aws:region us-east-1
  3. Stand up the VM, which will also boot up your Python web server on port 80:

    Terminal window
    pulumi up
  4. After a couple minutes, your VM will be ready, and two stack outputs are printed:

    Terminal window
    pulumi stack output
    Current stack outputs (2):
    OUTPUT VALUE
    publicHostName ec2-53-40-227-82.compute-1.amazonaws.com
    publicIp 53.40.227.82
  5. Thanks to the security group making port 80 accessible to the 0.0.0.0/0 CIDR block (all addresses), we can curl it:

    Terminal window
    curl $(pulumi stack output publicIp)
    Hello, World!
  6. From there, feel free to experiment. Simply making edits and running pulumi up will incrementally update your VM.

  7. Afterwards, destroy your stack and remove it:

    Terminal window
    pulumi destroy --yes
    pulumi stack rm --yes

Related

The infrastructure as code platform for any cloud.