ECS Fargate Containers
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
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
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
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.
```bash $ pulumi stack output Current stack outputs (1) OUTPUT VALUE hostname http://***.elb.us-west-2.amazonaws.com $ curl $(pulumi stack output hostname) <html> <head><meta charset="UTF-8"> <title>Hello, Pulumi!</title></head> <body> <p>Hello, S3!</p> <p>Made with ❤️ with <a href="https://pulumi.com">Pulumi</a></p> </body></html> ```
Step 6: View runtime logs from the container
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] 172.31.13.248 - - [22/May/2018:22:33:22 +0000] "GET / HTTP/1.1" 200 189 "-" "curl/7.54.0" "-" ```
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.