A2Billing is a very flexible billing platform for Asterisk that is driven by a MySQL database. This database stores 99% of the A2Billing configuration including all of the rates, customers and system settings. In fact the only thing not stored in the database are the configuration details for MySQL itself.
There are a few different options for scaling out with A2Billing but one of the simplest comes from the fact that the A2Billing MySQL database does not need to be stored on the same machine as Asterisk (the server that is handling the call/audio). What this means is that you can start out with a single A2Billing server and when you need to add more call capacity you can deploy another A2Billing server, pointing to the database on the original machine.
This gives you 2 servers running Asterisk/A2Billing, but with one place to manage all of the customers, rates, call plans etc.
To achieve this you need to be running Asterisk RealTime (http://sysadminman.net/blog/2011/asterisk-realtime-and-a2billing-what-is-it-1737) and then just modify the MySQL connection details on the second server to point to the database on the original server in /etc/a2billing.conf –
You will then need to add database access permissions on the server running MySQL. You will also need to open port 3306 on the database server, but just allow access to the additional A2Billing server.
I have several customers sucsessfully running the above configuration using the SysAdminMan template.