{"id":44937693,"url":"https://github.com/shamimice03/aws-reference-architecture-v1","last_synced_at":"2026-02-18T07:34:02.220Z","repository":{"id":188656163,"uuid":"679150328","full_name":"shamimice03/aws-reference-architecture-v1","owner":"shamimice03","description":"A reference architecture for AWS infrastructure provisioning utilizing Terraform.","archived":false,"fork":false,"pushed_at":"2023-10-10T00:44:05.000Z","size":440,"stargazers_count":0,"open_issues_count":5,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2023-10-10T19:12:21.732Z","etag":null,"topics":["aws","aws-alb","aws-autoscaling","aws-certificate-manager","aws-ec2","aws-efs","aws-iam","aws-parameter-store","aws-rds","aws-route53","aws-security-group","aws-vpc","terraform","terraform-module"],"latest_commit_sha":null,"homepage":"","language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/shamimice03.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-08-16T07:53:10.000Z","updated_at":"2023-10-10T19:12:21.733Z","dependencies_parsed_at":null,"dependency_job_id":"ebc23719-3c56-435a-b6c7-d77364c092a7","html_url":"https://github.com/shamimice03/aws-reference-architecture-v1","commit_stats":null,"previous_names":["cloudterms-io/application-on-aws","shamimice03/aws-ref-architecture","shamimice03/aws-reference-architecture-v1"],"tags_count":5,"template":null,"template_full_name":null,"purl":"pkg:github/shamimice03/aws-reference-architecture-v1","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shamimice03%2Faws-reference-architecture-v1","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shamimice03%2Faws-reference-architecture-v1/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shamimice03%2Faws-reference-architecture-v1/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shamimice03%2Faws-reference-architecture-v1/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shamimice03","download_url":"https://codeload.github.com/shamimice03/aws-reference-architecture-v1/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shamimice03%2Faws-reference-architecture-v1/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29572456,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-18T06:19:27.422Z","status":"ssl_error","status_checked_at":"2026-02-18T06:18:44.348Z","response_time":162,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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","aws-alb","aws-autoscaling","aws-certificate-manager","aws-ec2","aws-efs","aws-iam","aws-parameter-store","aws-rds","aws-route53","aws-security-group","aws-vpc","terraform","terraform-module"],"created_at":"2026-02-18T07:34:02.150Z","updated_at":"2026-02-18T07:34:02.199Z","avatar_url":"https://github.com/shamimice03.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AWS-Reference-Architecture\n\n![Alt text](images/aws-ref-arch.png)\n\n\u003c!-- BEGINNING OF PRE-COMMIT-TERRAFORM DOCS HOOK --\u003e\n## Requirements\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"requirement_terraform\"\u003e\u003c/a\u003e [terraform](#requirement\\_terraform) | \u003e= 1.3.0, \u003c 1.6.0 |\n| \u003ca name=\"requirement_aws\"\u003e\u003c/a\u003e [aws](#requirement\\_aws) | \u003e= 5.17.0 |\n\n## Providers\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"provider_aws\"\u003e\u003c/a\u003e [aws](#provider\\_aws) | 5.17.0 |\n\n## Modules\n\n| Name | Source | Version |\n|------|--------|---------|\n| \u003ca name=\"module_acm_route53\"\u003e\u003c/a\u003e [acm\\_route53](#module\\_acm\\_route53) | shamimice03/acm-route53/aws | 1.1.0 |\n| \u003ca name=\"module_alb\"\u003e\u003c/a\u003e [alb](#module\\_alb) | terraform-aws-modules/alb/aws | 8.7.0 |\n| \u003ca name=\"module_alb_route53_record\"\u003e\u003c/a\u003e [alb\\_route53\\_record](#module\\_alb\\_route53\\_record) | ./modules/alb-route53 | n/a |\n| \u003ca name=\"module_alb_sg\"\u003e\u003c/a\u003e [alb\\_sg](#module\\_alb\\_sg) | terraform-aws-modules/security-group/aws | 5.1.0 |\n| \u003ca name=\"module_asg\"\u003e\u003c/a\u003e [asg](#module\\_asg) | terraform-aws-modules/autoscaling/aws | 6.10.0 |\n| \u003ca name=\"module_custom_iam_policy\"\u003e\u003c/a\u003e [custom\\_iam\\_policy](#module\\_custom\\_iam\\_policy) | terraform-aws-modules/iam/aws//modules/iam-policy | 5.30.0 |\n| \u003ca name=\"module_ec2_sg\"\u003e\u003c/a\u003e [ec2\\_sg](#module\\_ec2\\_sg) | terraform-aws-modules/security-group/aws | 5.1.0 |\n| \u003ca name=\"module_efs\"\u003e\u003c/a\u003e [efs](#module\\_efs) | ./modules/efs | n/a |\n| \u003ca name=\"module_efs_parameters\"\u003e\u003c/a\u003e [efs\\_parameters](#module\\_efs\\_parameters) | shamimice03/ssm-parameter/aws | 0.5.0 |\n| \u003ca name=\"module_efs_sg\"\u003e\u003c/a\u003e [efs\\_sg](#module\\_efs\\_sg) | terraform-aws-modules/security-group/aws | 5.1.0 |\n| \u003ca name=\"module_instance_profile\"\u003e\u003c/a\u003e [instance\\_profile](#module\\_instance\\_profile) | ./modules/iam-instance-profile | n/a |\n| \u003ca name=\"module_launch_template\"\u003e\u003c/a\u003e [launch\\_template](#module\\_launch\\_template) | ./modules/launch-template | n/a |\n| \u003ca name=\"module_primary_db_parameters\"\u003e\u003c/a\u003e [primary\\_db\\_parameters](#module\\_primary\\_db\\_parameters) | shamimice03/ssm-parameter/aws | 0.5.0 |\n| \u003ca name=\"module_rds\"\u003e\u003c/a\u003e [rds](#module\\_rds) | shamimice03/rds-blueprint/aws | 1.3.0 |\n| \u003ca name=\"module_rds_replica\"\u003e\u003c/a\u003e [rds\\_replica](#module\\_rds\\_replica) | shamimice03/rds-blueprint/aws | 1.3.0 |\n| \u003ca name=\"module_rds_sg\"\u003e\u003c/a\u003e [rds\\_sg](#module\\_rds\\_sg) | terraform-aws-modules/security-group/aws | 5.1.0 |\n| \u003ca name=\"module_replica_db_parameters\"\u003e\u003c/a\u003e [replica\\_db\\_parameters](#module\\_replica\\_db\\_parameters) | shamimice03/ssm-parameter/aws | 0.5.0 |\n| \u003ca name=\"module_ssh_sg\"\u003e\u003c/a\u003e [ssh\\_sg](#module\\_ssh\\_sg) | terraform-aws-modules/security-group/aws | 5.1.0 |\n| \u003ca name=\"module_vpc\"\u003e\u003c/a\u003e [vpc](#module\\_vpc) | shamimice03/vpc/aws | 1.2.1 |\n\n## Resources\n\n| Name | Type |\n|------|------|\n| [aws_acm_certificate.issued](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/acm_certificate) | data source |\n| [aws_ami.amazonlinux2](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/ami) | data source |\n\n## Inputs\n\n| Name | Description | Type | Default | Required |\n|------|-------------|------|---------|:--------:|\n| \u003ca name=\"input_acm_allow_record_overwrite\"\u003e\u003c/a\u003e [acm\\_allow\\_record\\_overwrite](#input\\_acm\\_allow\\_record\\_overwrite) | Allow record overwrite in DNS validation | `bool` | `true` | no |\n| \u003ca name=\"input_acm_domain_names\"\u003e\u003c/a\u003e [acm\\_domain\\_names](#input\\_acm\\_domain\\_names) | Domain name for ACM certificate | `list(string)` | `[]` | no |\n| \u003ca name=\"input_acm_hosted_zone_name\"\u003e\u003c/a\u003e [acm\\_hosted\\_zone\\_name](#input\\_acm\\_hosted\\_zone\\_name) | Hosted zone name for DNS validation | `string` | `\"\"` | no |\n| \u003ca name=\"input_acm_private_zone\"\u003e\u003c/a\u003e [acm\\_private\\_zone](#input\\_acm\\_private\\_zone) | Whether the hosted zone is private or not | `bool` | `false` | no |\n| \u003ca name=\"input_acm_ttl\"\u003e\u003c/a\u003e [acm\\_ttl](#input\\_acm\\_ttl) | Time to live (TTL) for DNS records | `number` | `60` | no |\n| \u003ca name=\"input_acm_validation_method\"\u003e\u003c/a\u003e [acm\\_validation\\_method](#input\\_acm\\_validation\\_method) | Validation method for ACM certificate | `string` | `\"DNS\"` | no |\n| \u003ca name=\"input_alb_acm_certificate_domain_name\"\u003e\u003c/a\u003e [alb\\_acm\\_certificate\\_domain\\_name](#input\\_alb\\_acm\\_certificate\\_domain\\_name) | ACM Certificate domain name | `string` | `\"\"` | no |\n| \u003ca name=\"input_alb_name_prefix\"\u003e\u003c/a\u003e [alb\\_name\\_prefix](#input\\_alb\\_name\\_prefix) | Prefix for the Application Load Balancer name | `string` | `\"\"` | no |\n| \u003ca name=\"input_alb_route53_allow_record_overwrite\"\u003e\u003c/a\u003e [alb\\_route53\\_allow\\_record\\_overwrite](#input\\_alb\\_route53\\_allow\\_record\\_overwrite) | Allow creation of this record in Terraform to overwrite an existing record | `bool` | `false` | no |\n| \u003ca name=\"input_alb_route53_evaluate_target_health\"\u003e\u003c/a\u003e [alb\\_route53\\_evaluate\\_target\\_health](#input\\_alb\\_route53\\_evaluate\\_target\\_health) | Whether to evaluate the target health of the ALB | `bool` | `true` | no |\n| \u003ca name=\"input_alb_route53_private_zone\"\u003e\u003c/a\u003e [alb\\_route53\\_private\\_zone](#input\\_alb\\_route53\\_private\\_zone) | Whether the DNS zone is private or not | `bool` | `false` | no |\n| \u003ca name=\"input_alb_route53_record_names\"\u003e\u003c/a\u003e [alb\\_route53\\_record\\_names](#input\\_alb\\_route53\\_record\\_names) | The DNS record name for the first ALB record | `list(string)` | `[]` | no |\n| \u003ca name=\"input_alb_route53_record_type\"\u003e\u003c/a\u003e [alb\\_route53\\_record\\_type](#input\\_alb\\_route53\\_record\\_type) | The DNS record type for ALB records | `string` | `\"A\"` | no |\n| \u003ca name=\"input_alb_route53_zone_name\"\u003e\u003c/a\u003e [alb\\_route53\\_zone\\_name](#input\\_alb\\_route53\\_zone\\_name) | The DNS zone name | `string` | `\"\"` | no |\n| \u003ca name=\"input_alb_security_groups\"\u003e\u003c/a\u003e [alb\\_security\\_groups](#input\\_alb\\_security\\_groups) | List of security group IDs for the Application Load Balancer (ALB) | `list(string)` | `[]` | no |\n| \u003ca name=\"input_alb_sg_name\"\u003e\u003c/a\u003e [alb\\_sg\\_name](#input\\_alb\\_sg\\_name) | Name of the ALB security group | `string` | `\"aws-ref-alb-sg\"` | no |\n| \u003ca name=\"input_alb_subnets\"\u003e\u003c/a\u003e [alb\\_subnets](#input\\_alb\\_subnets) | List of subnet IDs for the Application Load Balancer (ALB) | `list(string)` | `[]` | no |\n| \u003ca name=\"input_alb_target_group_name_prefix\"\u003e\u003c/a\u003e [alb\\_target\\_group\\_name\\_prefix](#input\\_alb\\_target\\_group\\_name\\_prefix) | Prefix for the ALB target group name | `string` | `\"\"` | no |\n| \u003ca name=\"input_allocated_storage\"\u003e\u003c/a\u003e [allocated\\_storage](#input\\_allocated\\_storage) | Allocated storage for the RDS instance (in GB) | `string` | `\"20\"` | no |\n| \u003ca name=\"input_apply_immediately\"\u003e\u003c/a\u003e [apply\\_immediately](#input\\_apply\\_immediately) | Apply changes immediately or during the next maintenance window | `bool` | `true` | no |\n| \u003ca name=\"input_asg_create\"\u003e\u003c/a\u003e [asg\\_create](#input\\_asg\\_create) | Whether to create asg or not. asg dependent on `Launch Template` | `bool` | `true` | no |\n| \u003ca name=\"input_asg_desired_capacity\"\u003e\u003c/a\u003e [asg\\_desired\\_capacity](#input\\_asg\\_desired\\_capacity) | Desired capacity of the Auto Scaling Group | `number` | `1` | no |\n| \u003ca name=\"input_asg_enable_monitoring\"\u003e\u003c/a\u003e [asg\\_enable\\_monitoring](#input\\_asg\\_enable\\_monitoring) | Enable monitoring for the Auto Scaling Group | `bool` | `true` | no |\n| \u003ca name=\"input_asg_health_check_grace_period\"\u003e\u003c/a\u003e [asg\\_health\\_check\\_grace\\_period](#input\\_asg\\_health\\_check\\_grace\\_period) | Health check grace period for instances in the Auto Scaling Group | `number` | `300` | no |\n| \u003ca name=\"input_asg_health_check_type\"\u003e\u003c/a\u003e [asg\\_health\\_check\\_type](#input\\_asg\\_health\\_check\\_type) | Health check type for the Auto Scaling Group | `string` | `\"ELB\"` | no |\n| \u003ca name=\"input_asg_max_size\"\u003e\u003c/a\u003e [asg\\_max\\_size](#input\\_asg\\_max\\_size) | Maximum size of the Auto Scaling Group | `number` | `2` | no |\n| \u003ca name=\"input_asg_min_size\"\u003e\u003c/a\u003e [asg\\_min\\_size](#input\\_asg\\_min\\_size) | Minimum size of the Auto Scaling Group | `number` | `1` | no |\n| \u003ca name=\"input_asg_name\"\u003e\u003c/a\u003e [asg\\_name](#input\\_asg\\_name) | Name of the Auto Scaling Group | `string` | `\"\"` | no |\n| \u003ca name=\"input_asg_vpc_zone_identifier\"\u003e\u003c/a\u003e [asg\\_vpc\\_zone\\_identifier](#input\\_asg\\_vpc\\_zone\\_identifier) | List of subnet IDs to launch resources in. Subnets automatically determine which availability zones the group will reside. Required if `VPC` is not created as part of this project | `list(string)` | `[]` | no |\n| \u003ca name=\"input_asg_wait_for_capacity_timeout\"\u003e\u003c/a\u003e [asg\\_wait\\_for\\_capacity\\_timeout](#input\\_asg\\_wait\\_for\\_capacity\\_timeout) | Timeout for waiting for the desired capacity to be reached | `string` | `\"10m\"` | no |\n| \u003ca name=\"input_azs\"\u003e\u003c/a\u003e [azs](#input\\_azs) | Availability Zones for subnets | `list(string)` | `[]` | no |\n| \u003ca name=\"input_backup_retention_period\"\u003e\u003c/a\u003e [backup\\_retention\\_period](#input\\_backup\\_retention\\_period) | Backup retention period (in days) for the RDS instance | `number` | `7` | no |\n| \u003ca name=\"input_backup_window\"\u003e\u003c/a\u003e [backup\\_window](#input\\_backup\\_window) | Preferred backup window for the RDS instance | `string` | `\"03:00-05:00\"` | no |\n| \u003ca name=\"input_cidr\"\u003e\u003c/a\u003e [cidr](#input\\_cidr) | CIDR block for the VPC | `string` | `\"\"` | no |\n| \u003ca name=\"input_create_alb_route53_record\"\u003e\u003c/a\u003e [create\\_alb\\_route53\\_record](#input\\_create\\_alb\\_route53\\_record) | Whether to create ALB - Route53 record | `bool` | `true` | no |\n| \u003ca name=\"input_create_alb_sg\"\u003e\u003c/a\u003e [create\\_alb\\_sg](#input\\_create\\_alb\\_sg) | Whether to create the Application Load Balancer (ALB) security group. | `bool` | `false` | no |\n| \u003ca name=\"input_create_certificates\"\u003e\u003c/a\u003e [create\\_certificates](#input\\_create\\_certificates) | Controls if certificate should be generated | `bool` | `true` | no |\n| \u003ca name=\"input_create_custom_policy\"\u003e\u003c/a\u003e [create\\_custom\\_policy](#input\\_create\\_custom\\_policy) | Whether to create custom policy | `bool` | `false` | no |\n| \u003ca name=\"input_create_db_subnet_group\"\u003e\u003c/a\u003e [create\\_db\\_subnet\\_group](#input\\_create\\_db\\_subnet\\_group) | Create a new DB subnet group | `bool` | `true` | no |\n| \u003ca name=\"input_create_ec2_sg\"\u003e\u003c/a\u003e [create\\_ec2\\_sg](#input\\_create\\_ec2\\_sg) | Whether to create the EC2 instance security group. | `bool` | `false` | no |\n| \u003ca name=\"input_create_efs_parameters\"\u003e\u003c/a\u003e [create\\_efs\\_parameters](#input\\_create\\_efs\\_parameters) | Whether to store efs parameters on SSM parameter store | `bool` | `false` | no |\n| \u003ca name=\"input_create_efs_sg\"\u003e\u003c/a\u003e [create\\_efs\\_sg](#input\\_create\\_efs\\_sg) | Whether to create the Elastic File System (EFS) security group. | `bool` | `false` | no |\n| \u003ca name=\"input_create_instance_profile\"\u003e\u003c/a\u003e [create\\_instance\\_profile](#input\\_create\\_instance\\_profile) | Whether to create an instance profile | `bool` | `true` | no |\n| \u003ca name=\"input_create_launch_template\"\u003e\u003c/a\u003e [create\\_launch\\_template](#input\\_create\\_launch\\_template) | Whether to create new launch template | `bool` | `true` | no |\n| \u003ca name=\"input_create_lb\"\u003e\u003c/a\u003e [create\\_lb](#input\\_create\\_lb) | Controls if the Load Balancer should be created | `bool` | `true` | no |\n| \u003ca name=\"input_create_primary_database\"\u003e\u003c/a\u003e [create\\_primary\\_database](#input\\_create\\_primary\\_database) | Whether to create primary database | `bool` | `true` | no |\n| \u003ca name=\"input_create_primary_db_parameters\"\u003e\u003c/a\u003e [create\\_primary\\_db\\_parameters](#input\\_create\\_primary\\_db\\_parameters) | Whether to store primary database parameters on SSM parameter store | `bool` | `false` | no |\n| \u003ca name=\"input_create_rds_sg\"\u003e\u003c/a\u003e [create\\_rds\\_sg](#input\\_create\\_rds\\_sg) | Whether to create the RDS security group. | `bool` | `false` | no |\n| \u003ca name=\"input_create_replica_database\"\u003e\u003c/a\u003e [create\\_replica\\_database](#input\\_create\\_replica\\_database) | Whether to create replica database. `create_primary_database` must be `true` | `bool` | `true` | no |\n| \u003ca name=\"input_create_replica_db_parameters\"\u003e\u003c/a\u003e [create\\_replica\\_db\\_parameters](#input\\_create\\_replica\\_db\\_parameters) | Whether to store replica database parameters on SSM parameter store | `bool` | `false` | no |\n| \u003ca name=\"input_create_ssh_sg\"\u003e\u003c/a\u003e [create\\_ssh\\_sg](#input\\_create\\_ssh\\_sg) | Whether to create the SSH security group | `bool` | `false` | no |\n| \u003ca name=\"input_create_vpc\"\u003e\u003c/a\u003e [create\\_vpc](#input\\_create\\_vpc) | Controls if VPC should be created | `bool` | `true` | no |\n| \u003ca name=\"input_custom_iam_policy_description\"\u003e\u003c/a\u003e [custom\\_iam\\_policy\\_description](#input\\_custom\\_iam\\_policy\\_description) | Description for the IAM policy. Required if `create_custom_policy` set to `true` | `string` | `\"custom policy\"` | no |\n| \u003ca name=\"input_custom_iam_policy_json\"\u003e\u003c/a\u003e [custom\\_iam\\_policy\\_json](#input\\_custom\\_iam\\_policy\\_json) | JSON policy document. Required if `create_custom_policy` set to `true` | `string` | `\"\"` | no |\n| \u003ca name=\"input_custom_iam_policy_name_prefix\"\u003e\u003c/a\u003e [custom\\_iam\\_policy\\_name\\_prefix](#input\\_custom\\_iam\\_policy\\_name\\_prefix) | Prefix for the IAM policy name. Required if `create_custom_policy` set to `true` | `string` | `\"\"` | no |\n| \u003ca name=\"input_custom_iam_policy_path\"\u003e\u003c/a\u003e [custom\\_iam\\_policy\\_path](#input\\_custom\\_iam\\_policy\\_path) | The path for the IAM policy. Required if `create_custom_policy` set to `true` | `string` | `\"/\"` | no |\n| \u003ca name=\"input_database_port\"\u003e\u003c/a\u003e [database\\_port](#input\\_database\\_port) | Port for the RDS instance | `number` | `3306` | no |\n| \u003ca name=\"input_db_identifier\"\u003e\u003c/a\u003e [db\\_identifier](#input\\_db\\_identifier) | The name of the RDS instance | `string` | `\"aws-ref-arch-db\"` | no |\n| \u003ca name=\"input_db_master_username\"\u003e\u003c/a\u003e [db\\_master\\_username](#input\\_db\\_master\\_username) | Master username for the RDS instance | `string` | `\"\"` | no |\n| \u003ca name=\"input_db_name\"\u003e\u003c/a\u003e [db\\_name](#input\\_db\\_name) | Name of the initial database | `string` | `\"\"` | no |\n| \u003ca name=\"input_db_security_groups\"\u003e\u003c/a\u003e [db\\_security\\_groups](#input\\_db\\_security\\_groups) | List of security group IDs for the RDS instance | `list(string)` | `[]` | no |\n| \u003ca name=\"input_db_subnet_cidr\"\u003e\u003c/a\u003e [db\\_subnet\\_cidr](#input\\_db\\_subnet\\_cidr) | CIDR blocks for database subnets | `list(string)` | `[]` | no |\n| \u003ca name=\"input_db_subnet_group_name\"\u003e\u003c/a\u003e [db\\_subnet\\_group\\_name](#input\\_db\\_subnet\\_group\\_name) | Name for the DB subnet group | `string` | `\"aws-ref-arch-db-subnet\"` | no |\n| \u003ca name=\"input_db_subnets\"\u003e\u003c/a\u003e [db\\_subnets](#input\\_db\\_subnets) | List of DB subnets for the RDS instance | `list(string)` | `[]` | no |\n| \u003ca name=\"input_delete_automated_backups\"\u003e\u003c/a\u003e [delete\\_automated\\_backups](#input\\_delete\\_automated\\_backups) | Delete automated backups when the RDS instance is deleted | `bool` | `true` | no |\n| \u003ca name=\"input_deletion_protection\"\u003e\u003c/a\u003e [deletion\\_protection](#input\\_deletion\\_protection) | Enable or disable deletion protection for the RDS instance | `bool` | `false` | no |\n| \u003ca name=\"input_ec2_sg_name\"\u003e\u003c/a\u003e [ec2\\_sg\\_name](#input\\_ec2\\_sg\\_name) | Name of the ec2 security group | `string` | `\"aws-ref-ec2-sg\"` | no |\n| \u003ca name=\"input_efs_create\"\u003e\u003c/a\u003e [efs\\_create](#input\\_efs\\_create) | Whether to create Elastic File System | `bool` | `false` | no |\n| \u003ca name=\"input_efs_encrypted\"\u003e\u003c/a\u003e [efs\\_encrypted](#input\\_efs\\_encrypted) | Whether to enable encryption for the EFS file system | `bool` | `true` | no |\n| \u003ca name=\"input_efs_mount_target_security_group_ids\"\u003e\u003c/a\u003e [efs\\_mount\\_target\\_security\\_group\\_ids](#input\\_efs\\_mount\\_target\\_security\\_group\\_ids) | List of security group IDs for EFS mount targets | `list(string)` | `[]` | no |\n| \u003ca name=\"input_efs_mount_target_subnet_ids\"\u003e\u003c/a\u003e [efs\\_mount\\_target\\_subnet\\_ids](#input\\_efs\\_mount\\_target\\_subnet\\_ids) | List of subnet IDs for EFS mount targets | `list(string)` | `[]` | no |\n| \u003ca name=\"input_efs_name\"\u003e\u003c/a\u003e [efs\\_name](#input\\_efs\\_name) | Name of the Elastic File System | `string` | `\"\"` | no |\n| \u003ca name=\"input_efs_performance_mode\"\u003e\u003c/a\u003e [efs\\_performance\\_mode](#input\\_efs\\_performance\\_mode) | The performance mode for the EFS file system (e.g., 'generalPurpose' or 'maxIO') | `string` | `\"generalPurpose\"` | no |\n| \u003ca name=\"input_efs_sg_name\"\u003e\u003c/a\u003e [efs\\_sg\\_name](#input\\_efs\\_sg\\_name) | Name of the EFS security group | `string` | `\"aws-ref-efs-sg\"` | no |\n| \u003ca name=\"input_efs_throughput_mode\"\u003e\u003c/a\u003e [efs\\_throughput\\_mode](#input\\_efs\\_throughput\\_mode) | The throughput mode for the EFS file system (e.g., 'bursting' or 'provisioned') | `string` | `\"bursting\"` | no |\n| \u003ca name=\"input_efs_transition_to_ia\"\u003e\u003c/a\u003e [efs\\_transition\\_to\\_ia](#input\\_efs\\_transition\\_to\\_ia) | The lifecycle policy transition for files to Infrequent Access (IA) storage | `string` | `\"AFTER_30_DAYS\"` | no |\n| \u003ca name=\"input_enable_dns_hostnames\"\u003e\u003c/a\u003e [enable\\_dns\\_hostnames](#input\\_enable\\_dns\\_hostnames) | Enable DNS hostnames for the VPC | `bool` | `true` | no |\n| \u003ca name=\"input_enable_dns_support\"\u003e\u003c/a\u003e [enable\\_dns\\_support](#input\\_enable\\_dns\\_support) | Enable DNS resolution for the VPC | `bool` | `true` | no |\n| \u003ca name=\"input_enable_single_nat_gateway\"\u003e\u003c/a\u003e [enable\\_single\\_nat\\_gateway](#input\\_enable\\_single\\_nat\\_gateway) | Enable a single NAT gateway for all private subnets | `bool` | `false` | no |\n| \u003ca name=\"input_enabled_cloudwatch_logs_exports\"\u003e\u003c/a\u003e [enabled\\_cloudwatch\\_logs\\_exports](#input\\_enabled\\_cloudwatch\\_logs\\_exports) | Set of log types to enable for exporting to CloudWatch logs. If omitted, no logs will be exported. Valid values (depending on engine). MySQL and MariaDB: audit, error, general, slowquery. PostgreSQL: postgresql, upgrade. MSSQL: agent , error. Oracle: alert, audit, listener, trace. | `list(string)` | \u003cpre\u003e[\u003cbr\u003e  \"audit\",\u003cbr\u003e  \"error\"\u003cbr\u003e]\u003c/pre\u003e | no |\n| \u003ca name=\"input_engine\"\u003e\u003c/a\u003e [engine](#input\\_engine) | Database engine type | `string` | `\"mysql\"` | no |\n| \u003ca name=\"input_engine_version\"\u003e\u003c/a\u003e [engine\\_version](#input\\_engine\\_version) | Database engine version | `string` | `\"8.0\"` | no |\n| \u003ca name=\"input_general_tags\"\u003e\u003c/a\u003e [general\\_tags](#input\\_general\\_tags) | General tags to apply to resources created | `map(string)` | \u003cpre\u003e{\u003cbr\u003e  \"Env\": \"dev\",\u003cbr\u003e  \"Project_name\": \"aws-ref-architecture\",\u003cbr\u003e  \"Team\": \"platform-team\"\u003cbr\u003e}\u003c/pre\u003e | no |\n| \u003ca name=\"input_iam_database_authentication_enabled\"\u003e\u003c/a\u003e [iam\\_database\\_authentication\\_enabled](#input\\_iam\\_database\\_authentication\\_enabled) | Enable IAM database authentication | `bool` | `false` | no |\n| \u003ca name=\"input_instance_class\"\u003e\u003c/a\u003e [instance\\_class](#input\\_instance\\_class) | RDS instance class | `string` | `\"db.t3.micro\"` | no |\n| \u003ca name=\"input_instance_profile_custom_policy_arns\"\u003e\u003c/a\u003e [instance\\_profile\\_custom\\_policy\\_arns](#input\\_instance\\_profile\\_custom\\_policy\\_arns) | List of ARNs of custom policies(created outside of this project) to attach to the role | `list(string)` | `[]` | no |\n| \u003ca name=\"input_instance_profile_instance_profile_name\"\u003e\u003c/a\u003e [instance\\_profile\\_instance\\_profile\\_name](#input\\_instance\\_profile\\_instance\\_profile\\_name) | Name of the IAM instance profile | `string` | `\"\"` | no |\n| \u003ca name=\"input_instance_profile_managed_policy_arns\"\u003e\u003c/a\u003e [instance\\_profile\\_managed\\_policy\\_arns](#input\\_instance\\_profile\\_managed\\_policy\\_arns) | List of ARNs of managed policies to attach to the role | `list(string)` | `[]` | no |\n| \u003ca name=\"input_instance_profile_role_name\"\u003e\u003c/a\u003e [instance\\_profile\\_role\\_name](#input\\_instance\\_profile\\_role\\_name) | Name of the IAM role associated with the instance profile | `string` | `\"aws-ref-instance-role\"` | no |\n| \u003ca name=\"input_instance_profile_role_path\"\u003e\u003c/a\u003e [instance\\_profile\\_role\\_path](#input\\_instance\\_profile\\_role\\_path) | The path for the IAM role | `string` | `\"/\"` | no |\n| \u003ca name=\"input_intra_subnet_cidr\"\u003e\u003c/a\u003e [intra\\_subnet\\_cidr](#input\\_intra\\_subnet\\_cidr) | CIDR blocks for intra subnets. Used as EFS subnets | `list(string)` | `[]` | no |\n| \u003ca name=\"input_launch_template_delete_on_termination\"\u003e\u003c/a\u003e [launch\\_template\\_delete\\_on\\_termination](#input\\_launch\\_template\\_delete\\_on\\_termination) | Whether the root volume should be deleted on instance termination | `bool` | `true` | no |\n| \u003ca name=\"input_launch_template_device_name\"\u003e\u003c/a\u003e [launch\\_template\\_device\\_name](#input\\_launch\\_template\\_device\\_name) | The device name for the root volume | `string` | `\"/dev/xvda\"` | no |\n| \u003ca name=\"input_launch_template_enable_monitoring\"\u003e\u003c/a\u003e [launch\\_template\\_enable\\_monitoring](#input\\_launch\\_template\\_enable\\_monitoring) | Whether instance monitoring should be enabled | `bool` | `false` | no |\n| \u003ca name=\"input_launch_template_image_id\"\u003e\u003c/a\u003e [launch\\_template\\_image\\_id](#input\\_launch\\_template\\_image\\_id) | The AMI from which to launch the instance. Default will be `Amazonlinux2` | `string` | `\"\"` | no |\n| \u003ca name=\"input_launch_template_instance_type\"\u003e\u003c/a\u003e [launch\\_template\\_instance\\_type](#input\\_launch\\_template\\_instance\\_type) | The EC2 instance type for instances launched from the template | `string` | `\"t2.micro\"` | no |\n| \u003ca name=\"input_launch_template_key_name\"\u003e\u003c/a\u003e [launch\\_template\\_key\\_name](#input\\_launch\\_template\\_key\\_name) | The name of the SSH key pair to associate with instances launched from the template | `string` | `\"\"` | no |\n| \u003ca name=\"input_launch_template_name_prefix\"\u003e\u003c/a\u003e [launch\\_template\\_name\\_prefix](#input\\_launch\\_template\\_name\\_prefix) | Creates a unique name beginning with the specified prefix | `string` | `\"aws-ref\"` | no |\n| \u003ca name=\"input_launch_template_resource_type\"\u003e\u003c/a\u003e [launch\\_template\\_resource\\_type](#input\\_launch\\_template\\_resource\\_type) | The type of resource to tag | `string` | `\"instance\"` | no |\n| \u003ca name=\"input_launch_template_sg_ids\"\u003e\u003c/a\u003e [launch\\_template\\_sg\\_ids](#input\\_launch\\_template\\_sg\\_ids) | List of security group IDs for the launch template | `list(string)` | `[]` | no |\n| \u003ca name=\"input_launch_template_update_default_version\"\u003e\u003c/a\u003e [launch\\_template\\_update\\_default\\_version](#input\\_launch\\_template\\_update\\_default\\_version) | Flag to update the default version of the launch template | `bool` | `true` | no |\n| \u003ca name=\"input_launch_template_userdata_file_path\"\u003e\u003c/a\u003e [launch\\_template\\_userdata\\_file\\_path](#input\\_launch\\_template\\_userdata\\_file\\_path) | Path to the user data script file | `string` | `\"\"` | no |\n| \u003ca name=\"input_launch_template_volume_size\"\u003e\u003c/a\u003e [launch\\_template\\_volume\\_size](#input\\_launch\\_template\\_volume\\_size) | The size of the root volume for instances launched from the template (in GiB) | `number` | `20` | no |\n| \u003ca name=\"input_launch_template_volume_type\"\u003e\u003c/a\u003e [launch\\_template\\_volume\\_type](#input\\_launch\\_template\\_volume\\_type) | The type of volume for the root volume (e.g., 'gp2') | `string` | `\"gp2\"` | no |\n| \u003ca name=\"input_load_balancer_type\"\u003e\u003c/a\u003e [load\\_balancer\\_type](#input\\_load\\_balancer\\_type) | Type of the Load Balancer | `string` | `\"application\"` | no |\n| \u003ca name=\"input_maintenance_window\"\u003e\u003c/a\u003e [maintenance\\_window](#input\\_maintenance\\_window) | Maintenance window for the RDS instance | `string` | `\"Sat:05:00-Sat:07:00\"` | no |\n| \u003ca name=\"input_master_db_availability_zone\"\u003e\u003c/a\u003e [master\\_db\\_availability\\_zone](#input\\_master\\_db\\_availability\\_zone) | Availability zone for the RDS instance | `string` | `\"\"` | no |\n| \u003ca name=\"input_max_allocated_storage\"\u003e\u003c/a\u003e [max\\_allocated\\_storage](#input\\_max\\_allocated\\_storage) | Maximum allocated storage for the RDS instance (in GB) | `string` | `\"20\"` | no |\n| \u003ca name=\"input_multi_az\"\u003e\u003c/a\u003e [multi\\_az](#input\\_multi\\_az) | Enable multi-AZ deployment for the RDS instance | `bool` | `false` | no |\n| \u003ca name=\"input_project_name\"\u003e\u003c/a\u003e [project\\_name](#input\\_project\\_name) | Name of the project | `string` | `\"aws-ref-architecture\"` | no |\n| \u003ca name=\"input_public_subnet_cidr\"\u003e\u003c/a\u003e [public\\_subnet\\_cidr](#input\\_public\\_subnet\\_cidr) | CIDR blocks for public subnets | `list(string)` | `[]` | no |\n| \u003ca name=\"input_publicly_accessible\"\u003e\u003c/a\u003e [publicly\\_accessible](#input\\_publicly\\_accessible) | Make the RDS instance publicly accessible | `bool` | `false` | no |\n| \u003ca name=\"input_rds_sg_name\"\u003e\u003c/a\u003e [rds\\_sg\\_name](#input\\_rds\\_sg\\_name) | Name of the RDS security group | `string` | `\"aws-ref-rds-sg\"` | no |\n| \u003ca name=\"input_replica_apply_immediately\"\u003e\u003c/a\u003e [replica\\_apply\\_immediately](#input\\_replica\\_apply\\_immediately) | Apply changes immediately or during the next maintenance window for the replica | `bool` | `null` | no |\n| \u003ca name=\"input_replica_backup_retention_period\"\u003e\u003c/a\u003e [replica\\_backup\\_retention\\_period](#input\\_replica\\_backup\\_retention\\_period) | Backup retention period (in days) for the RDS replica instance | `number` | `null` | no |\n| \u003ca name=\"input_replica_backup_window\"\u003e\u003c/a\u003e [replica\\_backup\\_window](#input\\_replica\\_backup\\_window) | Preferred backup window for the RDS replica instance | `string` | `\"\"` | no |\n| \u003ca name=\"input_replica_database_port\"\u003e\u003c/a\u003e [replica\\_database\\_port](#input\\_replica\\_database\\_port) | Port for the RDS replica instance | `number` | `null` | no |\n| \u003ca name=\"input_replica_db_availability_zone\"\u003e\u003c/a\u003e [replica\\_db\\_availability\\_zone](#input\\_replica\\_db\\_availability\\_zone) | Availability zone for the RDS replica instance | `string` | `\"\"` | no |\n| \u003ca name=\"input_replica_db_identifier\"\u003e\u003c/a\u003e [replica\\_db\\_identifier](#input\\_replica\\_db\\_identifier) | Identifier for the RDS replica instance | `string` | `\"\"` | no |\n| \u003ca name=\"input_replica_delete_automated_backups\"\u003e\u003c/a\u003e [replica\\_delete\\_automated\\_backups](#input\\_replica\\_delete\\_automated\\_backups) | Delete automated backups when the RDS replica instance is deleted | `bool` | `null` | no |\n| \u003ca name=\"input_replica_deletion_protection\"\u003e\u003c/a\u003e [replica\\_deletion\\_protection](#input\\_replica\\_deletion\\_protection) | Enable or disable deletion protection for the RDS replica instance | `bool` | `null` | no |\n| \u003ca name=\"input_replica_enabled_cloudwatch_logs_exports\"\u003e\u003c/a\u003e [replica\\_enabled\\_cloudwatch\\_logs\\_exports](#input\\_replica\\_enabled\\_cloudwatch\\_logs\\_exports) | Set of log types to enable for exporting to CloudWatch logs. If omitted, no logs will be exported. Valid values (depending on engine). MySQL and MariaDB: audit, error, general, slowquery. PostgreSQL: postgresql, upgrade. MSSQL: agent , error. Oracle: alert, audit, listener, trace. | `list(string)` | `[]` | no |\n| \u003ca name=\"input_replica_engine\"\u003e\u003c/a\u003e [replica\\_engine](#input\\_replica\\_engine) | Database engine type for the RDS replica instance | `string` | `\"\"` | no |\n| \u003ca name=\"input_replica_engine_version\"\u003e\u003c/a\u003e [replica\\_engine\\_version](#input\\_replica\\_engine\\_version) | Database engine version for the RDS replica instance | `string` | `\"\"` | no |\n| \u003ca name=\"input_replica_iam_database_authentication_enabled\"\u003e\u003c/a\u003e [replica\\_iam\\_database\\_authentication\\_enabled](#input\\_replica\\_iam\\_database\\_authentication\\_enabled) | Enable IAM database authentication | `bool` | `null` | no |\n| \u003ca name=\"input_replica_instance_class\"\u003e\u003c/a\u003e [replica\\_instance\\_class](#input\\_replica\\_instance\\_class) | RDS instance class for the replica | `string` | `\"\"` | no |\n| \u003ca name=\"input_replica_maintenance_window\"\u003e\u003c/a\u003e [replica\\_maintenance\\_window](#input\\_replica\\_maintenance\\_window) | Maintenance window for the RDS replica instance | `string` | `\"\"` | no |\n| \u003ca name=\"input_replica_max_allocated_storage\"\u003e\u003c/a\u003e [replica\\_max\\_allocated\\_storage](#input\\_replica\\_max\\_allocated\\_storage) | Maximum allocated storage for the RDS replica instance (in GB) | `string` | `\"\"` | no |\n| \u003ca name=\"input_replica_multi_az\"\u003e\u003c/a\u003e [replica\\_multi\\_az](#input\\_replica\\_multi\\_az) | Enable multi-AZ deployment for the RDS replica instance | `bool` | `null` | no |\n| \u003ca name=\"input_replica_publicly_accessible\"\u003e\u003c/a\u003e [replica\\_publicly\\_accessible](#input\\_replica\\_publicly\\_accessible) | Make the RDS replica instance publicly accessible | `bool` | `null` | no |\n| \u003ca name=\"input_replica_skip_final_snapshot\"\u003e\u003c/a\u003e [replica\\_skip\\_final\\_snapshot](#input\\_replica\\_skip\\_final\\_snapshot) | Skip the final DB snapshot when the RDS replica instance is deleted | `bool` | `null` | no |\n| \u003ca name=\"input_replica_storage_type\"\u003e\u003c/a\u003e [replica\\_storage\\_type](#input\\_replica\\_storage\\_type) | Storage type for the RDS replica instance | `string` | `\"\"` | no |\n| \u003ca name=\"input_skip_final_snapshot\"\u003e\u003c/a\u003e [skip\\_final\\_snapshot](#input\\_skip\\_final\\_snapshot) | Skip the final DB snapshot when the RDS instance is deleted | `bool` | `true` | no |\n| \u003ca name=\"input_ssh_ingress_cidr\"\u003e\u003c/a\u003e [ssh\\_ingress\\_cidr](#input\\_ssh\\_ingress\\_cidr) | List of CIDR blocks allowed to SSH into the EC2 instances | `list(any)` | `[]` | no |\n| \u003ca name=\"input_ssh_sg_name\"\u003e\u003c/a\u003e [ssh\\_sg\\_name](#input\\_ssh\\_sg\\_name) | Name of the SSH security group | `string` | `\"aws-ref-ssh-sg\"` | no |\n| \u003ca name=\"input_storage_type\"\u003e\u003c/a\u003e [storage\\_type](#input\\_storage\\_type) | Storage type for the RDS instance | `string` | `\"gp2\"` | no |\n| \u003ca name=\"input_vpc_id\"\u003e\u003c/a\u003e [vpc\\_id](#input\\_vpc\\_id) | Id of the VPC.Required while provisioning on an existing VPC | `string` | `\"\"` | no |\n| \u003ca name=\"input_vpc_name\"\u003e\u003c/a\u003e [vpc\\_name](#input\\_vpc\\_name) | Name of the VPC | `string` | `\"aws-ref-arch-vpc\"` | no |\n\n## Outputs\n\n| Name | Description |\n|------|-------------|\n| \u003ca name=\"output_efs_parameters\"\u003e\u003c/a\u003e [efs\\_parameters](#output\\_efs\\_parameters) | List of EFS Parameters |\n| \u003ca name=\"output_primary_db_parameters\"\u003e\u003c/a\u003e [primary\\_db\\_parameters](#output\\_primary\\_db\\_parameters) | List of Primary DB Parameters |\n| \u003ca name=\"output_replica_db_parameters\"\u003e\u003c/a\u003e [replica\\_db\\_parameters](#output\\_replica\\_db\\_parameters) | List of Primary DB Parameters |\n\u003c!-- END OF PRE-COMMIT-TERRAFORM DOCS HOOK --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshamimice03%2Faws-reference-architecture-v1","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshamimice03%2Faws-reference-architecture-v1","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshamimice03%2Faws-reference-architecture-v1/lists"}