Can some one help me with the fact is aws going to discontinue classic load balancer in future??
I have checked many documents but non of it clearly mentions about it.
As Edcel Cabrera Vista says, there's no real way to know if AWS will discontinue a product or not, until they actually tell us. They haven't told us that Classic Load Balancers are being discontinued.
They are, however, discontinuing EC2 Classic Networking, and I think that leads to some confusion. They both have "classic" in their name and load balancers are usually thought of as networking. So you'd think they were the same thing or at least related somehow.
But no, "Classic Load Balancers" are different than "EC2 Classic Networking". It's only EC2 Classic Networking that is being discontinued right now. Classic Load Balancers are not at this time being discontinued. AWS has not addressed this confusion, but from the announcement in July of this year, they say that a Classic Load Balancer in EC2 Classic will have to be migrated to a Classic Load Balancer in a VPC. If your Classic Load Balancers are already in a VPC, then they won't be affected.
AWS provides a Bash shell script you can run to find any EC2 Classic Networking resources you might have out there. To run the script you need to have AWS CLI set up, including having your credentials set. Then run the script. It'll spit out a bunch of csv files with any lingering EC2 Classic Resources you might have out there, as well as a csv file that tells you whether your account is enabled for EC2 Classic Networking. If yours is not, and you have nothing listed in the "Classic_CLBs.csv" file, then you have nothing to worry about. Hooray!
There is no exact answer if a service is going to be discontinued by aws. However there are few ways for you to have a peace of mind regarding those thoughts because it's a possible scenario in the future as well.
AWS offers documentation for you to migrate the classic load balancer to their new solutions having this document will help you think to adopt properly & more agile. And it gives more feature to your application.
https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/migrate-to-application-load-balancer.html
AWS is Retiring the EC2 Classic LB by August 2022, after the Aug 15 will they still work without any issue and is it just the support for classic LB stopped?
I can not comment this so I'm posting this here.
I couldn't find the aws official article saying "classic load balancer is discontinued or deprecated".
However, I found this aws official article "Migrate your Classic Load Balancer".
I'm not sure the article implies "classic load balancer is discontinued or deprecated". But at least I can see the article implies "You better use new load balancer". Actually, application load balancer(new) is better than classic load balancer(old) as long as I tried both.
In addition, a similar thing happens for "Launch Template"(new) and "Launch Configuration"(old) on EC2. Then, there is no aws official article saying "Launch Configuration(old) is discontinued or deprecated".
But there are aws official articles "Replacing a launch configuration with a launch template" and "Launch templates".
In both artcles, "Launch Template"(new) is recommended to use actually.
Moreover, the prices of newer instance types are cleaper than older ones.
It will implies "You better use newer instance types".
I do not believe there are any plans to discontinue it, however, it is heavily advised against using it for any new load balancer.
It was primarily targeted for EC2 Classic
Related
I have an AWS website that is running inside a private subnet and I am not sure what the best way is to update it.
I would like something that is non-burdensome, ideally it would be nice to have some EC2 Box (with security groups only allowing select IP's to connect too) running the development page, and then I could simply copy it over to the private EC2 Box with a click of a button.
I am not too familiar with best practices, but the idea of connecting through several EC2 boxes seems burdensome.
Thank You!
Sounds like you might want to make use of AWS CodeDeploy. There are other tools as well, but since you are already on/using AWS this might be a good one to start with:
AWS CodeDeploy is a service that automates code deployments to any
instance, including Amazon EC2 instances and instances running
on-premises. AWS CodeDeploy makes it easier for you to rapidly release
new features, helps you avoid downtime during application deployment,
and handles the complexity of updating your applications. You can use
AWS CodeDeploy to automate software deployments, eliminating the need
for error-prone manual operations, and the service scales with your
infrastructure so you can easily deploy to one instance or thousands.
https://aws.amazon.com/codedeploy/
I have to setup ec2 for a medium rails app running on apache2, mysql, capistrano and a few background services. I would like to know what is the best practices that every developer usually does to set up his rails app. I would like to know what kind of setup that is easy to scale and can mimimic at least
auto deployment
security
regular data backup and an easy and quick way to restore the data
server recovery
fault tolerance
I am also interested in how to monitor the server status and performance and other kind of best practice would be also helpful.
ps: take into account also that my app database will grow a fast.
I think a good look into the AWS docs and in particular the architecture center would be the best place to start. However, let me address as many of your questions as I can.
Database
The easiest way to get a scalable, fault tolerant database on AWS is to use the Relational Database Service. You should read the docs and best practices to ensure you get the most out of it - ie. multiple AZs.
EC2 Servers
The most recommended way to structure your servers is to decouple them into Web Servers (serve html to users) and App Servers (application logic, usually returns json or xml etc). See this architecture example.
However, the key is to use an AutoScaling group behind an Elastic Load Balancer.
Automation
If you want to use capistrano, just install it into your servers. You could create a pre-configured AMI with it installed along with whatever else you want. Alternatively, you could install it in a deployment script. However, the most recommended method for this kind of thing is to use the AWS OpsWorks service which is Chef in the cloud.
Server Recovery & Fault Tolerance
If you use EC2 AutoScaling, if a server becomes unavailable ie. hardware fails or it stops replying to EC2 health checks, AutoScaling will automatically terminate it and launch a replacement.
With the addition of the ELB and ELB health checks, instances that stop responding to web requests can be brought out of service by the ELB.
You need to read the docs for more info on this.
Backup and Recovery
For backing up data on EBS volumes attached to EC2 instances, use EBS Snapshots. However, the best types of architectures keep EC2 instances stateless - they don't store anything except application code, if they died it wouldn't matter. In these situations all data, including user files can be stored on S3. On S3, you have a number of back up options such as Cross Region Replication and or data archiving to Glacier
Monitoring
AWS provides CloudWatch which can provide you with hypervisor visible metrics such as network in and out, CPU utilization and more. If you want to get more data, you could use custom metrics and push things like eg. memory usage. In addition to cloudwatch, you could use a server level monitoring tool.
Deployment
I recommend AWS Code Deploy.
Security
Use Security Groups to open only the ports you want users to be able to connect on. Also, use security groups to lock down important ports eg.22 to only a specific set of IPs. You can also use Network ACLS to block undesired traffic. AWS provides more information and suggestions here.
I also recommend you read this Whitepaper.
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
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.