All Projects → cfn-modules → Docs

cfn-modules / Docs

Licence: apache-2.0
Rapid CloudFormation: Modular, production ready, open source.

Programming Languages

shell
77523 projects

Projects that are alternatives of or similar to Docs

Cfn Create Or Update
Create or update CloudFormation stack also if no updates are to be performed.
Stars: ✭ 59 (-71.77%)
Mutual labels:  aws, cloudformation, amazon-web-services, aws-cloudformation
Aws Auto Terminate Idle Emr
AWS Auto Terminate Idle AWS EMR Clusters Framework is an AWS based solution using AWS CloudWatch and AWS Lambda using a Python script that is using Boto3 to terminate AWS EMR clusters that have been idle for a specified period of time.
Stars: ✭ 21 (-89.95%)
Mutual labels:  aws, cloudformation, amazon-web-services, aws-cloudformation
Aws Cf Templates
A cloudonaut.io project. Engineered by widdix.
Stars: ✭ 2,399 (+1047.85%)
Mutual labels:  aws, cloudformation, amazon-web-services, aws-cloudformation
Perun
A command-line validation tool for AWS Cloud Formation that allows to conquer the cloud faster!
Stars: ✭ 82 (-60.77%)
Mutual labels:  aws, cloudformation, amazon-web-services, aws-cloudformation
Aws Cloudformation Coverage Roadmap
The AWS CloudFormation Public Coverage Roadmap
Stars: ✭ 800 (+282.78%)
Mutual labels:  aws, cloudformation, aws-cloudformation
Goformation
GoFormation is a Go library for working with CloudFormation templates.
Stars: ✭ 671 (+221.05%)
Mutual labels:  aws, cloudformation, aws-cloudformation
Cfn Generic Custom Resource
CloudFormation generic custom resource provider
Stars: ✭ 26 (-87.56%)
Mutual labels:  aws, cloudformation, aws-cloudformation
Autospotting
Saves up to 90% of AWS EC2 costs by automating the use of spot instances on existing AutoScaling groups. Installs in minutes using CloudFormation or Terraform. Convenient to deploy at scale using StackSets. Uses tagging to avoid launch configuration changes. Automated spot termination handling. Reliable fallback to on-demand instances.
Stars: ✭ 2,014 (+863.64%)
Mutual labels:  aws, cloudformation, amazon-web-services
monitoring-jump-start
Monitor AWS resources with ease
Stars: ✭ 67 (-67.94%)
Mutual labels:  cloudformation, amazon-web-services, aws-cloudformation
Aws Unifi Controller
Example of a Ubiquiti Unifi Controller in AWS using Network Load Balancer for TLS termination
Stars: ✭ 37 (-82.3%)
Mutual labels:  aws, cloudformation, aws-cloudformation
Aws Sdk Perl
A community AWS SDK for Perl Programmers
Stars: ✭ 153 (-26.79%)
Mutual labels:  aws, cloudformation, amazon-web-services
Cloudformation Cli
The CloudFormation Provider Development Toolkit allows you to author your own resource providers and modules that can be used by CloudFormation.
Stars: ✭ 149 (-28.71%)
Mutual labels:  aws, cloudformation, aws-cloudformation
Aws Cloudformation User Guide
The open source version of the AWS CloudFormation User Guide
Stars: ✭ 493 (+135.89%)
Mutual labels:  aws, cloudformation, aws-cloudformation
Awesome Cloudformation
A curated list of resources and projects for working with AWS CloudFormation.
Stars: ✭ 290 (+38.76%)
Mutual labels:  aws, cloudformation, aws-cloudformation
Cform Vscode
CloudFormation extension for Visual Studio Code
Stars: ✭ 73 (-65.07%)
Mutual labels:  aws, cloudformation, aws-cloudformation
Learn Cloudformation
Learn how to use Infrastructure as Code on AWS with the help of CloudFormation.
Stars: ✭ 191 (-8.61%)
Mutual labels:  aws, amazon-web-services, aws-cloudformation
Quickstart Taskcat Ci
AWS Quick Start Team
Stars: ✭ 57 (-72.73%)
Mutual labels:  aws, cloudformation, aws-cloudformation
aws-cfn-custom-resource-lambda-edge
🏗 AWS CloudFormation custom resource that allows deploying Lambda@Edge from any region
Stars: ✭ 19 (-90.91%)
Mutual labels:  cloudformation, amazon-web-services, aws-cloudformation
Cfn Python Lint
CloudFormation Linter
Stars: ✭ 1,770 (+746.89%)
Mutual labels:  aws, cloudformation, aws-cloudformation
Cloudformation
Some CF templates
Stars: ✭ 123 (-41.15%)
Mutual labels:  aws, cloudformation, aws-cloudformation

