Cloud Services AWS Tech Challenge
Cloud Services AWS Tech Challenge
Instructions
1. Create Terraform code that creates these networking and compute constructs and push the code to a public
GitHub repository. Any detail that is not provided in the scenario is up to your discretion.
2. Use the Open-Source modules Coalfire publishes as much as possible in your solution.
a. Coalfire AWS Terraform Repos are here - https://github.com/orgs/Coalfire-
CF/repositories?type=public&q=terraform-aws
3. Login to the stand-alone EC2 instance in sub2 and take a screenshot of the terminal while logged in. Include
this screenshot in your documentation.
4. Create a diagram that details the architecture of your solution.
5. Your final deliverables will include:
a. Working Terraform code in a public GitHub repository.
b. The URL of your GitHub repository.
c. An architecture diagram.
d. A document describing your solution, which includes your screenshot and cites any references used.
e. A functional README for your repository.
Upon completing the challenge, please email your documentation and the link to your public GitHub repository
to your recruiting POC. If you have further clarification questions, or issues, please notify us immediately.
Scenario
A company is looking to create a proof-of-concept environment in AWS. They want a simple VPC as outlined below. The
company would also like to use Terraform to manage their infrastructure via code.
• 1 VPC – 10.1.0.0/16
• 4 subnets (spread evenly across two availability zones)
• Sub1 – 10.1.0.0/24 (should be accessible from internet)
• Sub2 – 10.1.1.0/24 (should be accessible from internet)
• Sub3 – 10.1.2.0/24 (should NOT be accessible from internet)
• Sub4 – 10.1.3.0/24 (should NOT be accessible from internet)
• 1 EC2 instance running Red Hat Linux in subnet sub2
• 20 GB storage
• t2.micro
• 1 auto scaling group (ASG) that will spread out instances across subnets sub3 and sub4
• Use Red Hat Linux
• 20 GB storage
• Script the installation of Apache web server (httpd) on these instances
• Add an IAM role to your ASG hosts that can read from the "images" bucket
• 2 minimum, 6 maximum hosts
• t2.micro
• 1 application load balancer (ALB) that listens on TCP port 80 (HTTP) and forwards traffic to the ASG in subnets
sub3 and sub4 on port 443
• Security groups should be used to allow necessary traffic
• An IAM role that can write to the logs to log bucket from ALL EC2s provisioned.
• 1 S3 bucket: “Images” with a folder called archive
• “Memes” folder - move objects older than 90 days to glacier.
• 1 S3 bucket: “Logs” with two folders and the following lifecycle policies
• “Active folder” - move objects older than 90 days to glacier.
• “Inactive folder” - delete objects older than 90 days.