user3081402
user3081402

Reputation: 1

Determining EC2 and RDS instance types

I have an EC2 instance (free micro) where I am hosting a website with an embedded flash game. The flash game sends data to an RDS (free micro) MySQL database with 5 tables. The game is for educational purposes and we are tracking in game actions that players take so that we can publish an academic paper- therefore it is important that we don't lose much data. In the past couple of weeks we have had roughly 20K people sign up to play the game when it launches. This is way way more than anticipated. My fear is that all 20K play in the same 48 hour period and crash everything. The game is 10.7 MB, will need to load into the browser, and then it will be sending between 5-10 rows to each table per a session. So we could be looking at 1-2 million entries per table over two days. I will be using loader.io to load test but this is my first time load testing. I wanted to get opinions on what EC2 and RDS instances would be best to buy or should I just load test until I find one that works?

Can someone lead me in the right direction on this? The Amazon documentation has not been very helpful for me.

Upvotes: 0

Views: 261

Answers (2)

krantboy
krantboy

Reputation: 129

The things i Would concentrate on are memory and IOPS.

Memory:

R3 instances are optimized for memory-intensive applications and have the lowest cost per GiB of RAM among Amazon EC2 instance types.

IOPS: (input/output operations per second)

I would strongly recommend to use Provisioned IOPS if you are looking for guaranteed read or writes per second.Provisioned IOPS storage is a storage option that delivers fast, predictable, and consistent throughput performance. You can specify the IOPS rate while creating the instance according to your needs.

Best Part: If you realize that you are over or under utilizing your memory , you could upgrade or downgrade your instance with no downtime(provided you are running a MAZ).

Upvotes: 0

datasage
datasage

Reputation: 19563

There is no simple answer to this question. It comes down to the performance of your application. Every application is different, depending how its developed and what it has to do, it will take a varying amount of CPU cycles to serve a single request.

So with this in mind, the best thing you can do is try to replicate a high load scenario and see how your application performs. Then you can use this information to make decisions about what types of instances your application should use. Its also possible you may identify bottlenecks in your application that can also further improve performance.

Upvotes: 1

Related Questions