Using and configuring RDS with FME Cloud

FME Cloud runs on Amazon Web Services (AWS). Many workflows that you will run on FME Cloud are likely to require a database. FME Cloud instances do ship with a PostGIS database that you can store your own data in, but for production workloads we strongly recommend using the AWS Relational Database Service (RDS) instead. RDS makes it very easy to set up, operate and scale a relational database in the cloud. You can launch a MySQL, Oracle, SQL Server (inc. SQL Server Spatial) and PostgreSQL (inc. PostGIS) database. Advantages of using RDS over the FME Cloud PostGIS database:

It makes migration much easier as the FME Server migration does not backup the user data within the PostGIS database (it can’t as it doesn’t know the username and password). If you do use the PostGIS database on the instance to store data, you will have to migrate the data using PostGIS tools independent of the FME Server migration.

It takes all of the database load off of the FME Cloud instance. This means the FME Cloud instance will be faster and can handle larger loads for a given size.

You get to take advantage of all the features that RDS gives you. Simple to deploy, fast predictable performance, scalable, secure and reliable. It is also fully managed so they patch and backup the database for you.

Advantages of using RDS over on-premises database:

You can locate the RDS instance in the same data centre as the FME Cloud instance which means you will get a fibre connection between the two instances. Our tests showed an average transfer rate of around 30 MB/s.

You will pay less for network costs. If you are moving large volumes of data between the database and cloud instance it is cheaper to move data within a data centre than it is to send it externally.

Launching an RDS database

It is relatively simple to launch an RDS database, you will need an AWS account and then the AWS documentation does an excellent job of walking you through the process. For optimal performance place your database in the same region and availability zone (AZ) as the FME Cloud instance. You can find the region/AZ the FME Cloud instance is in by selecting an instance on the FME Cloud dashboard and then looking on the Details panel.

Connecting to an RDS database with FME

An RDS database behaves exactly like a normal relational database. You can therefore just use the relevant reader/writer to interact with it. One thing to be aware of on the AWS side is security groups. Each RDS instance is assigned to a security group which defines which ports are open to the outside world. You will need to ensure the port the database runs on is open and it is best practice to tie this to an IP rather than having it completely open. If you do want to tie it to the FME Cloud IP then you need to be aware of the fact the IP is not static. When you pause the instance it will be assigned a new IP. There is a workaround for this which is discussed in this article.