We recommend that your Shared Database is hosted on a local server due to the significant network speeds required to ensure best performance. However, if you need to install your Shared Database in the cloud, this article provides a brief guide to using an Amazon RDS Postgres database.
Pros and Cons
Pro: No need to maintain a local server, operating system or license.
Pro: Hardware maintenance and data security are hopefully taken care of by the Cloud provider.
Pro: Configuring security is relatively simple and easy.
Con: Significant network latency may result in degraded performance, especially for larger files and folders.
Con: Typically more expensive than an in-house server.
You will need your own Amazon AWS account and a local SQL client, such as psql or SQL Workbench. This article assumes psql is used.
We recommend configuring a Security Group within AWS for use with your RDS instance. At the very least, you will need to ensure your local IP address is able to access port 5432 on the RDS database.
Creating the RDS database
Follow the first two sets of instructions here to create the database. Note the following caveats:
- The documentation tells you to create a public instance, with a new security group. This may well be appropriate for your use case - but see the security considerations above.
- The documentation tells you to use a free tier configuration. This provides a server with 1 CPU and 1GB of RAM. We recommend at the very least 2 CPUs and 4GB of RAM at the minimum.
- The documentation recommends leaving the Availability Zone to default. This is okay for a publicly available server, but not private within a VPC (such as if you are using EC2 instances as well). If not making it public, you will need to ensure it is created within the same Availability Zone as your EC2 instances.
- The administrator user name and password are for the RDS database, not the Geneious Shared Database (which will be created later).
After following the documentation, you should have access to a database in RDS. You can test this by first pinging the database, then logging in.
psql -U username -p 5432 -h my_database.fsiufs87.rds.amazonaws.com
If you have configured the database correctly, you will be asked to enter a password for the specified username.
Creating an empty database
Once you have successfully logged into the RDS database (via psql or SQL Workbench) you may now create an empty Geneious Shared Database. In this example, we are going to use geneious as the database, and geneious_admin as the administrative account.
my_database => create database "geneious" with owner "username" encoding "utf8";
my_database => create user geneious_admin with encrypted password 'my_password';
my_database => grant all privileges on database geneious to geneious_admin;
At this point, you will be able to log into the server from Geneious, as the geneious_admin user. Geneious will note the database is empty, and ask you if you want to create a Geneious database within.
Administering the server
In order to add users to the database, you will need to create them in the database (in similar fashion to geneious_admin, but granting each user only those privileges required to use the database (SELECT, INSERT, UPDATE and DELETE at a minimum).
See section 20 of the Geneious User Manual for further information.