# Amazon Linux with Couchbase 4.1.2 inside a docker
module "ec2_couchbase_docker" {
  source = "../../../modules/ec2/ec2"

  name_prefix     = "${local.name_prefix}-couchbase-docker"
  instances_count = 2
  ami             = "ami-0cff7528ff583bf9a"
  instance_type   = "t3.medium"
  use_public_ip   = false
  key_name        = var.key_pair_name
  security_groups = [
    module.main_sg_map.couchbase_id,
    module.main_sg_map.management_ssh_id,
    module.main_sg_map.vpn_http_id,
  ]
  subnet_ids           = module.main_private_subnets.subnet_ids
  iam_instance_profile = module.main_iam_profiles.profile_ec2.name
  root_volume_size     = 75
  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}-couchbase-docker-status-check-failed-any"

  common_tags = merge(
    local.common_tags,
    {
      project                  = "Portal",
      service                  = "EC2",
      plat_env_project_service = "${local.aggregated_tag}_PRL_EC2",
      os_platform              = "linux",
      os_distribution          = "amazon",
      splunk                   = "true",
      role                     = "couchbase",
    }
  )
}

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

  name_prefix     = "${local.name_prefix}-etl-backfill"
  instances_count = 1
  ami             = "ami-005fb19854762bc84"
  instance_type   = "t3.micro"
  use_public_ip   = false
  key_name        = var.key_pair_name
  security_groups = [
    module.main_sg_map.management_ssh_id,
  ]
  subnet_ids           = module.main_private_subnets.subnet_ids
  iam_instance_profile = module.main_iam_profiles.profile_ec2.name
  root_volume_size     = 20
  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}-etl-backfill-status-check-failed-any"

  common_tags = merge(
    local.common_tags,
    {
      project                  = "Portal",
      service                  = "EC2",
      plat_env_project_service = "${local.aggregated_tag}_PRL_EC2",
      os_platform              = "linux",
      os_distribution          = "amazon",
      splunk                   = "true",
    }
  )
}

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

  name_prefix     = "${local.name_prefix}-etl-win-playlistinfo-win2022"
  instances_count = 1
  ami             = "ami-0e1a729017e59e409"
  instance_type   = "t2.xlarge"
  use_public_ip   = false
  key_name        = var.key_pair_name
  security_groups = [
    module.main_sg_map.win_batch_id,
    module.main_sg_map.win_ws_id,
    module.main_sg_map.management_rdp_id
  ]
  subnet_ids           = module.main_private_subnets.subnet_ids
  iam_instance_profile = module.ec2_win_jobs_role.profile.name
  root_volume_size     = 200
  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}-etl-win-playlistinfo-win2022-status-check-failed-any"

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

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

  name_prefix     = "${local.name_prefix}-web-win2022"
  instances_count = 1
  ami             = "ami-0e1a729017e59e409"
  instance_type   = "t2.large"
  use_public_ip   = false
  key_name        = var.key_pair_name

  security_groups = [
    module.main_sg_map.win_ws_id,
    module.main_sg_map.couchbase_id,
    module.main_sg_map.management_rdp_id,
    module.main_sg_map.web_debug_id_80,
    module.main_sg_map.web_debug_id_443,
  ]
  subnet_ids           = module.main_private_subnets.subnet_ids
  iam_instance_profile = module.main_iam_profiles.profile_ec2.name
  root_volume_size     = 100
  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}-web-win2022-status-check-failed-any"

  common_tags = merge(
    local.common_tags,
    {
      project                  = "ETL",
      service                  = "EC2",
      plat_env_project_service = "${local.aggregated_tag}_ETL_EC2",
      os_platform              = "windows",
      role                     = "Apollo .NET API",
    }
  )
}
