Compare site traffic to Dedicated machine time usage - web-hosting

If I have a website, hosted with a standard hosting company, and I would like to move it to a Dedicated machine, maybe EC2, is there a way to compare my current traffic to usage of a cloud machine?
Hosting companies gives you plan measured in Bandwith/Space while EC2 in usage time.
So I'm looking for a way to predict machine usage time based on my current traffic data for costs evaluation.
Thanx!

I'm not sure you're understanding usage time correctly. For your website to exist on EC2, you'll need to create one or more instances depending on the architecture you use. This is the same as a dedicated hosting setup elsewhere except with cloud instances.
The difference lies with billing. Where a traditional hosting company will charge you monthly, EC2 charges you per instance hour, or every hour you have an instance running. Therefore, for hosting a website, you'll have the server running 24/7 which will equate to roughly 720 hrs a month charged at a few cents per hour.
The key thing to work out is how many/what size instances you'll need to run your site at the equivalent performance you're seeing now, and that's only something you'll figure out with testing.

Related

AWS EC2 pay per hour with 100% availability

I want to run an server for an application I have.
I'm a complete beginner with AWS, so bear with me.
There will be about 50 users (all from the same time zone) that will be accessing the server and I would like to have near 100% availability.
The application I have requires 2 processors and 2GB ram.
I could pay for a machine 24/7 or even only 18 hours a day, assuming I turn it off at night, but I there will be some days where the server is not used at all.
I was wondering if the following is possible: when amazon detects that someone is requesting something from my server, it turns it on in real time, and then forwards the request to my server. After say 5 minutes of no activity, it will turn my server off. This way I can only pay for hours when there is traffic.
Is this possible?
How have people solved similar problems?
No this isn't possible. There is nothing built into AWS to detect traffic and start an EC2 server like you suggest. Plus the startup time on an EC2 server is at least a couple minutes, so those first incoming requests would have to wait a really long time.
You might want to look into running multiple small servers instead of a single larger server. AWS does have the ability to balance the load across multiple servers and add/remove servers from the pool based on traffic. You could have as few as one server running when there is no traffic, and have more servers automatically created as load increases. Look into the AWS Elastic Beanstalk service for this.
If you want to run a truly "serverless" environment where you only pay for compute cycles in milliseconds, instead of servers by the hour, you could look into using AWS Lambda. If you can architect your system to run on Lambda you are almost guaranteed to save costs, but it can be a real challenge to convert an existing system to this sort of architecture.
If you want to look outside AWS you might find something more along the lines of what you describe with Google App Engine. Heroku's free tier also works similarly to your description, but as soon as you outgrow the free tier you have to upgrade to always-running instances.

Dedicated Servers versus Amazon EC2

What are the pros and cons of using dedicated servers versus Aamzon EC2 for hosting a high traffic website - that has about 2 million visitors and 5 million page views a month. The content is mostly dynamic and served from a database. Does anyone has any experience of the costs and performance for such a setup.
Amazon EC2 is going to be much more cost-effective versus dedicated servers from my experience. Should you experience a sudden rise in the volume of traffic to your site all you need to do is shell out some extra $$ to Amazon and voila your site can handle the traffic (assuming there are no coding bottlenecks). Unless you have a truly massive website (ie: Facebook) the benefits of hosting on Amazon EC2 far outweigh the risks.
One of the only risks that you take with hosting on EC2 was showcased a few months ago when the whole cloud went down, taking Foursquare, Quorra, Reddit, and other multi-million user base sites down along with it.
From a user experience I believe interaction with the cloud hosting provider is pretty much the same as interacting with a dedicated server, so the only real concern to take into account would be cost-effectiveness.
My own experience tells me that at least in this part of the world, New Zealand, where we don't yet have a local amazon server farm, Amazon provides poor performance and is one of the most expensive options for hosting busy websites. I placed some background on my blog that goes through my own experiences. http://www.printnet.co.nz/category/hosting/

