Launching the ATC Manager AMI

Review the requirements before proceeding with the installation. See Reviewing Aspera Transfer Cluster Manager Requirements.
  1. Click EC2 under the Compute section. Select AMIs from the Images section on the left sidebar. Select the private AMI provided by Aspera and click Launch.
  2. Go to My AMIs and select the ATC Manager AMI.
  3. Choose an instance type.
    The ATC Manager requires at minimum a m4-medium image type. Click Next: Configure Instance Details.
  4. Configure your instance details.
    See the following table for the minimum configuration for launching the ATC Manager AMI:
    Option Instructions
    Network Select a VPC from the Network drop-down menu.
    Subnet Choose a subnet.
    Note: If you choose a private subnet, but your transfer nodes are on a public subnet, you must follow the instructions in Running the Cluster Manager in a Private VPC to allow the ATC Manager to manage the transfer nodes.
    Auto-assign Public IP To allow access to the ATC Manager web application from outside of the VPC, select Enable from the Auto-assign Public IP drop-down menu.
    IAM role Select the atc-manager IAM role for your ATC Manager.
  5. Configure ATC Manager to use the RDS database.
    If you have not already, create the RDS database (see Creating the RDS Database). The RDS database provides backup capabilities that allow you to restore your instance if it fails and upgrade your instance without losing your database.

    Expand the Advanced Detail section on the Configure Instance Details page. To configure the external database, copy and paste the following text in the User Data field:

    {
        "restore": false,
        "statestore_backup_period": "minutes",
        "database": {
            "host": "rds_endpoint_url",
            "port": port,
            "user": "db_username",
            "password": "db_password"
        }
    }

    Edit the values as follows:

    • Set "restore" to false if this is the first launch, otherwise set to true. For more information, see Restoring a Failed ATCM Instance.
    • The statestore_backup_period specifies how often ATC Manager performs a backup. The default period is one minute ("1m").
    • Set "host" to the endpoint URL assigned to your RDS database. To retrieve the URL, in the AWS Console go to Database > RDS, select your database, and record the value for Endpoint.
    • Set "port" to 3306, the port used by RDS.
    • Enter your database login credentials for "user" and "password".

    For example:

    { 
        "restore": true,
        "statestore_backup_period": "1m",
        "database": { 
            "host": "atp-mgr.c6joynsbdgxy.us-east-1.rds.amazonaws.com", 
            "port": 3306, 
            "user": "root", 
            "password": "secret" 
        } 
    } 
    Note: If you are using the AWS Auto Scaling feature and the ATC Manager is located in a private subnet, but the transfer nodes are located in a public subnet, you must configure the ATC Manager AMI to launch with a static IP address. You can use a custom script in the user data to set a static IP for the ATC Manager. For more information, see Running the Cluster Manager in a Private VPC.
  6. Configure ATC Manager to use the ELB, and apply any other custom boot scripts.
    In the same User Data section, add any custom boot scripts that you want to apply to your ATC Manager AMI. Boot scripts are pasted below the database configuration. For examples, see Using Custom Scripts to Configure the ATC Manager.

    Aspera strongly recommends connecting ATC Manager to an ELB, which provides a persistent DNS that is independent of your ATC Manager instance by using a custom boot script. To add the ELB, paste the following script text after your database configuration:

    {
        "restore": true, 
        "statestore_backup_period": "1m",
        "database": {
            "host": "your_rds_endpoint_url",
            "port": 3306,
            "user": "db_username",
            "password": "db_password"
        }
    }
    -----SCRIPT-----
    #!/bin/bash
     
    # assign elastic load balancer
     
    elb="your_elb_name"
     
    curl="curl -sS http://169.254.169.254/2014-11-05/"
    region=$($curl/dynamic/instance-identity/document/ | jq --raw-output '.region')
    instance_id=$($curl/meta-data/instance-id)
     
    aws elb register-instances-with-load-balancer --region="$region" --load-balancer-name "$elb" --instances "$instance_id"
     
    elb_dnsname="$(aws elb describe-load-balancers --region="$region" | jq --arg elb "$elb" --raw-output '.LoadBalancerDescriptions[] | select(.LoadBalancerName == $elb) | .DNSName')"
    echo "$(jq --arg elb_dnsname "$elb_dnsname" '.private_ip |= $elb_dnsname' /opt/aspera/atcm/etc/atc-api.conf)" > /opt/aspera/atcm/etc/atc-api.conf 
    Note: In order to use this script, your cluster manager needs the ELB IAM policy. For more information on the policy, see Creating the ELB IAM Policy.
  7. Click Next: Add Storage.
    Adding storage and tagging your instance are optional steps. The default root partition is 8 GB, which is sufficient if you are using a remote database like RDS. If you are using a local database and plan to run this system in production, create a larger partition (for example, 20 GB). To skip these options, click Next: Tag Instance > Next: Configure Security Group.
  8. On the Configure Security Group page, choose Select an existing security group and then select the atc-manager security group from the list.
    For more information on the atc-manager security group, see Creating the Cluster Manager Security Group.
  9. Click Review and Launch > Launch.