* Improve hosted cellxgene - option to turn off the test index page, or supply a page for redirect. For EB, The default is to return 404. For cli launch, the default is the test page. - option to select which matrix types are allowed for multi dataset servers. For EB, The default is CXG only. For cli launch, the default is any matrix type. - Return early with an error response if diffexp is requested when not configured - Verified that reembedings and user annotations also return with an error response if used when not enabled. TODO: The new options cannot currently be set by the user. I plan to add a configuration file where these and all other settings can be set. Fixes #1210 Fixes #1228 Fixes #1229
AWS Elastic Beanstalk
This directory contains script to aid in creating and deploying cellxgene on an AWS Elastic Beanstalk instance.
This will result in a variant of cellxgene, running on AWS EC2 instances, serving data from S3. All datasets must be in the new CXG (tiledb) format - see the converter script cxgtool.py in server/converters - and located in a single S3 prefix, which is accessible to the instance. In the current incarnation, no access control or authentication support is available (outside of anything you configure yourself), so this is most appropriate for public datasets.
This is early development work, and will change significantly in the near future. We would love feedback on it, but please assume it will change.
Prerequisites
-
Some familiarity with AWS EB, S3, and IAM are needed.
-
Install the awsebcli. Instruction are here:
https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb-cli3-install.html -
In the top level directory, run
make build-clientto create the client static assets.
Steps
These steps are meant to serve as an example.
There are many more options to these commands that may be important or necessary for your environment.
-
Create an S3 bucket
Upload your matrix files to this bucket
-
Create an elastic beanstalk application. For example:
EB_APP=cellxgene-app eb init -p python-3.6 $EB_APP -
Create the artifact.zip file for the application
make build -
Create an environment
# name of the environment EB_ENV=cellxgene-env # type of ec2 instance to run the cellxgene server. EB_INSTANCE=m5.large CXG_DATAROOT=<location to your S3 bucket> eb create $EB_ENV --instance-type $EB_INSTANCE --envvars CXG_DATAROOT=$CXG_DATAROOT -
Give the elastic beanstalk environment access to the S3 bucket.
This link may provide some useful information: https://aws.amazon.com/premiumsupport/knowledge-center/elastic-beanstalk-s3-bucket-instance/
-
Deploy the application
eb deploy $EB_ENV -
Open the application in a browser
eb open $EB_ENV