First-Time Setup

Sign up to AWS

  1. Create an AWS Account
  2. Send Mike Kellen an email to have your new AWS account added to the consolidated bill
  3. Log onto the AWS Console and sign up for S3, EC2, and Elastic MapReduce

Configure EC2

  1. Use the AWS console to create a new SSH key named SageKeyPair
  2. Download it to your home directory on the shared servers
  3. Fix the permissions on it
    chmod 600 SageKeyPair.pem
    

Configure S3

  1. Use the AWS console to make a new S3 bucket named sagetest-YourUsername and make these four subdirectories
    1. scripts
    2. input
    3. output
    4. results
    5. logs

Note: Do not put any underscores in your bucket name. Only use hyphens, lowercase letters and numbers.

Set up your config files for the AWS command line tools installed on the shared servers

Get your credentials

Get your security credentials from your AWS Account

Set up s3curl

Set up your configuration files for the s3curl AWS tool installed on the shared servers (belltown, sodo, ballard, ...)

  1. ssh to belltown
  2. Create the configuration file for s3curl command line tool
    ~>cat .s3curl 
    #!/bin/perl
    %awsSecretAccessKeys = (
        YourUsername => {
            id => 'YourAccessKeyID',
            key => 'YourSecretAccessKey',
        },
    );
    
  3. Test that you can run s3curl
    ~>/work/platform/bin/s3curl.pl --id $USER https://s3.amazonaws.com/sagetest-$USER/ | head -c 200
    <?xml version="1.0" encoding="UTF-8"?>
    <ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/"><Name>sagetestemr</Name><Prefix></Prefix><Marker></Marker><MaxKeys>1000</MaxKeys><IsTruncated>
    

Set up the Elastic MapReduce command line tools

Set up your configuration files for the Elastic MapReduce AWS tool installed on the shared servers (belltown, sodo, ballard, ...)

  1. ssh to belltown
  2. Create the configuration file for the Elastic Map Reduce command line tool
    ~>cat $USER-credentials.json 
    {
    "access_id": "YourAccessKeyID",
    "private_key": "YourSecretAccessKey",
    "keypair": "SageKeyPair",
    "key-pair-file": "~/SageKeyPair.pem",
    "log_uri": "s3n://sagetest-YourUsername/logs/",
    "region": "us-east-1"
    }
    
  3. Test that you can run it
    ~>/work/platform/bin/elastic-mapreduce-cli/elastic-mapreduce --credentials ~/$USER-credentials.json --help
    Usage: elastic-mapreduce [options]
    
      Creating Job Flows
            --create                     Create a new job flow
            --name NAME                  The name of the job flow being created
            --alive                      Create a job flow that stays running even though it has executed all its steps
            --with-termination-protection
                                         Create a job with termination protection (default is no termination protection)
            --num-instances NUM          Number of instances in the job flow
    ...