1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
| import pulumi
import pulumi_aws as aws
# Security Group
sg = aws.ec2.SecurityGroup("web-sg",
description="Allow HTTP",
ingress=[
aws.ec2.SecurityGroupIngressArgs(
protocol="tcp",
from_port=80,
to_port=80,
cidr_blocks=["0.0.0.0/0"],
),
aws.ec2.SecurityGroupIngressArgs(
protocol="tcp",
from_port=22,
to_port=22,
cidr_blocks=["0.0.0.0/0"],
),
],
egress=[
aws.ec2.SecurityGroupEgressArgs(
protocol="-1",
from_port=0,
to_port=0,
cidr_blocks=["0.0.0.0/0"],
),
],
)
# EC2 Instance
instance = aws.ec2.Instance("web-server",
ami="ami-0c55b159cbfafe1f0",
instance_type="t2.micro",
vpc_security_group_ids=[sg.id],
user_data="""#!/bin/bash
yum update -y
yum install -y httpd
systemctl start httpd
systemctl enable httpd
echo "Hello from Pulumi!" > /var/www/html/index.html
""",
tags={"Name": "web-server"},
)
pulumi.export("public_ip", instance.public_ip)
|