Link to home
Start Free TrialLog in
Avatar of cloudtechnician
cloudtechnician

asked on

AWS App Testing with RDS in remote zone

Recently, we performed some test to evaluate the performance of our application with DB in multi-az. Basically, we planned to test to the performance of RDS in multi-AZ. Our applications are sitting in one AZ and we tested the app performance with DB in same AZ and DB in another availability zone.

Basically compared the same zone to multiple zones seems to add about a %25 reduction in our performance when comparing how many messages we were able to process per minute in a remote zone instance as compared to a same zone instance.  This is based on a test where the only change was that in one case the db was in the same zone as the application servers and in the second case the db was in a remote zone.

Could someone please let me would AWS be able to help here, because as per my understanding they just claim that AZs are connecting with low latency links but doesn't provide any SLA.
Avatar of Stuart Scott
Stuart Scott
Flag of United Kingdom of Great Britain and Northern Ireland image

Hi Cloudtechnician,

I'm not aware of any SLA for connectivity throughput and latency between AZs, the AZs are there to allow you to architect and build a highly available and resilient infrastructure rather than using the AZs as a service with associated SLAs.

If you wanted to minimise your 25% reduction in the event of a failover to your DB in a Multi AZ configuration then you could script for a number of your Application instances to spin up on the same AZ as your failover DB therefore ensuring they are running in the same AZ - perhaps use CloudFormation to assist?

I'm not experienced in the scripting side of things unfortunately so I would not be able to help you on that front, but it's certainly something that could be done.

Hope this helps,

Cheers,

Stu....
Avatar of cloudtechnician
cloudtechnician

ASKER

As per my understanding, RDS endpoints never change, so how would I detect the RDS DB failover n make my application instance to spin up in the same AZ where my RDS instance reside.
Hi,

You can create an SNS Topic and subscribe to it to be notified on a Failover request, see here:
http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Events.html

How you would then use this notification to fire up your EC2s I'm not 100% sure, but you could perhaps use AWS Lambda: https://aws.amazon.com/lambda/

On the SNS subscription you could select AWS Lamdba, and then create a Lambda function that scripts the running of the EC2s and applications that you need.

I have not used Lambda before but it looks as thought it could work.

Cheers,

Stu...
Hi Cloudtechnician,

How did you get on with this? Did you manage to make any progress?

Cheers,

Stu...
ya we performed the tests and notice 15% degradation in performance when we connect the app in in AZ and RDS in another.

We always recommend all time sensitive apps run on a single Zone only. Eventhough the zones connected via black fibre network, there will be a minmum latency which cannot be avoided. We too faced the same issue and we fixed it by moving all the app and DB servers in to single zone. 


Please refer below url for more updates.

https://aws.amazon.com/blogs/architecture/improving-performance-and-reducing-cost-using-availability-zone-affinity/

This question needs an answer!
Become an EE member today
7 DAY FREE TRIAL
Members can start a 7-Day Free trial then enjoy unlimited access to the platform.
View membership options
or
Learn why we charge membership fees
We get it - no one likes a content blocker. Take one extra minute and find out why we block content.