Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

...

  • Elastic beanstalk - We currently have three environments deployed to Tomcat 7.x
    • Repository Services - The main Synapse REST API.
    • Authentication Services - The REST API for Authentication.
    • Portal - The main Synapse Web site.
  • RDS - All transactional Synapse meta data is store stored in a MySQL database.
  • CloudSearch - Search and Query features are currently supported by cloudsearch
  • SNS - All database alarms are currently configured to send emails to the development team.

...

  1. Administration level AWS account access key and secret key.
  2. You will need an S3 bucket named: '${stack}-default'.
    1. This bucket should contain the property file with all of your stack's passwords named '${stack}-default.properties
  3. SSL Certificates used for the Elastic Load Balancer must be placed in the S3 bucket named: '${stack}-default'. The following files must be there:
    1. SSL/gd_bundle.crt (from GoDaddy)
    2. SSL/gd_intermediatesagebase.org.crt (from GoDaddy)
    3. SSL/sagebase.org.crtprivate-key-for-ssl-certs-2048.pem (from /work/platform/PasswordsAndCredentials/SshCertificates)

Building a Stack

...

Get the Code

The first step is to get the Synapse-Stack-Builder jar either from Artifactory or cloning from GitHub.  To clone from GitHub:

Code Block
git clone https://github.com/Sage-Bionetworks/Synapse-Stack-Builder.git
cd Synapse-Stack-Builder
mvn clean install

Create a configuration property file

There is a minimum amount of configuration information that you must provide to the stack builder.  This is done by passing Java properties file path the path to a java Properties file to the stack builder.  To setup this file start by making a copy of the following file:

...

Code Block
#The Amazon Web Services access key (id) need to connect to AWS
org.sagebionetworks.aws.access.key=<YOUR_ACCES_KEY>
#The Amazon Web Services secret key (password) need to connect to AWS
org.sagebionetworks.aws.secret.key=<YOUR_SECRET_KEY>
# This encryption key will be used to encrypt all passwords in the settings file
org.sagebionetworks.encryption.key=<YOUR_ENCRYPTION_KEY>
# The name of this stack (prod or dev)
org.sagebionetworks.stack=dev
# The name of this stack instance. The unique id of this instance of the stack.  For example, instance=B would be used to create prodB.
# For a dev stack this should be your last name.  For example, instance=hill would be used to create devhill
org.sagebionetworks.stack.instance=hill
# The version of the portal war to deploy.
org.sagebionetworks.portal.war.version=1.5.3
# The version of the authentication war to deploy.
org.sagebionetworks.auth.war.version=1.4.0
# The version of the repository war to deploy.
org.sagebionetworks.repo.war.version=1.4.0

Build a Stack

Build a stack by running the following:

Code Block
./build-stack.sh <config.properties_file_path>

You may receive errors when you run the stack builder for the first time.  That is because it takes time to ready RDS and ElasticBeanstalk instances.  Run it again when the instances are ready to get rid of the errors.

CNAME Setup

Currently, there is one extra step need to get the stack ready (we hope to automate this step soon).  To access the new stack you will need to create some CNAMEs in GoDaddy:

HostPoints ToExample
auth-${stack}-${instance}auth-${stack}-${instance}-sagebase-org.elasticbeanstalk.comauth-dev-hill -> auth-dev-hill-sagebase-org.elasticbeanstalk.com
repo-${stack}-${instance}repo-${stack}-${instance}-sagebase-org.elasticbeanstalk.comrepo-dev-hill -> repo-dev-hill-sagebase-org.elasticbeanstalk.com
portal-${stack}-${instance}portal-${stack}-${instance}-sagebase-org.elasticbeanstalk.comportal-dev-hill -> portal-dev-hill-sagebase-org.elasticbeanstalk.com
search-${stack}-${instance}search-${stack}-${instance}-sagebase-org.elasticbeanstalk.comsearch-dev-hill -> search-dev-hill-sagebase-org.elasticbeanstalk.com