{"id":21171414,"url":"https://github.com/faizan35/3-tier-custom-terraform-module","last_synced_at":"2026-05-20T02:52:09.932Z","repository":{"id":224928539,"uuid":"764608555","full_name":"faizan35/3-Tier-Custom-Terraform-Module","owner":"faizan35","description":"This project demonstrates the deployment of a 3-tier architecture on Amazon Web Services (AWS) using Terraform modules.","archived":false,"fork":false,"pushed_at":"2024-02-29T10:54:28.000Z","size":154,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-21T10:51:15.497Z","etag":null,"topics":["aws","terraform","terraform-module","vpc"],"latest_commit_sha":null,"homepage":"","language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/faizan35.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-02-28T11:46:03.000Z","updated_at":"2024-02-29T08:33:55.000Z","dependencies_parsed_at":"2025-01-21T10:44:18.319Z","dependency_job_id":"e8a085f9-2865-4fcf-81f1-761bb6cc0595","html_url":"https://github.com/faizan35/3-Tier-Custom-Terraform-Module","commit_stats":null,"previous_names":["faizan35/3-tier-custom-terraform-module"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/faizan35%2F3-Tier-Custom-Terraform-Module","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/faizan35%2F3-Tier-Custom-Terraform-Module/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/faizan35%2F3-Tier-Custom-Terraform-Module/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/faizan35%2F3-Tier-Custom-Terraform-Module/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/faizan35","download_url":"https://codeload.github.com/faizan35/3-Tier-Custom-Terraform-Module/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243617275,"owners_count":20320042,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws","terraform","terraform-module","vpc"],"created_at":"2024-11-20T16:05:14.557Z","updated_at":"2026-05-20T02:52:04.906Z","avatar_url":"https://github.com/faizan35.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 3 Tier Custom Terraform AWS VPC Module\n\nThis project demonstrates the deployment of a 3-tier architecture on Amazon Web Services (AWS) using Terraform modules.\n\n## Project Video\n\n###### \u003c--- Comming Soon ---\u003e\n\n## Architectural Diagram\n\n\u003cimg src=\"./architectural-dia.png\" width=\"70%\" style=\"display: block; margin: 0 auto;\"\u003e\n\n## Overview\n\nThe `3-Tier-Project` directory contains the main Terraform configuration for provisioning the infrastructure. It includes modules for configuring the application load balancer, EC2 instances, RDS instances, security groups, and VPC settings.\n\n### Modules\n\n- **app-lb:** Configures the application load balancer.\n- **ec2-instance:** Defines EC2 instances with associated configurations and user data scripts.\n- **rds:** Sets up RDS instances for database requirements.\n- **sg:** Manages security groups to control traffic access.\n- **vpc:** Configures the Virtual Private Cloud (VPC) settings.\n\n## State Backend\n\nThe `state-backend` directory contains configurations for the Terraform state backend, including setting up an S3 bucket and DynamoDB table for state management and locking.\n\nEnsure that Terraform has the necessary permissions to access the S3 bucket and DynamoDB table for storing and locking the state file securely.\n\n## Requirements\n\n| Name                                                   | Version |\n| ------------------------------------------------------ | ------- |\n| \u003ca name=\"requirement_aws\"\u003e\u003c/a\u003e [aws](#requirement_aws) | 5.38.0  |\n\n## Modules\n\n| Name                                                                    | Source                 | Version |\n| ----------------------------------------------------------------------- | ---------------------- | ------- |\n| \u003ca name=\"module_app_lb\"\u003e\u003c/a\u003e [app_lb](#module_app_lb)                   | ./modules/app-lb       | n/a     |\n| \u003ca name=\"module_ec2-instance\"\u003e\u003c/a\u003e [ec2-instance](#module_ec2-instance) | ./modules/ec2-instance | n/a     |\n| \u003ca name=\"module_rds\"\u003e\u003c/a\u003e [rds](#module_rds)                            | ./modules/rds          | n/a     |\n| \u003ca name=\"module_sg\"\u003e\u003c/a\u003e [sg](#module_sg)                               | ./modules/sg           | n/a     |\n| \u003ca name=\"module_vpc\"\u003e\u003c/a\u003e [vpc](#module_vpc)                            | ./modules/vpc          | n/a     |\n\n## Inputs\n\n| Name                                                                                    | Description           | Type     | Default | Required |\n| --------------------------------------------------------------------------------------- | --------------------- | -------- | ------- | :------: |\n| \u003ca name=\"input_allocated_storage\"\u003e\u003c/a\u003e [allocated_storage](#input_allocated_storage)    | DB Storage            | `number` | n/a     |   yes    |\n| \u003ca name=\"input_ami\"\u003e\u003c/a\u003e [ami](#input_ami)                                              | AMI for EC2           | `string` | n/a     |   yes    |\n| \u003ca name=\"input_cidr_vpc\"\u003e\u003c/a\u003e [cidr_vpc](#input_cidr_vpc)                               | CIDR for VPC.         | `string` | n/a     |   yes    |\n| \u003ca name=\"input_count_of_instance\"\u003e\u003c/a\u003e [count_of_instance](#input_count_of_instance)    | number of instance    | `number` | n/a     |   yes    |\n| \u003ca name=\"input_instance_class\"\u003e\u003c/a\u003e [instance_class](#input_instance_class)             | Class Of Instance     | `string` | n/a     |   yes    |\n| \u003ca name=\"input_instance_type\"\u003e\u003c/a\u003e [instance_type](#input_instance_type)                | Type of Instance      | `string` | n/a     |   yes    |\n| \u003ca name=\"input_password\"\u003e\u003c/a\u003e [password](#input_password)                               | DB Password           | `string` | n/a     |   yes    |\n| \u003ca name=\"input_private_cidr_vpc\"\u003e\u003c/a\u003e [private_cidr_vpc](#input_private_cidr_vpc)       | Private CIDR for VPC. | `string` | n/a     |   yes    |\n| \u003ca name=\"input_private_cidr_vpc-2\"\u003e\u003c/a\u003e [private_cidr_vpc-2](#input_private_cidr_vpc-2) | Private CIDR for VPC. | `string` | n/a     |   yes    |\n| \u003ca name=\"input_public_cidr_vpc\"\u003e\u003c/a\u003e [public_cidr_vpc](#input_public_cidr_vpc)          | public CIDR for VPC.  | `string` | n/a     |   yes    |\n| \u003ca name=\"input_username\"\u003e\u003c/a\u003e [username](#input_username)                               | DB Username           | `string` | n/a     |   yes    |\n\n## Outputs\n\n| Name                                                                                         | Description |\n| -------------------------------------------------------------------------------------------- | ----------- |\n| \u003ca name=\"output_SG_ID\"\u003e\u003c/a\u003e [SG_ID](#output_SG_ID)                                           | n/a         |\n| \u003ca name=\"output_instance-ID\"\u003e\u003c/a\u003e [instance-ID](#output_instance-ID)                         | n/a         |\n| \u003ca name=\"output_internet_gateway\"\u003e\u003c/a\u003e [internet_gateway](#output_internet_gateway)          | n/a         |\n| \u003ca name=\"output_private_subnet_id\"\u003e\u003c/a\u003e [private_subnet_id](#output_private_subnet_id)       | n/a         |\n| \u003ca name=\"output_private_subnet_id-2\"\u003e\u003c/a\u003e [private_subnet_id-2](#output_private_subnet_id-2) | n/a         |\n| \u003ca name=\"output_public_subnet_id\"\u003e\u003c/a\u003e [public_subnet_id](#output_public_subnet_id)          | n/a         |\n| \u003ca name=\"output_vpc_id\"\u003e\u003c/a\u003e [vpc_id](#output_vpc_id)                                        | n/a         |\n\n## Maintenance\n\nEnsure to keep your Terraform configurations up-to-date with any changes or updates to your infrastructure requirements. Periodically review and audit your resources to optimize costs, security, and performance.\n\n## Contributions\n\nFeel free to contribute to this project by submitting pull requests, reporting issues, or suggesting enhancements.\n\n## License\n\nThis project is licensed under the [MIT License](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffaizan35%2F3-tier-custom-terraform-module","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffaizan35%2F3-tier-custom-terraform-module","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffaizan35%2F3-tier-custom-terraform-module/lists"}