{"id":18907765,"url":"https://github.com/infraspecdev/terraform-aws-kong","last_synced_at":"2025-09-04T18:31:41.917Z","repository":{"id":251726755,"uuid":"830493051","full_name":"infraspecdev/terraform-aws-kong","owner":"infraspecdev","description":" Terraform Module to setup Kong(OSS) in ECS with self managed EC2 instances. ","archived":false,"fork":false,"pushed_at":"2025-03-24T12:57:23.000Z","size":332,"stargazers_count":3,"open_issues_count":6,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-05T13:38:07.213Z","etag":null,"topics":["ecs","kong","kong-gateway","terraform"],"latest_commit_sha":null,"homepage":"https://registry.terraform.io/modules/infraspecdev/kong/aws/latest","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/infraspecdev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-18T11:34:40.000Z","updated_at":"2025-03-19T21:54:22.000Z","dependencies_parsed_at":null,"dependency_job_id":"7fccc3ec-ca11-47e6-b4c4-c2a42a98a404","html_url":"https://github.com/infraspecdev/terraform-aws-kong","commit_stats":null,"previous_names":["infraspecdev/terraform-aws-kong"],"tags_count":19,"template":false,"template_full_name":null,"purl":"pkg:github/infraspecdev/terraform-aws-kong","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/infraspecdev%2Fterraform-aws-kong","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/infraspecdev%2Fterraform-aws-kong/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/infraspecdev%2Fterraform-aws-kong/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/infraspecdev%2Fterraform-aws-kong/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/infraspecdev","download_url":"https://codeload.github.com/infraspecdev/terraform-aws-kong/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/infraspecdev%2Fterraform-aws-kong/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273653776,"owners_count":25144532,"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","status":"online","status_checked_at":"2025-09-04T02:00:08.968Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["ecs","kong","kong-gateway","terraform"],"created_at":"2024-11-08T09:23:09.261Z","updated_at":"2025-09-04T18:31:40.246Z","avatar_url":"https://github.com/infraspecdev.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- BEGIN_TF_DOCS --\u003e\n# terraform-aws-kong\n\nTerraform Module to setup Kong(OSS) in ECS with self managed EC2 instances.\n\n# Architectural Diagram\n\n![Kong](https://github.com/infraspecdev/terraform-aws-kong/raw/main/diagrams/kong-architecture.png)\n\n# Assumptions\n\nThis setup assumes that the `ECS cluster` that has `Auto Scaling Group (ASG)` exist with the name `default`. If you are using different name, you can provide those in the variables section of your Terraform configuration.\n\n## Adding Parameters to AWS Systems Manager Parameter Store\n\nEnsure you have the AWS CLI installed on your machine. You can find the installation instructions for different operating systems in the official AWS CLI documentation:\n[Install AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)\n\nUse the following commands to add the required parameters to AWS Systems Manager Parameter Store. These parameters are necessary for configuring your PostgreSQL database.\n\n```sh\naws ssm put-parameter --name \"/rds/POSTGRES_USERNAME\" --value \"value\" --type \"SecureString\"\naws ssm put-parameter --name \"/rds/POSTGRES_PASSWORD\" --value \"value\" --type \"SecureString\"\naws ssm put-parameter --name \"/rds/POSTGRES_DB_NAME\" --value \"value\" --type \"SecureString\"\n```\n\n## Requirements\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"requirement_terraform\"\u003e\u003c/a\u003e [terraform](#requirement\\_terraform) | \u003e= 1.8.4 |\n| \u003ca name=\"requirement_aws\"\u003e\u003c/a\u003e [aws](#requirement\\_aws) | \u003e= 5.5.0 |\n\n## Providers\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"provider_aws\"\u003e\u003c/a\u003e [aws](#provider\\_aws) | \u003e= 5.5.0 |\n\n## Modules\n\n| Name | Source | Version |\n|------|--------|---------|\n| \u003ca name=\"module_ecs_kong\"\u003e\u003c/a\u003e [ecs\\_kong](#module\\_ecs\\_kong) | infraspecdev/ecs-deployment/aws | ~\u003e 4.0.4 |\n| \u003ca name=\"module_ecs_task_security_group\"\u003e\u003c/a\u003e [ecs\\_task\\_security\\_group](#module\\_ecs\\_task\\_security\\_group) | terraform-aws-modules/security-group/aws | ~\u003e 5.1.2 |\n| \u003ca name=\"module_internal_alb_kong\"\u003e\u003c/a\u003e [internal\\_alb\\_kong](#module\\_internal\\_alb\\_kong) | infraspecdev/ecs-deployment/aws//modules/alb | ~\u003e 2.0.0 |\n| \u003ca name=\"module_internal_alb_security_group\"\u003e\u003c/a\u003e [internal\\_alb\\_security\\_group](#module\\_internal\\_alb\\_security\\_group) | terraform-aws-modules/security-group/aws | ~\u003e 5.1.2 |\n| \u003ca name=\"module_kong_internal_dns_record\"\u003e\u003c/a\u003e [kong\\_internal\\_dns\\_record](#module\\_kong\\_internal\\_dns\\_record) | ./modules/route-53-record | n/a |\n| \u003ca name=\"module_kong_public_dns_record\"\u003e\u003c/a\u003e [kong\\_public\\_dns\\_record](#module\\_kong\\_public\\_dns\\_record) | ./modules/route-53-record | n/a |\n| \u003ca name=\"module_kong_rds\"\u003e\u003c/a\u003e [kong\\_rds](#module\\_kong\\_rds) | terraform-aws-modules/rds/aws | ~\u003e 6.7.0 |\n| \u003ca name=\"module_postgres_security_group\"\u003e\u003c/a\u003e [postgres\\_security\\_group](#module\\_postgres\\_security\\_group) | terraform-aws-modules/security-group/aws | ~\u003e 5.1.2 |\n| \u003ca name=\"module_public_alb_security_group\"\u003e\u003c/a\u003e [public\\_alb\\_security\\_group](#module\\_public\\_alb\\_security\\_group) | terraform-aws-modules/security-group/aws | ~\u003e 5.1.2 |\n\n## Resources\n\n| Name | Type |\n|------|------|\n| [aws_iam_role.ecs_exec](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role) | resource |\n| [aws_iam_role_policy_attachment.ecs_exec](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy_attachment) | resource |\n| [aws_ecs_cluster.default](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/ecs_cluster) | data source |\n| [aws_iam_policy_document.assume_role_policy](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/iam_policy_document) | data source |\n| [aws_ssm_parameter.rds](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/ssm_parameter) | data source |\n| [aws_vpc.vpc](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/vpc) | data source |\n\n## Inputs\n\n| Name | Description | Type | Default | Required |\n|------|-------------|------|---------|:--------:|\n| \u003ca name=\"input_backup_retention_period\"\u003e\u003c/a\u003e [backup\\_retention\\_period](#input\\_backup\\_retention\\_period) | The number of days to retain backups | `number` | `1` | no |\n| \u003ca name=\"input_backup_window\"\u003e\u003c/a\u003e [backup\\_window](#input\\_backup\\_window) | The daily time range (in UTC) during which automated backups are created if they are enabled | `string` | `null` | no |\n| \u003ca name=\"input_cluster_name\"\u003e\u003c/a\u003e [cluster\\_name](#input\\_cluster\\_name) | Name of the cluster | `string` | `\"default\"` | no |\n| \u003ca name=\"input_container_image\"\u003e\u003c/a\u003e [container\\_image](#input\\_container\\_image) | Container image for kong | `string` | `\"kong:3.7.1-ubuntu\"` | no |\n| \u003ca name=\"input_cpu_for_kong_task\"\u003e\u003c/a\u003e [cpu\\_for\\_kong\\_task](#input\\_cpu\\_for\\_kong\\_task) | CPU required for kong task definiton | `number` | `256` | no |\n| \u003ca name=\"input_create_db_subnet_group\"\u003e\u003c/a\u003e [create\\_db\\_subnet\\_group](#input\\_create\\_db\\_subnet\\_group) | Whether to create a DB subnet group | `bool` | `true` | no |\n| \u003ca name=\"input_db_allocated_storage\"\u003e\u003c/a\u003e [db\\_allocated\\_storage](#input\\_db\\_allocated\\_storage) | The amount of allocated storage in GBs | `number` | `20` | no |\n| \u003ca name=\"input_db_max_allocated_storage\"\u003e\u003c/a\u003e [db\\_max\\_allocated\\_storage](#input\\_db\\_max\\_allocated\\_storage) | The maximum amount of allocated storage in GBs | `number` | `100` | no |\n| \u003ca name=\"input_deletion_protection\"\u003e\u003c/a\u003e [deletion\\_protection](#input\\_deletion\\_protection) | Whether to enable deletion protection | `bool` | `false` | no |\n| \u003ca name=\"input_desired_count_for_kong_service\"\u003e\u003c/a\u003e [desired\\_count\\_for\\_kong\\_service](#input\\_desired\\_count\\_for\\_kong\\_service) | Desired count for kong service | `number` | `1` | no |\n| \u003ca name=\"input_force_new_deployment\"\u003e\u003c/a\u003e [force\\_new\\_deployment](#input\\_force\\_new\\_deployment) | Whether to force new deployment | `bool` | `true` | no |\n| \u003ca name=\"input_kong_admin_domain_name\"\u003e\u003c/a\u003e [kong\\_admin\\_domain\\_name](#input\\_kong\\_admin\\_domain\\_name) | Kong admin domain name | `string` | n/a | yes |\n| \u003ca name=\"input_kong_public_domain_name\"\u003e\u003c/a\u003e [kong\\_public\\_domain\\_name](#input\\_kong\\_public\\_domain\\_name) | Kong public domain name | `string` | n/a | yes |\n| \u003ca name=\"input_log_configuration_for_kong\"\u003e\u003c/a\u003e [log\\_configuration\\_for\\_kong](#input\\_log\\_configuration\\_for\\_kong) | Log configuration for kong | `any` | `null` | no |\n| \u003ca name=\"input_maintenance_window\"\u003e\u003c/a\u003e [maintenance\\_window](#input\\_maintenance\\_window) | The window to perform maintenance in.Syntax:ddd:hh24:mi-ddd:hh24:mi | `string` | `null` | no |\n| \u003ca name=\"input_manage_master_user_password\"\u003e\u003c/a\u003e [manage\\_master\\_user\\_password](#input\\_manage\\_master\\_user\\_password) | Whether to manage master user password | `bool` | `false` | no |\n| \u003ca name=\"input_memory_for_kong_task\"\u003e\u003c/a\u003e [memory\\_for\\_kong\\_task](#input\\_memory\\_for\\_kong\\_task) | Memory required for kong task definiton | `number` | `256` | no |\n| \u003ca name=\"input_multi_az\"\u003e\u003c/a\u003e [multi\\_az](#input\\_multi\\_az) | Specifies if the RDS instance is multi-AZ | `bool` | `false` | no |\n| \u003ca name=\"input_performance_insights_enabled\"\u003e\u003c/a\u003e [performance\\_insights\\_enabled](#input\\_performance\\_insights\\_enabled) | Whether to enable performance insights | `bool` | `true` | no |\n| \u003ca name=\"input_performance_insights_retention_period\"\u003e\u003c/a\u003e [performance\\_insights\\_retention\\_period](#input\\_performance\\_insights\\_retention\\_period) | The retention period for performance insights | `number` | `7` | no |\n| \u003ca name=\"input_private_subnet_ids\"\u003e\u003c/a\u003e [private\\_subnet\\_ids](#input\\_private\\_subnet\\_ids) | List of private subnet id | `list(string)` | n/a | yes |\n| \u003ca name=\"input_public_subnet_ids\"\u003e\u003c/a\u003e [public\\_subnet\\_ids](#input\\_public\\_subnet\\_ids) | List of public subnet id | `list(string)` | n/a | yes |\n| \u003ca name=\"input_rds_db_tags\"\u003e\u003c/a\u003e [rds\\_db\\_tags](#input\\_rds\\_db\\_tags) | List of tags | `map(string)` | `{}` | no |\n| \u003ca name=\"input_rds_instance_class\"\u003e\u003c/a\u003e [rds\\_instance\\_class](#input\\_rds\\_instance\\_class) | The instance class to use | `string` | `\"db.t3.micro\"` | no |\n| \u003ca name=\"input_ssl_policy\"\u003e\u003c/a\u003e [ssl\\_policy](#input\\_ssl\\_policy) | Name of the SSL Policy for the listener. | `string` | `\"ELBSecurityPolicy-2016-08\"` | no |\n| \u003ca name=\"input_vpc_id\"\u003e\u003c/a\u003e [vpc\\_id](#input\\_vpc\\_id) | The ID of the VPC | `string` | n/a | yes |\n\n## Outputs\n\n| Name | Description |\n|------|-------------|\n| \u003ca name=\"output_ecs_service_arn\"\u003e\u003c/a\u003e [ecs\\_service\\_arn](#output\\_ecs\\_service\\_arn) | ARN of kong ECS service |\n| \u003ca name=\"output_internal_alb_dns\"\u003e\u003c/a\u003e [internal\\_alb\\_dns](#output\\_internal\\_alb\\_dns) | DNS name of internal ALB |\n| \u003ca name=\"output_public_alb_dns\"\u003e\u003c/a\u003e [public\\_alb\\_dns](#output\\_public\\_alb\\_dns) | DNS name of public ALB |\n| \u003ca name=\"output_rds_instance_endpoint\"\u003e\u003c/a\u003e [rds\\_instance\\_endpoint](#output\\_rds\\_instance\\_endpoint) | Endpoint of RDS instance |\n\u003c!-- END_TF_DOCS --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finfraspecdev%2Fterraform-aws-kong","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finfraspecdev%2Fterraform-aws-kong","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finfraspecdev%2Fterraform-aws-kong/lists"}