Instead of relying on the elastic load balancer, you should be doing load balancing with DNS using SRV records.
If you are using SRV records and you are at the beginning of what seems to be a serious downtime, you can set all the weight of your SRV records to the instances in the healthy AZ.
In the backend, if you're using SQL, you should use a DB with a WAL-based async replication, like Postgresql.
In PostgreSQL 9, you have streaming replication integrated to the DB. If using PostgreSQL 8, you could use third party apps, like Slony-1 or PG-Pool II.
In the NoSQL databases, there seems to be a "last write wins" effect. Even in distributed beasts like Cassandra. So if you are running a NoSQL cluster, you need to determine which nodes received the most data during the outage and repair from there.