1

I'm very new to AWS and cloud computing per se. I have a costumer now who needs a smartphone app with which it should be possible to write text messages to each other (like Whatsapp). The app needs a corresponding backend service to save user credentials and to exchange the messages written by the users of the app. So I'm thinking about writing the backend service in Java, Spring and an SQL DB and hosting it on AWS. I have read about the different T2 instance types and it sounds promising to use EC2 but I don't know which instance I should choose. The requirements are: - the backend service consists basically of a REST API with a database (so no complicated business logic but only basic CRUD operations). - 100 - 1000 users are using the backend service. But not simultaniously (not everyone is writing messages at the same time)

I need to make my customer an offer about the prizing. I need to tell my customer (approximately) how high the running costs will be when the application is in production.

2
  • 1
    You really need to benchmark the app or something similar. CPU probably won't be an issue, it's more likely RAM. Work out the RAM you need and base the instance size on that. You can tell the customer "initial estimates and benchmarking suggest a t2.(type) will be suitable, but this may be adjusted up or down based on application performance and user behavior". Give them the price of the instance you think will work, then the price of higher and lower. I have Nginx, PHP, MySQL, and Wordpress on a t2.nano with 512MB RAM and 512MB swap, very lightly loaded though. If in doubt maybe t2.medium
    – Tim
    Aug 23, 2017 at 21:37
  • Don't forget that for your DB you can use RDS, you shouldn't use a DB instance on your EC2. Notice that using a WS on java compatible App server like Tomcat o Glassfish use a lot of RAM. Good luck. Aug 27, 2017 at 20:52

2 Answers 2

1

I would start small and then increase as needed. If you launch the instances in auto scaling groups behind an Elastic Load Balancer you can then easily increase the instance size without taking downtime.

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-resize.html

2
  • Yes basically good idea, but I need to make my customer an offer. I'll add that in my question.
    – NMO
    Aug 23, 2017 at 15:01
  • 1
    I this case, it's better to over estimate that sub estimate. For the client is better to hear 'we are saving you some money on the AWS infrastructure rather than 'we need more money for the AWS infrastructure' (they will think you didn't know how to estimate). Aug 27, 2017 at 20:56
0

t2.large instances cost about $70~ish a month. Lets say you run two for availability.

A RDS db.t2.large will run $100-ish a month.

Snapshots, bandwidth, and EBS costs will probably hover around 100$ for just running your REST API.

I would give your customer a rough guess of $300-to-the-moon a month. You could scale up a lot if the need arise, but you should be able to get what you need done on that little stack and still have some breathing room.

If 300$/month is too much, you can scale back even further. t2.mediums run 35$/month for EC2, 50$/month RDS.

Operational costs will vary, and you'll still need Domain, DNS, SSL certs, etc as OPEX.

Source: http://www.ec2instances.info

You must log in to answer this question.

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