resource "aws_elasticache_subnet_group" "main_redis" {
  name       = "${local.name_prefix}-redis-subnet-group"
  subnet_ids = module.main_private_subnets.subnet_ids
}

resource "aws_elasticache_parameter_group" "main_redis6x" {
  family = "redis6.x"
  name   = "${local.name_prefix}-redis6x"
}

resource "aws_elasticache_replication_group" "um_queue" {
  replication_group_id       = "${local.name_prefix}-um-celery"
  description                = "Atlas UM Celery queue"
  engine                     = "redis"
  engine_version             = "6.x"
  parameter_group_name       = aws_elasticache_parameter_group.main_redis6x.name
  node_type                  = "cache.t3.small"
  num_cache_clusters         = 1
  subnet_group_name          = aws_elasticache_subnet_group.main_redis.name
  security_group_ids         = [module.main_sg_map.redis_id]
  apply_immediately          = true
  port                       = 6379
  at_rest_encryption_enabled = true
  transit_encryption_enabled = true

  tags = merge(
    local.common_tags,
    {
      project                  = "Core",
      service                  = "Elasticache",
      plat_env_project_service = "${local.aggregated_tag}_CORE_ELC"
    }
  )
}
