@cfn-modules/vpc
v2.3.0
Published
AWS VPC using two or three availability zones with public and private subnets, VPC endpoints for DynamoDB and S3, Flow Logs, and NAT gateways.
Downloads
771
Readme
cfn-modules: AWS VPC
AWS VPC using two or three availability zones with public and private subnets, VPC endpoints for DynamoDB and S3, Flow Logs, and NAT gateways.
Install
Install Node.js and npm first!
npm i @cfn-modules/vpc
Usage
---
AWSTemplateFormatVersion: '2010-09-09'
Description: 'cfn-modules example'
Resources:
Vpc:
Type: 'AWS::CloudFormation::Stack'
Properties:
Parameters:
AlertingModule: '' # optional
ClassB: 0 # optional
NumberOfAvailabilityZones: 3 # optional
S3Endpoint: true # optional
DynamoDBEndpoint: true # optional
FlowLog: 'reject-only' # optional
FlowLogRetentionInDays: 14 # optional
NatGateways: true # optional
TemplateURL: './node_modules/@cfn-modules/vpc/module.yml'
Examples
- asg-singleton-ssm
- ec2-ebs
- ec2-efs
- ec2-mysql
- ec2-postgres
- ec2-ssh-bastion
- ec2-ssm
- fargate-alb-proxy-pattern
- fargate-alb-single-container
Related modules
none
Standalone usage
You might want to use this module without embedding it as a nested stack because you want to share the VPC stack with many other CloudFormation stacks.
npm i @cfn-modules/vpc
aws cloudformation package --template-file ./node_modules/@cfn-modules/vpc/module.yml --s3-bucket $BucketName --output-template-file packaged.yml
aws cloudformation deploy --template-file packaged.yml --stack-name vpc --capabilities CAPABILITY_IAM
Once the stack is created, you can use the stack name (in this case vpc
) as the value for the VpcModule
parameter in other cfn-modules
. If this template has been embedded in a parent template where the default have been overridden, it is important to re-export the outputs of the stack so they can be used in oher stand-alone stacks:
StackName:
Value: !GetAtt Vpc.Outputs.StackName
Export:
Name: !Sub '${AWS::StackName}'
This will mean you can refer to the VpcModule
in other configurations.