Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Step 1: Configure AWS settings

There are 2 3 things that need to be done in the AWS management console to prepare for Infinit.e install:

  • Set up a (free) CloudFormation account (simply navigate to the CloudFormation tab in the management console and follow the instructions)
  • Set up security groups
  • Set up S3 storage for index and DB backups

...

Step 2: Create a properties.configuration file

...

A single file is used to populate the configuration files for all the custom and standard technologies used in Infinit.e: "infinit.e.configuration.properties". A template for this file can be obtained here. (TODOLINK)

A full description of the fields within "infinit.e.properties.configuration" is provided here, but the EC2-specific automated configuration makes populating it considerably easier than in the general case. The remainder of this section describes the EC2-specific configuration.

Generic parameters
Code Block
################################################################################
# Amazon services properties
# use.aws: 0=false, 1=true
use.aws=1
# S3 backups: the "s3.url" parameter corresponds to the "S3ROOT" described in "Step 1" above
s3.url=infinite.myorg.com
AWS access information
Code Block
################################################################################
# Amazon AWS Settings
################################################################################
# AWS keys
aws.access.key=ACCESS_KEY
aws.secret.key=SECRET_KEY

Obviously these should be set to your Amazon keys.

Cluster information
Code Block
# eg infinite-cluster1
elastic.cluster=CLUSTER_NAME
elastic.node.discovery=ec2
# (once "elastic.node.discovery" has been set to "ec2", "elastic.search.nodes" can be ignored - the discovery will happen automatically)
#elastic.search.nodes=

In EC2 mode, the "elastic.cluster" string must be the same for all nodes (API and DB) in the cluster. It controls three things:

  • It enables the API nodes to discover each other
  • It enables the DB nodes to discover each other
  • It enables the API nodes to discover their DB

Step 3: Start a load balancer

We provide a template for this (TODO link), though actually the AWS management console interface is just as good, the only custom parameter is the health check target, which should be set to "HTTP:80/api/auth/login/ping/ping".

Using the template, the display name cannot be changed, which is irritating but not that important.

To start using the template:

  1. Navigate to the CloudFormation tab in the AWS management console.
  2. Select "Create New Stack"
  3. Either upload the template (if you've modified it) via "Upload a Template file" or specify TODOLINK in "Provide a Template URL".
  4. Select a "Stack Name" and click Next/Finish where prompted.
  5. The Load Balancer URL can be found either from the "Output" tab in CloudFormation or from the EC2 tab, then the navigation bar "NETWORK & SECURITY" > "Load Balancers".

Note that while it would have been nice to have API nodes automatically connect themselves to the Load Balancer on start, this is not currently possible with CloudFormation except via AWS "Auto Scaling", which does not have a manual override (and also does not map well onto resource provision in Infinit.e).

Step 4: Start database nodes

...