Hi Jeff,
Thanks for the compliment. It’s nice to hear that the co-founder of Discourse/Stackoverflow considers our environment as enterprise even before it has been released
Problem solved. The issue was that Amazon Aurora was being used as RDS and by default this creates a cluster with two database instances inside - one primary and one replica.
Sometime yesterday an auto failover occurred and within our app.yml under the DISCOURSE_DB_HOST:
parameter I had specified the DATABASE endpoint. Not the CLUSTER endpoint. The failover made the database endpoint specified in app.yml a read only replica, thus Discourse being locked into Read Only mode.
If anyone is running a similar setup:
- EC2 instances with docker containers
- Redis ElastiCache
- Amazon Aurora RDS (PostgreSQL underneath)
Check that /var/discourse/containers/app.yml contains:
DISCOURSE_DB_HOST:
RDS Cluster Endpoint (Go to RDS > Clusters > Access your cluster > Under Cluster endpoint is the endpoint you need to specify)
DISCOURSE_DB_PORT:
RDS Cluster Port
DISCOURSE_REDIS_HOST:
ElastiCache Primary Endpoint (Go to ElastiCache > Redis > Toggle the “play” shape button beside your Redis Cluster Name > Under Primary Endpoint is the endpoint you need to specify)
DISCOURSE_REDIS_PORT:
Redis Cluster Port
Hope this helps someone!
@codinghorror Is there a way to run ./launcher rebuild app
without pulling down the latest codebase from Discourse?