aws logo
AWS Classic v5.32.0, Mar 17 23

ECS Fargate Containers | JavaScript

View Code Deploy

Companion to the tutorial Provision containers on AWS.


To run this example, make sure Docker Engine - Community is installed and running.

Deploy the App

Note: some values in this example will be different from run to run. These values are indicated with ***.

Step 1: Create a new stack

$ pulumi stack init containers-dev

Step 2: Configure AWS region for Pulumi

For this example, you need to set an AWS region that supports Fargate. Refer to the AWS Region Table for product availability.

$ pulumi config set aws:region us-west-2

Step 3: Restore NPM modules

You can do this via npm install or yarn install.

Step 4:. Preview and deploy the app

Run the following command:

$ pulumi up

The preview will take a few minutes, as it builds a Docker container. A total of 19 resources are created.

Step 5: View the endpoint URL

Run pulumi stack output to view your stack’s output properties, and then curl the command to view the resulting page. $(pulumi stack output url) evaluates to the load balancer’s URL.

$ pulumi stack output
Current stack outputs (1)
    OUTPUT                  VALUE
    hostname                http://***

$ curl $(pulumi stack output hostname)
    <head><meta charset="UTF-8">
    <title>Hello, Pulumi!</title></head>
    <p>Hello, S3!</p>
    <p>Made with ❤️ with <a href="">Pulumi</a></p>

Step 6: View runtime logs from the container

Use the pulumi logs command. To get a log stream, use pulumi logs --follow.

$ pulumi logs --follow
Collecting logs for stack aws-js-containers-dev since 2018-05-22T14:25:46.000-07:00.
2018-05-22T15:33:22.057-07:00[                  pulumi-nginx] - - [22/May/2018:22:33:22 +0000] "GET / HTTP/1.1" 200 189 "-" "curl/7.54.0" "-"

Clean Up

To clean up resources, run pulumi destroy to avoid incurring any costs. Select yes on the confirmation prompt so Pulumi will remove all of the resources that you’ve created. To delete the stack itself, run pulumi stack rm. Note that this command deletes all deployment history from the Pulumi Console, unless you’ve explicitly chosen a different backend for storing your infrastructure state.