Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/infraspecdev/terraform-aws-ecs
Terraform module to create ECS Cluster that relies on self-managed EC2 instances
https://github.com/infraspecdev/terraform-aws-ecs
aws-ecs aws-ecs-cluster ec2 terraform-aws-module terraform-module
Last synced: 2 months ago
JSON representation
Terraform module to create ECS Cluster that relies on self-managed EC2 instances
- Host: GitHub
- URL: https://github.com/infraspecdev/terraform-aws-ecs
- Owner: infraspecdev
- License: mit
- Created: 2024-07-11T07:34:10.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2024-08-12T09:56:41.000Z (4 months ago)
- Last Synced: 2024-09-27T18:42:58.860Z (3 months ago)
- Topics: aws-ecs, aws-ecs-cluster, ec2, terraform-aws-module, terraform-module
- Language: HCL
- Homepage: https://registry.terraform.io/modules/infraspecdev/ecs/aws/latest
- Size: 234 KB
- Stars: 0
- Watchers: 4
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# terraform-aws-ecs
A Terraform module to create ECS Cluster that relies on self-managed EC2 instances.
## Architecture Diagram
![ECS Architecture Diagram](https://github.com/infraspecdev/terraform-aws-ecs/raw/main/diagrams/ecs-architecture.png)
## Requirements
| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 1.8.4 |
| [aws](#requirement\_aws) | >= 5.51.0 |## Providers
No providers.
## Modules
| Name | Source | Version |
|------|--------|---------|
| [asg](#module\_asg) | ./modules/asg | n/a |
| [cluster](#module\_cluster) | ./modules/cluster | n/a |## Resources
No resources.
## Inputs
| Name | Description | Type | Default | Required |
|------|-------------|------|---------|:--------:|
| [asg\_create\_launch\_template](#input\_asg\_create\_launch\_template) | Either to create a Launch Template to associate with the Autoscaling group | `bool` | `true` | no |
| [asg\_desired\_capacity](#input\_asg\_desired\_capacity) | The number of Amazon EC2 instances that should be running in the group. | `number` | n/a | yes |
| [asg\_health\_check\_type](#input\_asg\_health\_check\_type) | (Optional) "EC2" or "ELB". Controls how health checking is done. | `string` | `"EC2"` | no |
| [asg\_iam\_instance\_profile\_name](#input\_asg\_iam\_instance\_profile\_name) | (Optional, Forces new resource) Name of the instance profile. | `string` | `null` | no |
| [asg\_iam\_instance\_profile\_tags](#input\_asg\_iam\_instance\_profile\_tags) | (Optional) Map of resource tags for the IAM Instance Profile. | `map(string)` | `{}` | no |
| [asg\_iam\_role\_name](#input\_asg\_iam\_role\_name) | (Optional, Forces new resource) Friendly name of the role. | `string` | `null` | no |
| [asg\_iam\_role\_policy\_attachments](#input\_asg\_iam\_role\_policy\_attachments) | (Optional) - The ARNs of the policies you want to apply | `list(string)` |[| no |
"arn:aws:iam::aws:policy/service-role/AmazonEC2ContainerServiceforEC2Role"
]
| [asg\_iam\_role\_tags](#input\_asg\_iam\_role\_tags) | Key-value mapping of tags for the IAM role. | `map(string)` | `{}` | no |
| [asg\_instances\_tags](#input\_asg\_instances\_tags) | Resources Tags to propagate to the Instances | `map(string)` | `{}` | no |
| [asg\_launch\_template](#input\_asg\_launch\_template) | Launch Template to use with the Autoscaling group |object({| `{}` | no |
name = optional(string, null)
block_device_mappings = optional(list(object({
device_name = string
ebs = optional(object({
delete_on_termination = optional(bool, null)
snapshot_id = optional(string, null)
volume_size = optional(number, null)
volume_type = optional(string, null)
}))
no_device = optional(any, null)
virtual_name = optional(string, null)
})), [])
image_id = optional(string, null)
instance_type = optional(string, null)
vpc_security_group_ids = optional(list(string), [])
key_name = optional(string, null)
user_data = optional(string, null)
tags = optional(map(string), {})
})
| [asg\_launch\_template\_id](#input\_asg\_launch\_template\_id) | Identifier of the Launch Template | `string` | `null` | no |
| [asg\_launch\_template\_version](#input\_asg\_launch\_template\_version) | (Optional) Template version. | `string` | `"$Default"` | no |
| [asg\_max\_size](#input\_asg\_max\_size) | Maximum size of the Auto Scaling Group | `number` | n/a | yes |
| [asg\_min\_size](#input\_asg\_min\_size) | Minimum size of the Auto Scaling Group | `number` | n/a | yes |
| [asg\_name](#input\_asg\_name) | (Optional) Name of the Auto Scaling Group. | `string` | `null` | no |
| [asg\_protect\_from\_scale\_in](#input\_asg\_protect\_from\_scale\_in) | (Optional) Whether newly launched instances are automatically protected from termination by Amazon EC2 Auto Scaling when scaling in. | `bool` | `false` | no |
| [asg\_tags](#input\_asg\_tags) | Resources Tags for Autoscaling group | `map(string)` | `{}` | no |
| [asg\_vpc\_zone\_identifier](#input\_asg\_vpc\_zone\_identifier) | (Optional) List of subnet IDs to launch resources in. | `list(string)` | `[]` | no |
| [cluster\_name](#input\_cluster\_name) | (Required) Name of the cluster | `string` | n/a | yes |
| [cluster\_service\_connect\_namespace](#input\_cluster\_service\_connect\_namespace) | (Optional) ARN of the aws\_service\_discovery\_http\_namespace that's used when you create a service and don't specify a Service Connect configuration. | `string` | `null` | no |
| [cluster\_setting](#input\_cluster\_setting) | (Optional) Configuration block(s) with cluster settings. |list(object({| `[]` | no |
name = string
value = string
}))
| [cluster\_tags](#input\_cluster\_tags) | (Optional) Key-value map of resource tags. | `map(string)` | `{}` | no |## Outputs
| Name | Description |
|------|-------------|
| [asg\_arn](#output\_asg\_arn) | ARN for this Auto Scaling Group. |
| [asg\_iam\_instance\_profile\_arn](#output\_asg\_iam\_instance\_profile\_arn) | ARN assigned by AWS to the instance profile. |
| [asg\_iam\_instance\_profile\_id](#output\_asg\_iam\_instance\_profile\_id) | Instance profile's ID. |
| [asg\_iam\_role\_id](#output\_asg\_iam\_role\_id) | Name of the role. |
| [asg\_id](#output\_asg\_id) | Auto Scaling Group id. |
| [asg\_launch\_template\_arn](#output\_asg\_launch\_template\_arn) | Amazon Resource Name (ARN) of the launch template. |
| [asg\_launch\_template\_id](#output\_asg\_launch\_template\_id) | The ID of the launch template. |
| [cluster\_arn](#output\_cluster\_arn) | ARN that identifies the cluster. |
| [cluster\_id](#output\_cluster\_id) | Identifier of the ECS Cluster |
| [cluster\_name](#output\_cluster\_name) | Name of the ECS Cluster |