Giter Site home page Giter Site logo

hoffrocket / terraform-aws-ecs-fargate-service Goto Github PK

View Code? Open in Web Editor NEW

This project forked from cn-terraform/terraform-aws-ecs-fargate-service

0.0 1.0 0.0 51 KB

AWS ECS Fargate Service Terraform Module

Home Page: https://registry.terraform.io/modules/cn-terraform/ecs-fargate-service

License: Apache License 2.0

HCL 100.00%

terraform-aws-ecs-fargate-service's Introduction

AWS ECS Fargate Terraform Module

This Terraform module deploys an AWS ECS Fargate service.

CircleCI

Usage

Check valid versions on:

  • Github Releases: https://github.com/cn-terraform/terraform-aws-ecs-fargate-service/releases

  • Terraform Module Registry: https://registry.terraform.io/modules/cn-terraform/ecs-fargate-service/aws

      module "ecs-fargate-service" {
          source              = "cn-terraform/ecs-fargate-service/aws"
          version             = "1.0.8"
          name_preffix        = var.name_preffix
          profile             = var.profile
          region              = var.region
          vpc_id              = module.networking.vpc_id
          task_definition_arn = module.td.aws_ecs_task_definition_td_arn
          container_port      = module.td.container_port
          ecs_cluster_name    = module.ecs-cluster.aws_ecs_cluster_cluster_name
          ecs_cluster_arn     = module.ecs-cluster.aws_ecs_cluster_cluster_arn
          private_subnets     = module.networking.private_subnets_ids
          public_subnets      = module.networking.public_subnets_ids
      }
    

Check the section "Other modules that you may need to use this module" for details about modules mentioned in the usage example.

Input values

  • name_preffix: Name preffix for resources on AWS.
  • profile: AWS API key credentials to use.
  • region: AWS Region the infrastructure is hosted in.
  • vpc_id: ID of the VPC.
  • task_definition_arn: (Required) The full ARN of the task definition that you want to run in your service.
  • ecs_cluster_name = Name of the ECS cluster.
  • ecs_cluster_arn: ARN of an ECS cluster.
  • subnets: The subnets associated with the task or service.
  • container_name: Name of the running container.
  • container_port: Port on which the container is listening.
  • desired_count: (Optional) The number of instances of the task definition to place and keep running. Defaults to 1.
  • platform_version: (Optional) The platform version on which to run your service. Defaults to LATEST. More information about Fargate platform versions can be found in the AWS ECS User Guide.
  • deployment_maximum_percent: (Optional) The upper limit (as a percentage of the service's desiredCount) of the number of running tasks that can be running in a service during a deployment.
  • deployment_minimum_healthy_percent: (Optional) The lower limit (as a percentage of the service's desiredCount) of the number of running tasks that must remain running and healthy in a service during a deployment.
  • enable_ecs_managed_tags: (Optional) Specifies whether to enable Amazon ECS managed tags for the tasks within the service.
  • propagate_tags: (Optional) Specifies whether to propagate the tags from the task definition or the service to the tasks. The valid values are SERVICE and TASK_DEFINITION. Default to SERVICE.
  • ordered_placement_strategy: (Optional) Service level strategy rules that are taken into consideration during task placement. List from top to bottom in order of precedence. The maximum number of ordered_placement_strategy blocks is 5. This is a list of maps where each map should contain "id" and "field".
  • health_check_grace_period_seconds: (Optional) Seconds to ignore failing load balancer health checks on newly instantiated tasks to prevent premature shutdown, up to 2147483647. Only valid for services configured to use load balancers.
  • health_check_path: (Optional) The destination for the health check request.
  • placement_constraints: (Optional) rules that are taken into consideration during task placement. Maximum number of placement_constraints is 10. This is a list of maps, where each map should contain "type" and "expression".
  • service_registries: (Optional) The service discovery registries for the service. The maximum number of service_registries blocks is 1. This is a map that should contain the following fields "registry_arn", "port", "container_port" and "container_name".
  • security_groups: (Optional) The security groups associated with the task or service. If you do not specify a security group, the default security group for the VPC is used.
  • assign_public_ip: (Optional) Assign a public IP address to the ENI (Fargate launch type only). Valid values are true or false. Default false.
  • lb_health_check_path: (Optional) Health check path for the Load Balancer

Output values

  • aws_ecs_service_service_id: The Amazon Resource Name (ARN) that identifies the service.
  • aws_ecs_service_service_name: The name of the service.
  • aws_ecs_service_service_cluster: The Amazon Resource Name (ARN) of cluster which the service runs on.
  • aws_ecs_service_service_desired_count: The number of instances of the task definition.
  • lb_id: Load Balancer ID.
  • lb_arn: Load Balancer ARN.
  • lb_arn_suffix: Load Balancer ARN Suffix.
  • lb_dns_name: Load Balancer DNS Name.
  • lb_zone_id: Load Balancer Zone ID.
  • lb_sg_id: Load Balancer Security Group - The ID of the security group.
  • lb_sg_arn: Load Balancer Security Group - The ARN of the security group.
  • lb_sg_name: Load Balancer Security Group - The name of the security group.
  • lb_sg_description: Load Balancer Security Group - The description of the security group.
  • ecs_tasks_sg_id: ECS Tasks Security Group - The ID of the security group.
  • ecs_tasks_sg_arn: ECS Tasks Security Group - The ARN of the security group.
  • ecs_tasks_sg_name: ECS Tasks Security Group - The name of the security group.
  • ecs_tasks_sg_description: ECS Tasks Security Group - The description of the security group.

Other modules that you may need to use this module

The networking module should look like this:

    module "networking" {
		    source          = "cn-terraform/networking/aws"
        version         = "2.0.3"
        name_preffix    = var.name_preffix
        profile         = var.profile
        region          = var.region
        vpc_cidr_block  = "192.168.0.0/16"
        availability_zones                          = [ "us-east-1a", "us-east-1b", "us-east-1c", "us-east-1d" ]
        public_subnets_cidrs_per_availability_zone  = [ "192.168.0.0/19", "192.168.32.0/19", "192.168.64.0/19", "192.168.96.0/19" ]
        private_subnets_cidrs_per_availability_zone = [ "192.168.128.0/19", "192.168.160.0/19", "192.168.192.0/19", "192.168.224.0/19" ]
	}

Check versions for this module on:

The ECS cluster module should look like this:

    module "ecs-cluster" {
        source       = "cn-terraform/ecs-cluster/aws"
        version      = "1.0.2"
        name_preffix = var.name_preffix
        profile      = var.profile
        region       = var.region
    }

Check versions for this module on:

The task definition module should like this:

    module "td" {
	      source          = "cn-terraform/ecs-fargate-task-definition/aws"
        version         = "1.0.1"
        name_preffix    = var.name_preffix
        profile         = var.profile
        region          = var.region
        container_name  = "${var.name_preffix}-<NAME>"
        container_image = "<IMAGE_NAME>:<IMAGE_TAG>"
        container_port  = <PORT>
	}

Check versions for this module on:

terraform-aws-ecs-fargate-service's People

Contributors

jnonino avatar rafilkmp3 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.