During my studies I also played around with TerraForm as IaC.

I wrote TerraForm code for different use cases some more notable were my Case Study project and a lot of assignments

I got hands-on experience with Infrastructure as Code (IaC) and managing AWS resources using Terraform. The goal was to set up a multi-regional AWS deployment, so I wrote three separate Terraform scripts for three different regions: Frankfurt, London, and Ireland. Each script was responsible for provisioning the full infrastructure, including VPCs, subnets, security groups, internet gateways, and EC2 instances.

I learned that I can execute them by using tags "–Frankfurt" would execute the code only for Frankfurt, Also I learned that Terraform is not as powerfull by itself so it was better to Combine it with Ansible

To keep the code organized, I avoided a single large file and split everything into smaller, more manageable files:

  • main.tf for the core infrastructure
  • variables.tf for defining variables
  • outputs.tf for output values
  • providers.tf for configuring the AWS provider

I thik the biggest proof of my knowledge was one particular assignment

I had to make a script which would automaticaly create two VPC one for the inside works with limited access. And the other for the public (website). It also included setting up NAT VPC peering etc.

The assignment initialy was with the 10.0.0.0 network but I decided to split it 192.168.1.0/24 myself to practice my skills in subnetting.

For the networking, I decided to use the 192.168.0.0/24 range instead of the typical 10.0.0.0/8. This choice made better use of IP addresses based on the project’s needs. I also made sure to properly subnet across availability zones to ensure high availability.

The project also included integrations with other tools:

  • I used Ansible for configuration management after deploying the infrastructure
  • Set up proper IAM roles and policies
  • Created network diagrams for documentation

Some key takeaways from the project include:

  • Gaining a deeper understanding of Terraform
  • Splitting code into files for proper management
  • Improving my knowledge of AWS networking
  • Real world scenario for AWS infrastructure

I also got suggested by tachers to focus on intergating variables and etc.

Later on for my case study project I had to implement Terraform again, this time as a part of a stack of Clouformation and Ansible.

The biggest key take away from it was the fact that I learned how to use already created infrastructure and use it. For example I used Terraform to create ec2 instances and I used resoureces like vpc and subnet group that were already existing.

Overall, this project really helped me improve my skills in infrastructure automation and cloud resource management.

Terraform