Start by adding the Pulumi AWSX import to your index.ts
file:
import * as awsx from "@pulumi/awsx";
Then add the following to your index.ts
to create a vpc. The vpc will be made of 2 private and 2 public subnets. The
private subnets will be routed to the internet via nat gateways.
See for more details and examples:
- API Docs
- Examples
const vpc = new awsx.ec2.Vpc("workshop-vpc", {});
We will be able to use this vpc in which to deploy our Amazon EKS cluster.
The index.ts
file should now have the following contents:
import * as awsx from "@pulumi/awsx";
const vpc = new awsx.ec2.Vpc("workshop-vpc", {});
To provision the vpc, run:
pulumi up
After confirming, you will see output like the following:
Updating (dev):
Type Name Status
+ pulumi:pulumi:Stack eks-infrastructure-dev created
+ └─ awsx❌ec2:Vpc workshop-vpc created
+ ├─ awsx❌ec2:Subnet workshop-vpc-private-1 created
+ │ ├─ aws:ec2:Subnet workshop-vpc-private-1 created
+ │ ├─ aws:ec2:RouteTable workshop-vpc-private-1 created
+ │ ├─ aws:ec2:RouteTableAssociation workshop-vpc-private-1 created
+ │ └─ aws:ec2:Route workshop-vpc-private-1-nat-1 created
+ ├─ awsx❌ec2:Subnet workshop-vpc-private-0 created
+ │ ├─ aws:ec2:Subnet workshop-vpc-private-0 created
+ │ ├─ aws:ec2:RouteTable workshop-vpc-private-0 created
+ │ ├─ aws:ec2:RouteTableAssociation workshop-vpc-private-0 created
+ │ └─ aws:ec2:Route workshop-vpc-private-0-nat-0 created
+ ├─ awsx❌ec2:InternetGateway workshop-vpc created
+ │ └─ aws:ec2:InternetGateway workshop-vpc created
+ ├─ awsx❌ec2:Subnet workshop-vpc-public-0 created
+ │ ├─ aws:ec2:RouteTable workshop-vpc-public-0 created
+ │ ├─ aws:ec2:Subnet workshop-vpc-public-0 created
+ │ ├─ aws:ec2:Route workshop-vpc-public-0-ig created
+ │ └─ aws:ec2:RouteTableAssociation workshop-vpc-public-0 created
+ ├─ awsx❌ec2:NatGateway workshop-vpc-0 created
+ │ ├─ aws:ec2:Eip workshop-vpc-0 created
+ │ └─ aws:ec2:NatGateway workshop-vpc-0 created
+ ├─ awsx❌ec2:Subnet workshop-vpc-public-1 created
+ │ ├─ aws:ec2:Subnet workshop-vpc-public-1 created
+ │ ├─ aws:ec2:RouteTable workshop-vpc-public-1 created
+ │ ├─ aws:ec2:RouteTableAssociation workshop-vpc-public-1 created
+ │ └─ aws:ec2:Route workshop-vpc-public-1-ig created
+ ├─ awsx❌ec2:NatGateway workshop-vpc-1 created
+ │ ├─ aws:ec2:Eip workshop-vpc-1 created
+ │ └─ aws:ec2:NatGateway workshop-vpc-1 created
+ └─ aws:ec2:Vpc workshop-vpc created
Resources:
+ 31 created
Duration: 2m50s
Permalink: https://app.pulumi.com/workshops/eks-infrastructure/dev/updates/1