XMPP Server on EC2 Amazon Web Service (AWS)
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 :)
Related videos on Youtube
![Jeru Luke](https://i.stack.imgur.com/V9eWg.jpg?s=256&g=1)
Jeru Luke
Updated on September 17, 2022Comments
-
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:
- Is AWS good enough for an XMPP (OpenFire) server? What are the pros and cons?
- How do I build such an application that can handle 20k online users at least, and lets say 2k opened chat rooms?
- 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 over 13 yearsI 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 over 13 yearsAny 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 over 13 yearsejabberd scales a bit more linearly.
-
Jeru Luke over 13 yearsI 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 over 13 yearsYeah, 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 about 9 yearshi @lynxman what happened with you please help