Metadata is mostly for organizing and presenting Parameters in a better way when using CloudFormation in the AWS Web UI.
These are the input parameters for this template. All of these parameters must be supplied for this template to be deployed.
These are all of the actual AWS resources created for this application.
This defines a Layer in the OpsWorks stack. It sets up the Chef cookbooks to pull in from S3, as well as a list of specific Chef recipies to run.
This defines the application for the OpsWorks stack. There's one Application for each Docker container to be deployed. For KFS its just the one container.
The Application mostly provides a secure place to store secret texts for use with the Docker container passed in via environment variables.
Retrieve the ID of the ELM EFS Volume
This defines the OpsWork stack itself. Mostly its network configs and defaults. The main thing in here is the source for the Chef Cookbooks to be used by any layers.
This creates and turns on an OpsWorks EC2 Instance to actually run the application. It is assigned to a specific layer, and that's where it gets the Chef recipes to run.
This is an internal facing Load Balancer which will only be accessed from within the VPC, or campus through the VPN.
Link the Load Balancer to the Application Layer
This is the role that is given to the OpsWorks service, which allows OpsWorks to manage AWS resources. This is a standard policy provided by AWS. See the AWS Documentation for OpsWorks Service Role
This is the IAM role that will be applied to the OpsWorks EC2 Instances. Any AWS specific permissions that the node might need should be defined here.
This is just a little construct to connect a set of roles together into a profile. The profile is referenced in the OpsWorks stack itself.
Security group for the OpsWorks application instances themselves. Needs to permit incoming traffice from the ELB, and any other authorized incoming sources.
This is the Security Group that wraps the Load Balancer. This controls what network traffic is allowed into the ELB. Just web traffic is allowed from anywhere.
Create a DNS entry in Route53 for this environment. This creates a CNAME pointing at the DNS name of the Load Balancer.
Append a period after the hosted zone DNS name
Output values that can be viewed from the AWS CloudFormation console.
SFTP Hub CloudFormation Deployment
This CloudFormation template will build an OpsWorks stack to support a central SFTP server with multiple EFS systems mounted.