Skip to content

cornerstonehq/devops-tech-test

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 

Repository files navigation

Cornerstone DevOps tech test

Overview

Create the resources to run a basic 3-tier application.

This task should be completed using Terraform 0.11.x (0.12.x is acceptable, but not currently used at Cornerstone). You can download Terraform from their website, alternatively if you are using a Mac, you can use homebrew:

brew install terraform@0.11

You can find resource documentation on the Terraform site.

You may find some helpful functions in the Interpolation Syntax docs.

The provider setup is provided in main.tf. If you wish to add additional files to make your resources more structured, please feel free to do so.

This test should not take more than 4 hours to complete.

Requirements

This project should be forked into your personal account, and the work completed there. You should submit your repository URL when you have completed the work.

When you first start writing new code in Terraform, you will typically need to perform a terraform init, to pull down the provider.

You may also wish to check what your configuration will generate, you can do this with terraform plan.

One of the requirements will be to set up a load balancer, which typically would require an SSL certificate, but this is out of the scope of this exercise, so only HTTP resources will be required.

This isn't an exhaustive list of every components required, some initiative will be required on your part.

  • A VPC with the CIDR: 123.0.0.0/16

  • 2 Public Subnets

  • 2 Private Subnets

  • NAT Gateways

  • Security Groups

  • Application Load Balancer

    • HTTP Listener
    • Target Groups
  • Auto Scaling Groups

    • Frontend
    • Backend
  • Aurora MySQL Database

  • S3 Bucket

  • IAM Role

    • Allow the EC2 instances to read/write to above S3 Bucket

Bonus Points

  • Creating reusable code with Modules to simplify the creation of repeated/multiple resources
  • Usage of the fmt command to produce well formatted code

Releases

No releases published

Packages

No packages published

Languages