0

I've written a network application and deployed it on a single EC2 instance (M1-large).

The application serves like a sort of a chat room (only it enables other stuff besides sending messages), which allows smartphone owners at close (physical) proximity, say up to 5 meters communicate.

This is my first network application and I have some doubts and questions about it:

  1. Since this is a very selective chat room (you will only see people who are very near) I have no idea how I can do load-balancing: If I take for example 2 instances, one in Europe and one in the US, I would like to redirect people from Europe to the former, and people from the US to the latter, If I cannot guarantee this redirection, the whole application is worthless. Is there a way to do this using Route 53? Is there a point in doing it? Isn't one massive instance enough?

  2. I've tried to test heavy-load performance of the instance. So I've written my own application which simulated 200K requests per hour, and lunched it on other EC2 instances. There seemed to be no problem (other than increased latency for some requests, which sound normal for high CPU utilization in accepting a large quantity of connections simultaneously) My question is, does it seem like a good load-test if I expect to have 500K users. I know this is a rather vague question, but a rather vague answer will be sufficient as well.

  3. Security wise. Which general precautions should I take for reducing the risk of a security breach? Is disabling all ports (other than my application listening port) in the firewall a good idea? or is it redundant. Again, a rather vague question. I will appreciate any general answers.

Thanks

1 Answer 1

0
  1. Since your application is proximity-based, you can set up servers in different regions with little-to-no need for cross-talk. Take advantage of Route53's feature "Latency Based routing". For the most part, this should result in people getting to the closest server. However, since it's not "geo-based routing", it's not guaranteed. The benefit of multiple world-wide servers compared to a single massive instance is that you'll reduce the latency between client and server.

  2. If your simulation properly represents the usage of your users, then your results should tell you a lot. If 200K requests per hour properly represents activity for 500K users, then you should be fine. If it does not, then adjust your tests. The key is to ensure your test properly represents 500K users, then your results will too.

  3. Close the ports in the security group for anything not essential to your application. Do not leave RDP, SSH, or database ports open. Only keep your application port open.

2
  • Thanks for that. Silly question, if I close RDP, won't I disable my own access to that instance from that moment on?
    – Daniel
    Apr 16, 2013 at 16:32
  • Close it when you don't need it. Open it again when you need it, but only to your own IP address. Apr 18, 2013 at 1:33

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .