I am utilizing FME Cloud (Server 2020) to run a regular ETL pipeline from a Firebird database using their Jaybird JDBC driver. Working with a local instance and FME Desktop seems to have no issues with connecting and running SQL statements.
The database cannot have external ports opened due to sensitive data being stored within it. However, we are able to create an SSH tunnel to a jump server that is otherwise locked down which FME Cloud could then use to create a connection. Needing to keep a secure encrypted connection throughout the entire path I have managed to load some external Python libraries and establish a temporary SSH tunnel from the FME Cloud instance to the jump server for the duration of the workbench execution. I have tested this connection by using the Firebird Python library in a PythonCaller to execute an SQL statement successfully.
However, when I try to use the SQLCreator or SQLExecutor with the already established to work JDBC driver with this local SSH tunnel it fails to complete the SQL statement. Using a non-sensitive version of Firebird hosted on my own machine I was able to use the SQLCreator to execute an SQL statement on the FME Cloud instance where it was directly addressing the remote port that had been temporarily opened on the jump server.
TL/DR this JDBC driver only fails if it tries to use the SSH tunnel created by Python between the Cloud instance and the jump server but works under all other conditions. And the SSH tunnel does work if a non-JDBC method is used.
Is there anything about how FME Cloud EC2 container is configured or how FME Server uses JDBC connections that might be causing this frustrating situation. I really don't want to create a custom transformer in Python just for Firebird.