In this scenario, where users in Eastern Canada are experiencing slow query access to a database hosted in Houston, Texas, the best solution from the given options would be to:
Place a read replica in Eastern Canada.
This approach would help improve query access performance for users in Eastern Canada by reducing latency. The read replica would allow users to query data from a location closer to them, thus alleviating the load on the primary database and speeding up response times.
Placing a writable replica would not be necessary unless you need to allow write operations in that region, which isn't indicated in the scenario. Creating a foreign key or an index would not address the latency issues for the remote users.