module "ec2_etl_win_general" {
  source = "../../../modules/ec2/ec2"

  name_prefix          = "${local.name_prefix}-utility-general"
  instances_count      = 1
  ami                  = "ami-0cb9c9d97cf11be2c"
  instance_type        = "m5.large"
  use_public_ip        = false
  key_name             = local.key_pair_name
  security_groups      = [module.main_sg_map.win_batch_id, module.main_sg_map.management_rdp_id]
  subnet_ids           = [module.main_private_subnets.subnet_ids[0]]
  iam_instance_profile = module.main_iam_profiles.profile_ec2.name
  root_volume_size     = 250
  root_volume_type     = "gp3"

  enable_alarm              = true
  alarm_name                = "${local.name_prefix}-utility-general-status-check-failed-any"
  alarm_actions             = [data.aws_sns_topic.devops_team_notifications.arn]
  ok_actions                = [data.aws_sns_topic.devops_team_notifications.arn]
  insufficient_data_actions = [data.aws_sns_topic.devops_team_notifications.arn]

  instance_tags = {
    os_platform = "windows",
  }

  common_tags = merge(
    local.common_tags,
    {
      project                  = "ETL",
      service                  = "EC2",
      plat_env_project_service = "${local.aggregated_tag}_ETL_EC2",
    }
  )
}

module "ec2_etl_win_playlistinfo" {
  source = "../../../modules/ec2/ec2"

  name_prefix          = "${local.name_prefix}-utility-playlistinfo"
  instances_count      = 1
  ami                  = "ami-0c42ed0a3b81c1a5f"
  instance_type        = "r5.xlarge"
  use_public_ip        = false
  key_name             = local.key_pair_name
  security_groups      = [module.main_sg_map.win_batch_id, module.main_sg_map.management_rdp_id]
  subnet_ids           = [module.main_private_subnets.subnet_ids[1]]
  iam_instance_profile = module.main_iam_profiles.profile_ec2.name
  root_volume_size     = 120
  root_volume_type     = "gp3"

  enable_alarm              = true
  alarm_name                = "${local.name_prefix}-utility-playlistinfo-status-check-failed-any"
  alarm_actions             = [data.aws_sns_topic.devops_team_notifications.arn]
  ok_actions                = [data.aws_sns_topic.devops_team_notifications.arn]
  insufficient_data_actions = [data.aws_sns_topic.devops_team_notifications.arn]

  instance_tags = {
    os_platform = "windows",
  }

  common_tags = merge(
    local.common_tags,
    {
      project                  = "ETL",
      service                  = "EC2",
      plat_env_project_service = "${local.aggregated_tag}_ETL_EC2",
    }
  )
}

module "ec2_etl_win_streams" {
  source = "../../../modules/ec2/ec2"

  name_prefix          = "${local.name_prefix}-utility-streams"
  instances_count      = 1
  ami                  = "ami-0489a40625893a3a5"
  instance_type        = "m5.large"
  use_public_ip        = false
  key_name             = local.key_pair_name
  security_groups      = [module.main_sg_map.win_batch_id, module.main_sg_map.management_rdp_id]
  subnet_ids           = [module.main_private_subnets.subnet_ids[2]]
  iam_instance_profile = module.main_iam_profiles.profile_ec2.name
  root_volume_size     = 2000
  root_volume_type     = "gp3"

  enable_alarm              = true
  alarm_name                = "${local.name_prefix}-utility-streams-status-check-failed-any"
  alarm_actions             = [data.aws_sns_topic.devops_team_notifications.arn]
  ok_actions                = [data.aws_sns_topic.devops_team_notifications.arn]
  insufficient_data_actions = [data.aws_sns_topic.devops_team_notifications.arn]

  instance_tags = {
    os_platform = "windows",
  }

  common_tags = merge(
    local.common_tags,
    {
      project                  = "ETL",
      service                  = "EC2",
      plat_env_project_service = "${local.aggregated_tag}_ETL_EC2",
    }
  )
}

module "ec2_aloomaproxy" {
  source = "../../../modules/ec2/ec2"

  name_prefix          = "${local.name_prefix}-aloomaproxy"
  instances_count      = 1
  ami                  = "ami-00b882ac5193044e4"
  instance_type        = "t3.small"
  use_eip              = true
  use_public_ip        = true
  key_name             = local.key_pair_name
  security_groups      = [module.main_sg_map.management_ssh_id, aws_security_group.alooma_proxy.id]
  subnet_ids           = [module.main_public_subnets.subnet_ids[2]]
  iam_instance_profile = module.main_iam_profiles.profile_ec2.name
  root_volume_size     = 8
  root_volume_type     = "gp3"
  encrypted            = true
  kms_key_id           = data.aws_kms_alias.default_ebs_key.target_key_arn

  enable_alarm              = true
  alarm_name                = "${local.name_prefix}-aloomaproxy-01-status-check-failed-any"
  alarm_actions             = [data.aws_sns_topic.devops_team_notifications.arn]
  ok_actions                = [data.aws_sns_topic.devops_team_notifications.arn]
  insufficient_data_actions = [data.aws_sns_topic.devops_team_notifications.arn]

  instance_tags = {
    os_platform     = "linux",
    os_distribution = "amazon",
  }

  common_tags = merge(
    local.common_tags,
    {
      project                  = "Portal",
      service                  = "EC2",
      plat_env_project_service = "${local.aggregated_tag}_PRL_EC2",
    }
  )
}