Where is the official documentation for Amazon EC2 rebooting instances for hardware changes?

I understand that the Amazon EC2 SLA says that EC2 guarantees a 99.95% uptime.
I've read in many places that systems built using EC2 should be designed to cope with individual instances being restarted e.g. ec2 rebooted my instance.
Where is the official Amazon documentation to say that instances may be restarted?
I do not believe Amazon publishes any documentation on rebooting EC2 instances for hardware changes. Instead, they will send customers a notice if there is going to be scheduled maintenance performed on the system. However, I think the issue here is more a matter of servers crashing unexpectedly. That, of course, they cannot announce beforehand. Also, don't forget that they calculate their uptime based upon 5 minute increments so you may have downtime that isn't counted towards their SLA because it was less than the five minutes and didn't get noticed.
Here is a link to the official Amazon EC2 SLA (I'm sure you've seen it). They don't give any indication that maintenance ever affects systems running in production:
http://aws.amazon.com/ec2-sla/
You can contrast this with Amazon RDS, which specifically states what maintenance is and when it occurs:
http://aws.amazon.com/rds/faqs/#12
I would imagine that they expect to never have downtime because of hardware upgrades. Since everything is virtual, they can move live instances to new hardware without taking them down.

Amazon EC2 as web server? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
I have thought a lot recently about the different hosting types that are available out there. We can get pretty decent latency (average) from an EC2 instance in Europe (we're situated in Sweden) and the cost is pretty good. Obviously, the possibility of scaling up and down instances is amazing for us that's in a really expansive phase right now.
From a logical perspective, I also believe that Amazon probably can provide better availability and stability than most hosting companies on the market. Probably it will also outweigh the need of having a phone number to dial when we wonder anything and force us to google the things by ourselves :)
So, what should we be concerned about if we were about to run our web server on EC2? What are the pro's and cons?
To clarify, we will run a pretty standard LAMP configuration with memcached added probably.
Thanks
So, what should we be concerned about if we were about to run our web server on EC2? What are the pro's and cons?
The pros and cons of EC2 are somewhat dependent on your business. Below is a list of issues that I believe affect large organizations:
Separation of duties Your existing company probably has separate networking and server operations teams. With EC2 it may be difficult to separate these concerns. ie. The guy defining your Security Groups (firewall) is probably the same person who can spin up servers.
Home access to your servers Corporate environments are usually administered on-premise or through a Virtual Private Network (VPN) with two-factor authentication. Administrators with access to your EC2 control panel can likely make changes to your environment from home. Note further that your EC2 access keys/accounts may remain available to people who leave or get fired from your company, making home access an even bigger problem...
Difficulty in validating security Some security controls may inadvertently become weak. Within your premises you can be 99% certain that all servers are behind a firewall that restricts any admin access from outside your premises. When you're in the cloud it's a lot more difficult to ensure such controls are in place for all your systems.
Appliances and specialized tools do not go in the cloud Specialized tools cannot go into the cloud. This may impact your security posture. For example, you may have some sort of network intrusion detection appliances sitting in front of on-premise servers, and you will not be able to move these into the cloud.
Legislation and Regulations I am not sure about regulations in your country, but you should be aware of cross-border issues. For example, running European systems on American EC2 soil may open your up to Patriot Act regulations. If you're dealing with credit card numbers or personally identifiable information then you may also have various issues to deal with if infrastructure is outside of your organization.
Organizational processes Who has access to EC2 and what can they do? Can someone spin up an Extra Large machine and install their own software? (Side note: Our company http://LabSlice.com actually adds policies to stop this from happening). How do you backup and restore data? Will you start replicating processes within your company simply because you've got a separate cloud infrastructure?
Auditing challenges Any auditing activities that you normally undertake may be complicated if data is in the cloud. A good example is PCI -- Can you actually always prove data is within your control if it's hosted outside of your environment somewhere in the ether?
Public/private connectivity is a challenge Do you ever need to mix data between your public and private environments? It can become a challenge to send data between these two environments, and to do so securely.
Monitoring and logging You will likely have central systems monitoring your internal environment and collecting logs from your servers. Will you be able to achieve the monitoring and log collection activities if you run servers off-premise?
Penetration testing Some companies run periodic penetration testing activities directly on public infrastructure. I may be mistaken, but I think that running pen testing against Amazon infrastructure is against their contract (which make sense, as they would only see public hacking activity against infrastructure they own).
I believe that EC2 is definitely a good idea for small/medium businesses. They are rarely encumbered by the above issues, and usually Amazon can offer better services than an SMB could achieve themselves. For large organizations EC2 can obviously raise some concerns and issues that are not easily dealt with.
Simon # http://blog.LabSlice.com
The main negative is that you are fully responsible for ALL server administration. Such as : Security patches, Firewall, Backup, server configuration and optimization.
Amazon will not provide you with any OS or higher level support.
If you would be FULLY comfortable running your own hardware then it can be a great cost savings.
i work in a company and we are hosting with amazon ec2, we are running one high cpu instance and two small instances.
i won't say amazon ec2 is good or bad but just will give you a list of experiences of time
reliability: bad. they have a lot of outages. only segments mostly but yeah...
cost: expensive. its cloud computing and not server hosting! a friend works in a company and they do complex calculations that every day have to be finished at a certain time sharp and the calculation time depends on the amount of data they get... they run some servers themselves and if it gets scarce, they kick in a bunch of ec2's.
thats the perfect use case but if you run a server 24/7 anways, you are better of with a dedicated rootserver
a dedicated root server will give you as well better performance. e.g. disk reads will be faster as it has a local disk!
traffic is expensive too
support: good and fast and flexible, thats definately very ok.
we had a big launch of a product and had a lot of press stuff going on and there were problems with the reverse dns for email sending. the amazon guys got them set up all ripe conform and nice in not time.
amazon s3 hosting service is nice too, if you need it
in europe i would suggest going for a german hosting provider, they have very good connectivity as well.
for example here:
http://www.hetzner.de/de/hosting/produkte_rootserver/eq4/
http://www.ovh.de/produkte/superplan_mini.xml
http://www.server4you.de/root-server/server-details.php?products=0
http://www.hosteurope.de/produkt/Dedicated-Server-Linux-L
http://www.klein-edv.de/rootserver.php
i have hosted with all of them and made good experiences. the best was definately hosteurope, but they are a bit more expensive.
i ran a CDN and had like 40 servers for two years there and never experienced ANY outage on ANY of them.
amazon had 3 outages in the last two months on our segments.
One minus that forced me to move away from Amazon EC2:
spamhaus.org lists whole Amazon EC2 block on the Policy Block List (PBL)
This means that all mail servers using spamhaus.org will report "blocked using zen.dnsbl" in your /var/log/mail.info when sending email.
The server I run uses email to register and reset passwords for users; this does not work any more.
Read more about it at Spamhaus: http://www.spamhaus.org/pbl/query/PBL361340
Summary: Need to send email? Do not use Amazon EC2.
The other con no one has mentioned:
With a stock EC2 server, if an instance goes down, it "goes away." Any information on the local disk is gone, and gone forever. You have the added responsibility of ensuring that any information you want to survive a server restart is persisted off of the EC2 instance (into S3, RDS, EBS, or some other off-server service).
I haven't tried Amazon EC2 in production, but I understand the appeal of it. My main issue with EC2 is that while it does provide a great and affordable way to move all the blinking lights in your server room to the cloud, they don't provide you with a higher level architecture to scale your application as demand increases. That is all left to you to figure out on your own.
This is not an issue for more experienced shops that can maintain all the needed infrastructure by themselves, but I think smaller shops are better served by something more along the lines of Microsoft's Azure or Google's AppEngine: Platforms that enforce constraints on your architecture in return for one-click scalability when you need it.
And I think the importance of quality support cannot be underestimated. Look at the BitBucket blog. It seems that for a while there every other post was about the downtime they had and the long hours it took for Amazon to get back to them with a resolution to their issues.
Compare that to Github, which uses the Rackspace cloud hosting service. I don't use Github, but I understand that they also have their share of downtime. Yet it doesn't seem that any of that downtime is attributed to Rackspace's slow customer support.
Two big pluses come to mind:
1) Cost - With Amazon EC2 you only pay for what you use and the prices are hard to beat. Being able to scale up quickly to meet demands and then later scale down and "return" the unneeded capacity is a huge win depending on your needs / use case.
2) Integration with other Amazon web services - this advantage is often overlooked. Having integration with Amazon SimpleDB or Amazon Relational Data Store means that your data can live separate from the computing power that EC2 provides. This is a huge win that sets EC2 apart from others.
Amazon cloud monitoring service and support is charged extra - the first one is quite useful and you should consider that and the second one too if your app is mission critical.

