This repository contains AWS CloudFormation Templates that deploy scaleable multi cell vCloud Director Environment leveraging AWS services. The project was created for pure testing purposes with a long term goal to be leveraged in conjunction with the VMware Cloud on AWS service offering and provide fully automated mechanism to provision public cloud vCD instances on AWS. This vCD Stack is deployed in a Multi-AZ fashion by placing the stack components across Two Availability Zones in a Single AWS Region.
The vCD Stack infrastructure is laid out leveraging Nested CloudFormation templates, which allows us to break the deployment of the necessary infrastructure into a smaller chunks. Leveraging Nested CloudFormation templates allows us also to have smaller templates with less repeatable code in them.
Before you are able to successfully deploy this templates, there are a few prerequisites that needs to be performed before you can deploy this stack:
- EC2 Key Pairs - You need to create two sets of EC2 key pars (highly recommended). One to be assigned for the Bastion host/s and another for the vCD Cells EC2 Instances.
- ELB Certificate - The Application ELB for the vCD UI requires a certificate to be upload to ACM before you try to deploy this stack. You need to provide the ARN for this certificate when deploying this stack.
- vCD Binaries - This stack requires the vCD binaries to be uploaded on a S3 bucket. You need to provide the name of the S3 bucket and the binary name when deploying this stack.
- vCD License Key - This stack requires vCD license key to be provided in order for the stack to successfully deploy.
The nested templates are broken down into different categories:
- Orchestrator
- Infrastructure
- Bastion Hosts
- Database
- vCD deployment
- Load Balancing
- vCD Autoscaling Groups
This is master templates that calls all nested templates.
Creates the Complete vCD Stack
|
|
Creates the VPC with single or multi-az network topology
|
|
This template is based of the Linux Bastion Hosts on AWS - Quick starts template.
|
|
Deploys the Postgres RDS in single or multi-az deployment
|
|
Deploys the Primary vCD cell
|
|
Deploys Elastic Load Balancers for vCD
|
|