Installation

The application is intended to be deployed in AWS using the bc-redirector Terraform module. This deployment is not managed through the portal itself but may be managed alongside the IaC that manages the deployment of the portal itself.

Deployment

The Terraform module takes care of setting up multiple entry-points to the redirector allowing for per-pool redirector domains, and also generating the necessary configuration file for the redirector. Once deployed, the redirector will not require further manual configuration, although the deployed EC2 instance will be accessible via AWS Systems Manager Session Manager if required for debugging.

The following Terraform configuration shows an example using the module:

module "redirector" {
  providers = {
    aws     = aws,
    aws.acm = aws.acm
  }
  source                    = "sr2c/bc-redirector/aws"
  # TODO: version           = "x.x.x"
  namespace                 = "eg"
  name                      = "redirector"
  default_redirector_domain = "example.com"

  entry_points = [
    "example.com",
    "example.org"
  ]

  public_key   = var.public_key
  secret_key   = random_password.secret_key.result
  update_key   = var.update_key

  maxmind_account_id   = var.maxmind_account_id
  maxmind_licence_key  = var.maxmind_licence_key
}

The public_key must match the API key of the public pool configured within the portal. The update_key may must match the “filename” configured for the distribution list below.

The MaxMind account used will need to have at least a subscription for the GeoIP2 Country database. A subscription for GeoIP2 City will include the GeoIP2 Country database.

Data Updates

Once deployed, the redirector must learn about the available mirror resources. This requires configuring a distribution list inside the portal.

  • Resource Pool: any (ignored)

  • Provider: HTTP POST

  • Distribution Method: Redirector Data

  • Encoding: JSON (Plain)

  • Description: <description of the redirector instance>

  • Container: https://<redirector domain>/updt

  • Git Branch/Region: na

  • Role ARN: <blank>

  • Filename: <update key>