Enough bandwidth to support

I have a client that is paying $1500 per month for hosting of 1 website (1 domain name, email is hosted elsewhere). The website is pretty low traffic. Like, 100 unique visitors a week. The only catch (and why it is so expensive) is that their database is 15 GB, and is replicated from the hosting company to inside my small companies office.
Inside the office, there is a desktop application that hits the internal database quite a bit. From the website, some data is entered into THAT version of the database. Replication keeps both databases in synch on a schedule of every 5 minutes.
My client has a T1 that runs into their office. I want to knock out the hosting provider altogether, host their website from a server they already have (more than capable of handling this website), and dump the replication altogether. This would save them $1500 per month, and for a company of 5, it would really make a difference to them.
Assuming I already have a backup strategy in place (way to move a copy of the DB offsite every day), what are the problems with this?
Support? they can reboot their server as easily as the hosting provider can.
What if server goes down for good? There is a duplicate that I can bring up in a couple of hours, and that is all the level of service they really require.
What am I missing here? I want to save them money, but I don't want to screw them over...
EDIT: Some of the answers and comments make it clear that I myself wasn't clear. My client (company A, not a hosting provider) is paying company B to host their website. The website has a database (MS SQL Server 2000) that is 15 GB. That SQL Server DB is being replicated back to a server # company A.
Company B is charging Company A $1500 per month for this service.
Company A already has a T1 for connectivity to the internet. They are located inside of a run of the mill business park.
I am proposing doing away with any outside hosting, getting a DNS provider to point the website to Company A's static IP and hosting the website on a server inside Company A. Then there would be no need for any replication at all, and they wouldn't be paying company B $1500 per month.
I hope that explains it. I'm going to re-read and comment on all the current answers.
Really, any advice is very appreciated.
Sounds to me like your only risk in moving the server in-house is if your T1 goes down. If you have a backup strategy in place for that, go for it.
The other option is to co-loc your own server with your own SQL Server licence on it. Hosting companies charge a lot for hosting SQL Server databases because they have to pay per-CPU licencing for it. So they build up a powerful server to serve lots of client's databases, but then SQL Server offers no way to do useage accounting so they only way they can bill/screw you is on database size.
Sounds like the traffic is low enough on your site you can get a dual core server, a 1 CPU licence of SQL Server for a one-off cost of a few thousand dollars and then you're only paying the monthly co-loc price.
A hosting provider can monitor the server 24x7. What if the server crashes at 8 pm? I the people at the small company are not working around the clock?
Depends on the service this DB is providing. What are the requirements to its uptime?
Database replication isn;t that expensive for bandwidth - well, assuming you're not doing a hotcopy of the entire DB files across the link that is.
Check out log shipping, or any of the supported replication options that will replicate the DB using minimal bandwidth. (you never said what the DB was, so I can't comment further there)
I would move to the new server and keep replication. At the very least, if you're really worried about data loss, then get another server in the same facility and copy across to that one - even if you copy 15Gb every 5 minutes, it'll be using non-chargeable bandwidth without even going outside the switch they're connected to.

Resources