public service? ◦ We may want to have… ▪ a computer => AWS Elastic Compute 2 ▪ public internet access => AWS Internet Gateway ▪ data storage => AWS RDS, AWS S3 (simple storage service) ◦ We may ▪ Buy a computer and hire managing people ▪ Rent from AWS
can go to AWS webpage, add a credit card and click, click, click… https://aws.amazon.com/products/?aws-products-all.sort-by=item.additionalFields.productNam eLowercase&aws-products-all.sort-order=asc&awsf.re%3AInvent=*all&awsf.Free%20Tier%20Type =*all&awsf.tech-category=*all - Cumbersome to click deeply nested ui. - Forget what have been done. - Resources are mutual dependent - Unable to find correct sequence
• I want a computer (EC2) • Use operating system (ami) • Execute the bash script when starting (userData) • Publish to the internet (vpc, subnet, security group)
Manual • Reproducibility ◦ Something went wrong, destroy and recreate ◦ No hidden changes • Version controlled: 😍 Git ◦ Visibility ◦ Pinpoint your problem
.env from chat to project root (I will delete this key after study session) 3. Export env to bash ◦ export $(cat .env | xargs) 4. Install pulumi cli ◦ brew install pulumi/tap/pulumi 5. Login to pulumi, you may need to sign up ◦ pulumi login 6. [Skip if error]Select dev as current working stack ◦ pulumi stack select dev 7. Deploy ◦ pulumi up 8. Destroy (Don’t forget!!) ◦ pulumi destroy
a Promise that will be fulfilled by Pulumi engine, except you can not await it. • Input/Output chains are used to determine the deployment/destroy sequence.