Each PostgreSQL connection consumes ~5-10MB of RAM. PgBouncer sits between your app and Postgres, reusing connections.
# pgbouncer.ini
[databases]
mydb = host=127.0.0.1 dbname=mydb
[pgbouncer]
listen_port = 6432
pool_mode = transaction
max_client_conn = 1000
default_pool_size = 20