Skip to content

This repo explains how to deploy OMERO on AWS ECS with different options

Notifications You must be signed in to change notification settings

flamingofugang/OMERO-on-AWS

Repository files navigation

Please go to this repository for up-to-date deployment guidance. This repo is for experiments.

Deploy OMERO on AWS

OMERO can be deployed easily through docker compose

Docker compose CLI (docker compose is different from docker-compose) can deploy containers to AWS ECS following this guide. Make sure you have proposer Amazon ECS account settings before deployment, like this

You can generate an AWS CloudFormation (CFN) template from the docker-compose.yml file in this repo through docker compose convert. The generated template will deploy on Amazon ECS Fargate with limited CPU and MEM requirements. To imporve the performance, a modified version of CFN template OMEROonFargate.yml can be used in 1-click deployment:

launchstackbutton

You can use your existing AWS VPC and Subnet. If you have HIPAA compliant requirement, you can use the VPC and Subnet created through this HIPAA Reference Architecture deployment.

After deployment, the DNS name can be obtained in the outputs of CFN stack: dnsname

The Web UI can be accessed through: http://DNSname:4080/

If you want to use EC2 launch type for OMERO server instead of Fargate, you can use a different CFN template OMEROonEC2.yml for 1-click deployment:

launchstackbutton

You can use Amazon EFS volumes as persistent storage for OMERO server container running on Amazon ECS, which can be available through CFN deployment as well.

A modifed CFN template OMEROonEC2EFSAccessPoint.yml can be used for 1-click deployment:

launchstackbutton

The PostgreSQL database can run on Amazon RDS. Another CFN template OMEROonEC2EFSRDS.yml can be used for 1-click deployment:

launchstackbutton

The Hight Availability (HA) deployment of OMERO with single read write server can be used for 1-click deployment:

launchstackbutton

The diagram of Architecture is here: arch

To install AWS CLI and omero-py on the EC2 instance running OMERO server container, run the following scriptsafter login the instance:

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"  
unzip awscliv2.zip  
sudo ./aws/install  
curl -LO https://anaconda.org/anaconda-adam/adam-installer/4.4.0/download/adam-installer-4.4.0-Linux-x86_64.sh  
bash adam-installer-4.4.0-Linux-x86_64.sh -b -p ~/adam  
echo -e '\n# Anaconda Adam\nexport PATH=~/adam/bin:$PATH' >> ~/.bashrc 
source ~/.bashrc  
conda install -c anaconda libstdcxx-ng -y 
conda install -c anaconda libgcc-ng -y  
conda create -n myenv -c ome python=3.6 bzip2 expat libstdcxx-ng openssl libgcc zeroc-ice36-python omero-py -y   
sudo yum install java-11-amazon-corretto-headless -y
source activate myenv

You can download image from AWS S3 using command:
aws s3 cp s3://xxxxxxxx.svs .

and then use OMERO client CLI on the EC2 instance to import the image to OMERO:
omero login
provide the DNSname:4046, root and omero omero import ./xxxxxx.svs

The following blog posts and tutorials can be used for references:

  1. Tutorial on EFS for ECS EC2 launch type.
  2. Blog post on EFS for ECS Fargate.
  3. Blog post on EFS as Docker volume

About

This repo explains how to deploy OMERO on AWS ECS with different options

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published