cfn-modules

cfn-modules User Guide

Rapid CloudFormation: Modular, production ready, open source.

Why cfn-modules?

We started with aws-cf-templates in 2015. Three years later, we believe that we have learned enough to come up with a new approach to use CloudFormation more efficient.

Modular

Reusing CloudFormation templates is hard. Most often, templates are initially copied and then modified.

Two problems arise. First, updates to the copy are not applied to the original. Second, updates to the original are not applied to the copy. In essence: we do not learn from each other!

By using an easy to use package manager (npm) you can install and update cfn-modules to spin up complex infrastructure in minutes that just works.

Production ready

All modules are production-ready. If no other limitations are documented, they are:

  • Highly available
    • no single point of failure
  • Scalable
    • increase or decrease the capacity based on utilization
  • Secure
    • using the latest operating systems and software components
    • follow the least privilege principle (e.g., IAM policies and Security Groups)
    • backups of state (not configuration) enabled
    • encryption at-rest enabled
    • encryption in-transit enabled and preferred
  • Operator-friendly
    • logging enabled
    • alerting enabled
    • updatable

Open source

All modules are licensed under Apache-2.0. Commercial use is allowed.

Prerequisites

Getting started

cfn-modules are installed and updated with the package manager npm. The module catalog contains all available modules. Let's start with a simple example: An EC2 instance launched into a VPC.

Install Node.js 10.x if npm is not installed on your system

Install the modules using npm:

npm i @cfn-modules/[email protected]
npm i @cfn-modules/[email protected]

Use the modules as nested stacks in your CloudFormation template. The vpc module comes with no required parameters. The ec2-instance-amazon-linux module comes with the required VpcModule parameter to make the connection with the vpc module. The UserData parameter is optional. Use it to install additional software like the Apache HTTP Server. Create a file named example.yml with the following content:

---
AWSTemplateFormatVersion: '2010-09-09'
Resources:
  Vpc:
    Type: 'AWS::CloudFormation::Stack'
    Properties:
      Parameters:
        S3Endpoint: 'false' # speed up the example
        DynamoDBEndpoint: 'false' # speed up the example
        FlowLog: 'false' # speed up the example
        NatGateways: 'false' # speed up the example
      TemplateURL: './node_modules/@cfn-modules/vpc/module.yml'
  Instance:
    Type: 'AWS::CloudFormation::Stack'
    Properties:
      Parameters:
        VpcModule: !GetAtt 'Vpc.Outputs.StackName' # reference the vpc module
        UserData: |
          yum install -y httpd24
          service httpd start
          echo "cfn-modules" > /var/www/html/index.html
        IngressTcpPort1: '80' # open up port 80 to the world
      TemplateURL: './node_modules/@cfn-modules/ec2-instance-amazon-linux/module.yml'
Outputs:
  Url:
    Value: !Sub 'http://${Instance.Outputs.PublicIpAddress}'

Upload the CloudFormation template and the dependencies to S3 with the aws cloudformation package command.

Install AWS CLI if aws is not installed on your system

If you use cfn-modules the first time, create an S3 bucket to store the artifacts first (otherwise, skip this step). Choose a unique bucket name, e.g. cfn-modules-$Name-$Region.

In the following command, replace $Name with a unique name (e.g. your initials or company name), and replace $Region with your AWS default region (e.g. us-east-1) to create an S3 bucket:

aws s3 mb s3://cfn-modules-$Name-$Region

Now you can upload all artifacts to S3:

aws cloudformation package --template-file example.yml --s3-bucket cfn-modules-$Name-$Region --output-template-file packaged.yml

Finally, you can create a CloudFormation stack with aws cloudformation deploy:

aws cloudformation deploy --template-file packaged.yml --stack-name ec2-example --capabilities CAPABILITY_IAM

Creating the stack will take about 10 minutes. You can find the URL to the demo page in the stack outputs:

aws cloudformation describe-stacks --stack-name ec2-example --query "Stacks[0].Outputs"

Don't forget to delete the stack:

aws cloudformation delete-stack --stack-name ec2-example
aws cloudformation wait stack-delete-complete --stack-name ec2-example

Fin. Check out our examples next.

Examples

Check out the examples folder to see all examples.

Modules

Check out the module catalog to browse all modules.

About

A cloudonaut.io project. Engineered by widdix.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].