I have setup a website with elastic beanstalk on Amazon and i would like to test how many hits it can manage before it fails.
I would like to see it auto scaling the load balancers kicking in etc..
What software can i use to run the tests as i would like to see what it can handle so i can tell my client.
New application version was deployed to running EC2 instances.
I have taken a look at some applications for benchmarking but cannot seems to find anything that runs the tests i am after there is obviously something out there that i dont know about yet.
Please help
this question isn't about programming, so it's more suitable to stackexchange.
Here's a similar thread that can answer your question:
https://softwareengineering.stackexchange.com/questions/128304/is-there-any-way-to-test-how-will-the-site-perform-under-load
Related
I'm new to EC2 and most website hosting stuff in general. Throwing myself in the deep end, I guess.
I have a free micro instance of EC2 running and I git pulled a little program I have. After some setup stuff that program runs perfectly.
I also have a website hosted by namecheap. It isn't much but whatever, it's there.
I want to have a button on my website that will run the program on my EC2 instance. It looks like I need some kind of AWS Lambda function, or their gateway api, or something, but as I said, new to this stuff. Confused. Where should I start? I saw something about hosting through AWS as well, but it looks like that would mean a lot more management needs to be done by me that namecheap does for me.
Any thoughts are appreciated. Thanks!
As I see it, you have 2 viable options:
First, running a simple server on the instance and make REST calls to it. Second, connect with SSH or AWS SSM to the instance and run the command directly.
Depending on the situation, you need to decide which option is better for you.
For the first option, I would recommend you try running a simple server (like flask, or whatever) and send POST call to it using the button on your site.
When handling the call in the server, run the application locally.
For the second option, it can be trickier but essentially you would want to SSH to EC2 instances via AWS Lambda.
Nevertheless, you will need to configure the security group for that instance and open some ports to be able to connect remotely.
SSH(22)
HTTPS/HTTP(80/443)
Probably there are more ways to do it. so feel free to investigate more.
I have created a Spring cloud microservices based application with netflix APIs (Eureka, config, zuul etc). can some one explain me how to deploy that on AWS? I am very new to AWS. I have to deploy development instance of my application.
Do I need to integrate docker before that or I can go ahead without docker as well.
As long as your application is self-contained and you have externalised your configurations, you should not have any issue.
Go through this link which discusses what it takes to deploy an App to Cloud Beyond 15 factor
Use AWS BeanStalk to deploy and Manage your application. Dockerizing your app is not a predicament inorder to deploy your app to AWS.
If you use an EC2 instance then it's configuration is no different to what you do on your local machine/server. It's just a virtual machine. No need to dockerize or anything like that. And if you're new to AWS, I'd rather suggest to to just that. Once you get your head around, you can explore other options.
For example, AWS Beanstalk seems like a popular option. It provides a very secure and reliable configuration out of the box with no effort on your part. And yes, it does use docker under the hood, but you won't need to deal with it directly unless you choose to. Well, at least in most common cases. It supports few different ways of deployment which amazon calls "Application Environments". See here for details. Just choose the one you like and follow instructions. I'd like to warn you though that whilst Beanstalk is usually easier then EC2 to setup and use when dealing with a typical web application, your mileage might vary depending on your application's actual needs.
Amazon Elastic container Service / Elastic Kubernetes Service is also a good option to look into.
These services depend on the Docker Images of your application. Auto Scaling, Availability cross region replication will be taken care by the Cloud provider.
Hope this helps.
It's so undescribably discouraging and frustrating that deploying is such a pain. There are no step-by-step guides and every information source is outdated. I have NO idea where to begin!
I want to deploy Meteor apps to AWS (EC2 or Elastic Beanstalk) but now I've learned that it doesn't support Websockets or sticky sessions. I don't know what the latter means, but the former sounds like a big deal breaker. How can the biggest host on the Internet not support something so fundamental?
Should I just not use AWS at all? It's pretty much the only scalable host on the Internet, so that's discouraging in itself. I've read about Load Balancing and understand exactly 0 % of it, and I broke out in a sweat just typing that word here just now.
So, first of all: is it true that AWS/Elastic Beanstalk doesn't support websockets?
Second: What other issues should I look out for when deploying?
Use Meteor Up. Its README has some thorough documentation, and its primary hosting destination is AWS. And yes, AWS supports Websockets. Just follow the Meteor Up instructions.
There are quite a few resources on deployments of AMI's on EC2. But are there any solutions to incremental code updates to a PHP/Java based website?
Suppose I have 10 EC2 instances all running PHP / Java based websites with docroots local to the instance. I may want to do numerous code deployments to it through out the day.
I don't want to create a new AMI copy and scale that up to new instances each time I have a code update.
Any leads on how to best do this would be greatly appreciated. We use subversion as our main code repository and in the past we've simply done an SVN update/co when we were on one to two servers.
Thanks.
You should check out Elastic Beanstalk. Essentially you just package up your WAR or other code file, upload it to a bucket via AWS's command line/Eclipse integration and the deployment is performed automatically.
http://aws.amazon.com/elasticbeanstalk/
Elastic Beanstalk is exactly designed to do this for you. We use the Elastic Beanstalk java/tomcat flavor but it also has support for php, ruby, python environment. It has web console that allows you to deploy code (it even keeps history of it), it also has git tool to deploy code from command line.
It also has monitoring, load balancer, auto scaling all built in. Only a few web form entries to control all these.
Have you considered using a tool designed to manage this sort of thing for you, Puppet is well regarded in this area.
Have a look here:
https://puppetlabs.com/puppet/what-is-puppet/
(No I am not a Puppet Labs employee :))
Capistrano is a great tool for deploying code to multiple servers at once. Chef and Puppet are great tools for setting up those servers with databases, webservers, etc.
Go for a Capistrano . Its a good way to deploy your code on multiple servers .
As already mentioned Elastic Beanstalk is a good option if you just want a webserver and don't want to worry about the details.
Also, take a look at AWS CodeDeploy. You can have much more control over the lifecycle of your instance and you'd be looking at something very similar to what you have now (a set of EC2 instances that you setup). You can even get automatic deployments on instance launch with Auto Scaling.
You can either use Capsitrano or TravisCI.
We have a web app running using AWS Elastic Beanstalk (via Visual Studio 2010).
We now want a second site on the same server for development and presentation
purposes. I want to point to the new location for continuous deployment. Once
we are happy, I want to switch back to the original (production) destination.
I have been doing some reading online and it looks like having two sites
running on the same instance is not possible using Elastic Beanstalk?
We are currently running under the free tier and are trying to squeeze every penny
we can. Having to throw up another instance to host our pre-production environment
will halve the time we have allocated for free tier usage.
Any ideas?
It's not clear what exactly you want to do from your question. Elastic Beanstalk makes it very easy for you to roll back and forth between versions of your application. You can also easily terminate and recreate environments fairly quickly. If you don't need your "production" destination 100% of the time, couldn't you just shut it down when you're not using it?