|
| 1 | +# Creating an ECS cluster |
| 2 | +resource "aws_ecs_cluster" "cluster" { |
| 3 | + name = var.name |
| 4 | + |
| 5 | + setting { |
| 6 | + name = "containerInsights" |
| 7 | + value = "enabled" |
| 8 | + } |
| 9 | +} |
| 10 | + |
| 11 | +resource "aws_launch_configuration" "ecs_cfg" { |
| 12 | + name = "ecs-instance" |
| 13 | + image_id = "ami-06581a55723db5feb" |
| 14 | + instance_type = "t2.small" |
| 15 | + |
| 16 | + iam_instance_profile = aws_iam_instance_profile.ecsInstanceRole.name |
| 17 | + |
| 18 | + associate_public_ip_address = true |
| 19 | + security_groups = [var.vpc_security_group_id] |
| 20 | + |
| 21 | + user_data = <<EOF |
| 22 | + #!/bin/bash |
| 23 | + echo 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCt/+JcQz8a8UwAYaWUqGIHMWtHOkLKuzbCIy3aQwDMwxRMpEfUXThoiqOnszx8ntWEVEYpgQXJzoi2ltkL5odO1nzWxxLGUeTb3dNa8eaABvhKrrXvB7yZ/W9K2ZQ/tS5JA62zxQg+a1aFw5eT8GtiRm3Fjivo5K5PKOHQsYyYQwsu0E17K/u000+Gef9l1ZKaf/LWujISx8mpXEABFKr1IJRxTI0PeQidLHJSwoiKZ81tCfcRBi1yEJWssfgmdeZZlZvqeKKtd1Z4CXV8ez7BYFCsD3qzutUHUi2cQPTTQPJ084DN/6yPhIOuBevfXHbWxVexb6AorY/0ndPvomVIz9Oc/1B1UY1VvrtQdHwldQ3Wj4BfeHudrrsYdvDa6IgEgVYZM0ciZOGakk2/MXWUpysNtDy89TlNuIEPuZGblJ/LLIxRlF+v89is3/F16btQMz1FYwQePvpEJiMY68ZCqRf8o93D38iP0zRU8OEbfvR3fAAe3UdDXULjyFWOKMEX/yVlKwaXf+XJ6c+z/UKu8+4NtZJdU4nMmqLNc+YFsykNaPU9Grl/1lAIgP6mWZuZxqve0Ht+CqOtxnka8uwmK0DPxBJX9V+Mtj7ATgJtXnopPKvFa6ldpWmbOVU/KjiCQgNyJ6V7Z2kcQtyIBIbChU3ktts0gyquEZlFu1iJqQ== mehrshadlotfi@Mehrshads-MBP.fritz.box' >> /home/ec2-user/.ssh/authorized_keys |
| 24 | + echo ECS_CLUSTER=${var.name} >> /etc/ecs/ecs.config |
| 25 | + EOF |
| 26 | +} |
| 27 | + |
| 28 | +resource "aws_autoscaling_group" "ecs_instance_asg" { |
| 29 | + launch_configuration = aws_launch_configuration.ecs_cfg.name |
| 30 | + |
| 31 | + vpc_zone_identifier = var.vpc_public_subnets |
| 32 | + min_size = 1 |
| 33 | + max_size = 1 |
| 34 | + desired_capacity = 1 |
| 35 | + |
| 36 | + tag { |
| 37 | + key = "AmazonECSManaged" |
| 38 | + value = "ecs-instance" |
| 39 | + propagate_at_launch = true |
| 40 | + } |
| 41 | +} |
| 42 | + |
| 43 | +resource "aws_ecs_capacity_provider" "ecs_capacity_provider" { |
| 44 | + name = "default" |
| 45 | + auto_scaling_group_provider { |
| 46 | + auto_scaling_group_arn = aws_autoscaling_group.ecs_instance_asg.arn |
| 47 | + managed_scaling { |
| 48 | + status = "ENABLED" |
| 49 | + target_capacity = 1 |
| 50 | + } |
| 51 | + } |
| 52 | +} |
| 53 | + |
| 54 | +resource "aws_ecs_cluster_capacity_providers" "cluster_capacity_providers" { |
| 55 | + cluster_name = aws_ecs_cluster.cluster.name |
| 56 | + capacity_providers = [aws_ecs_capacity_provider.ecs_capacity_provider.name] |
| 57 | + |
| 58 | + default_capacity_provider_strategy { |
| 59 | + base = 1 |
| 60 | + weight = 100 |
| 61 | + capacity_provider = aws_ecs_capacity_provider.ecs_capacity_provider.name |
| 62 | + } |
| 63 | +} |
0 commit comments