Search code examples
amazon-web-servicesrestcomm

High-availability for Restcomm


I'm planning a High-availability set-up with autoscaling for RestComm and some general doubts about the best way to plan it.

This is what I have now:

  • Restcomm instance using Amazon ECS (docker), so we can launch more instances very easily.
  • All of them share the Amazon RDS database.
  • Workspace is shared and persisted between instances.

To move to the next step, I have some questions:

  1. Amazon Load Balancer isn't an option because it doesn't support UDP so I'm considering Telestax LB, is it correct?. Is it possible to deploy it using docker?
  2. Move Restcomm MS outside of the docker Restcomm image so it can scale independently. Restcomm provides env variables to specify the MS, so I would have a LB and several MS behind it. Correct?.
  3. How much RAM needs a Restcomm instance and how many concurrent sessions supports?. How can we know how many concurrent sessions are in real time and in a programtically way?.
  4. There is a "automatic scaling" mechanism implemented in RestComm? More info would be appreciated. Ubuntu Juju isn't an option for me.
  5. We are considering Graylog2 or logstasch for logs management. Any insight here?. How do you install the agent in the docker images?.

The only documentation I found it was this very good document: https://docs.google.com/document/d/13xlaioF065pDnQUoZgfIpi6Noh0qHfAZ7U6afcPd2Y0/edit

Is there any other doc?.

Thanks in advance!


Solution

  • Very good questions :

    1. Yes. See, https://hub.docker.com/r/restcomm/load-balancer/

    2. You would have one LB (better to have 2 with active passive to avoid single point of failure) with X Restcomm behind it speaking to Z Media Servers behind them.

    3. It depends on the complexity of the application on top. But here is some numbers https://github.com/RestComm/Restcomm-Connect/wiki/Load-Testing-on-Docker

    4. Not yet. you can use Mesos or Kubernetes potentially if juju is not an option. We have a set of open issues for kubernetes right now but Mesos should be working.

    5. You can check https://hub.docker.com/r/restcomm/graylog-restcomm/ it contains a docker image pre loaded with everything needed to poll a restcomm server for gathering metrics.