XMPP Server on EC2 Amazon Web Service (AWS)

9,530

AWS will work for what you intend without any problem, things to be aware though of an EC2 implementation

  • You'll lose CPU cycles when the underlying node is under high load, be ready for your machines to sometimes not deliver enough CPU juice
  • Disk I/O will be a bit slower than a regular machine

Apart from that Openfire does have a clustering solution, which is commercial, and as far as I know the company behind it died (and they haven't open sourced it, gah), I've been trying to contact them to get the clustering solution myself, to no avail.

So if you choose Openfire you'll be stuck with one server having to carry all the workload, which sounds a bit stressing with the numbers you're talking about, if you want to start with Openfire it looks like a good easy way to get rolling but when you need to be aware of your options when you start to grow ;)

For tutorials have a look at the Openfire howto at http://ubuntuforums.org/showthread.php?t=525670, it's not a bad one :)

Share:
9,530

Related videos on Youtube

Jeru Luke
Author by

Jeru Luke

Updated on September 17, 2022

Comments

  • Jeru Luke
    Jeru Luke almost 2 years

    My company uses OpenFire for server-side and smack for client-side in its XMPP Android application.

    AWS seems like a good and scalable service for what we need. We use it for testing our app, but I'm afraid that the server will crash with 20k-50k users.

    I have 2 questions:

    1. Is AWS good enough for an XMPP (OpenFire) server? What are the pros and cons?
    2. How do I build such an application that can handle 20k online users at least, and lets say 2k opened chat rooms?
    3. Is there any specific tutorial for this kind of stuff?

    Money is not a problem in terms of server costs. Time is what matter for us right now.

  • Jeru Luke
    Jeru Luke over 13 years
    I need the ability to grow. Do you recommend another XMPP server-side application? Also, what about this connection module? igniterealtime.org/projects/openfire/connection_manager.jsp
  • lynxman
    lynxman over 13 years
    Any XMPP server should do the task, although clustering is a bit of a daunting task. That connection module will connect your XMPP server to other networks, maybe you can end up using this to connect multiple XMPP servers between them, but they'll see the users as being on remote servers, try it out though.
  • Tom O'Connor
    Tom O'Connor over 13 years
    ejabberd scales a bit more linearly.
  • Jeru Luke
    Jeru Luke over 13 years
    I just found this thread: community.igniterealtime.org/thread/32723 . They say that we should use: docs.safehaus.org/display/PENROSE/Home . After reading about this it sounds exactly like what AWS does. am I wrong?
  • lynxman
    lynxman over 13 years
    Yeah, that's the main issue, if you have separate Openfire servers users will see one each other form different domains, as Tom O'Connor says ejabberd will be a bit more linear to grow but also the learning curve is steeper than Openfire. Try starting your project with Openfire so you can test your code but keep in mind that you'll need to look at other XMPP servers as soon as you start growing.
  • shareef
    shareef about 9 years
    hi @lynxman what happened with you please help