No description, website, or topics provided.
Switch branches/tags
Nothing to show
Clone or download
Latest commit 8e4a47a Dec 6, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github add PR template Jul 9, 2018
node_modules/@cfn-modules update dependency Oct 4, 2018
test update test dependencies Oct 4, 2018
.gitignore add tests (#1) Aug 7, 2018
.gitmodules switching to git submodules for module dependencies Jul 30, 2018
.travis.yml update Dec 6, 2018
.yamllint add Travis config Jul 2, 2018
LICENSE add Travis config Jul 2, 2018 added build status and npm version badge Jul 9, 2018
module.yml prepare release Oct 4, 2018
package.json prepare release Oct 4, 2018

Build Status NPM version

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 Node.js and npm first!

npm i @cfn-modules/vpc


AWSTemplateFormatVersion: '2010-09-09'
Description: 'cfn-modules example'
    Type: 'AWS::CloudFormation::Stack'
        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'

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.


Name Description Default Required? Allowed values
AlertingModule Stack name of alerting module false
ClassB Class B of VPC (10.XXX.0.0/16) 0 no [0-255]
NumberOfAvailabilityZones How many availability zones should be used? 3 no [2-3]
S3Endpoint Add S3 endpoint to VPC? true no [true, false]
DynamoDBEndpoint Add DynamoDB endpoint to VPC? true no [true, false]
FlowLog Enable VPC Flow Logs? reject-only no [true, reject-only, false]
FlowLogRetentionInDays Specifies the number of days you want to retain log events 14 no [1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1827, 3653]
NatGateways Add Nat Gateway per private Subnet? true no [true, false]