{{ define "hero" }} {{ partial "hero" (dict "title" "Migrating to Pulumi from CloudFormation") }} {{ end }} {{ define "main" }}

Increase productivity with programming languages

AWS CloudFormation provides a configuration DSL for you to describe and provision infrastructure resources on AWS.

Pulumi enables you to describe the same infrastructure resources as real code, providing huge productivity gains, while decreasing the brittleness of YAML-based configuration files.

{{ partial "benefits.html" (dict "benefits" .Params.benefits) }}

Creating a Simple Web Server on AWS

In this example, we use JavaScript to create a simple web server on AWS using EC2.

This code creates the necessary security group, deploys a very simple web server for example purposes, and then creates the instance, before exporting the IP and hostname.

Pulumi can be used on any resource on AWS, Azure, Google Cloud, Kubernetes, and OpenStack, covering serverless, containers, and infrastructure.

Find many other examples here.

{{ $code := `const aws = require("@pulumi/aws"); let size = "t2.micro"; let ami = "ami-7172b611" // Create a new security group for port 80. let group = new aws.ec2.SecurityGroup("web-secgrp", { ingress: [ { protocol: "tcp", fromPort: 22, toPort: 22, cidrBlocks: ["0.0.0.0/0"] }, { protocol: "tcp", fromPort: 80, toPort: 80, cidrBlocks: ["0.0.0.0/0"] }, ], }); // Create a simple web server. let userData = "#!/bin/bash \n" + "echo 'Hello, World!' > index.html \n" + "nohup python -m SimpleHTTPServer 80 &"; let server = new aws.ec2.Instance("web-server-www", { tags: { "Name": "web-server-www" }, instanceType: size, securityGroups: [ group.name ], ami: ami, userData: userData }); exports.publicIp = server.publicIp; exports.publicHostName = server.publicDns;` }} {{ partial "code" (dict "code" $code "lang" "js" "mode" "dark") }}
{{ partial "how-pulumi-works.html" . }} {{ partial "learning-machine.html" . }} {{ partial "get-started.html" . }}
{{ partial "hand-raise-section" . }}
{{ end }}