Vpc.v1
Reference doc for the `sst.aws.Vpc.v1` component.
The Vpc
component lets you add a VPC to your app, but it has been deprecated because
it does not support modifying the number of Availability Zones (AZs) after VPC creation.
For existing usage, rename sst.aws.Vpc
to sst.aws.Vpc.v1
. For new VPCs, use
the latest Vpc
component instead.
This creates a VPC with 2 Availability Zones by default. It also creates the following resources:
- A security group.
- A public subnet in each AZ.
- A private subnet in each AZ.
- An Internet Gateway, all the traffic from the public subnets are routed through it.
- A NAT Gateway in each AZ. All the traffic from the private subnets are routed to the NAT Gateway in the same AZ.
NAT Gateways are billed per hour and per gigabyte of data processed. By default, this creates a NAT Gateway in each AZ. And this would be roughly $33 per NAT Gateway per month. Make sure to review the pricing.
Create a VPC
Create it with 3 Availability Zones
Constructor
Parameters
-
name
string
-
args?
VpcArgs
-
opts?
ComponentResourceOptions
VpcArgs
az?
Type Input
<
number
>
Default 2
Number of Availability Zones or AZs for the VPC. By default, it creates a VPC with 2 AZs since services like RDS and Fargate need at least 2 AZs.
transform?
Type Object
Transform how this component creates its underlying resources.
transform.elasticIp?
Type EipArgs
|
(
args
:
EipArgs
,
opts
:
ComponentResourceOptions
,
name
:
string
)
=>
void
Transform the EC2 Elastic IP resource.
transform.internetGateway?
Type InternetGatewayArgs
|
(
args
:
InternetGatewayArgs
,
opts
:
ComponentResourceOptions
,
name
:
string
)
=>
void
Transform the EC2 Internet Gateway resource.
transform.natGateway?
Type NatGatewayArgs
|
(
args
:
NatGatewayArgs
,
opts
:
ComponentResourceOptions
,
name
:
string
)
=>
void
Transform the EC2 NAT Gateway resource.
transform.privateRouteTable?
Type RouteTableArgs
|
(
args
:
RouteTableArgs
,
opts
:
ComponentResourceOptions
,
name
:
string
)
=>
void
Transform the EC2 route table resource for the private subnet.
transform.privateSubnet?
Type SubnetArgs
|
(
args
:
SubnetArgs
,
opts
:
ComponentResourceOptions
,
name
:
string
)
=>
void
Transform the EC2 private subnet resource.
transform.publicRouteTable?
Type RouteTableArgs
|
(
args
:
RouteTableArgs
,
opts
:
ComponentResourceOptions
,
name
:
string
)
=>
void
Transform the EC2 route table resource for the public subnet.
transform.publicSubnet?
Type SubnetArgs
|
(
args
:
SubnetArgs
,
opts
:
ComponentResourceOptions
,
name
:
string
)
=>
void
Transform the EC2 public subnet resource.
transform.securityGroup?
Type SecurityGroupArgs
|
(
args
:
SecurityGroupArgs
,
opts
:
ComponentResourceOptions
,
name
:
string
)
=>
void
Transform the EC2 Security Group resource.
transform.vpc?
Type VpcArgs
|
(
args
:
VpcArgs
,
opts
:
ComponentResourceOptions
,
name
:
string
)
=>
void
Transform the EC2 VPC resource.
Properties
id
Type Output
<
string
>
The VPC ID.
nodes
Type Object
The underlying resources this component creates.
nodes.elasticIps
Type Output
<
Eip
[]
>
The Amazon EC2 Elastic IP.
nodes.internetGateway
Type InternetGateway
The Amazon EC2 Internet Gateway.
nodes.natGateways
Type Output
<
NatGateway
[]
>
The Amazon EC2 NAT Gateway.
nodes.privateRouteTables
Type Output
<
RouteTable
[]
>
The Amazon EC2 route table for the private subnet.
nodes.privateSubnets
Type Output
<
Subnet
[]
>
The Amazon EC2 private subnet.
nodes.publicRouteTables
Type Output
<
RouteTable
[]
>
The Amazon EC2 route table for the public subnet.
nodes.publicSubnets
Type Output
<
Subnet
[]
>
The Amazon EC2 public subnet.
nodes.securityGroup
Type SecurityGroup
The Amazon EC2 Security Group.
nodes.vpc
Type Vpc
The Amazon EC2 VPC.
privateSubnets
Type Output
<
Output
<
string
>
[]
>
A list of private subnet IDs in the VPC.
publicSubnets
Type Output
<
Output
<
string
>
[]
>
A list of public subnet IDs in the VPC.
securityGroups
Type Output
<
string
>
[]
A list of VPC security group IDs.
Methods
static get
Parameters
The name of the component.name
string
The ID of the existing VPC.vpcID
Input
<
string
>
Returns Vpc
Reference an existing VPC with the given ID. This is useful when you create a VPC in one stage and want to share it in another stage. It avoids having to create a new VPC in the other stage.
Imagine you create a VPC in the dev
stage. And in your personal stage frank
,
instead of creating a new VPC, you want to share the VPC from dev
.
Here vpc-0be8fa4de860618bb
is the ID of the VPC created in the dev
stage.
You can find this by outputting the VPC ID in the dev
stage.