A keyword which is common among shared hosting providers is "unlimited". It is a highly misleading term, not typically not used outside plans which cost more than $10 a month. Unlimited suggests you won't ever need more, so why pay more than a few dollars per month of hosting? The answer is: Unlimited does not mean unrestricted.
In order to make a shared hosting model profitable, hosting providers typically place hundreds or even thousands of accounts onto a single server. Shared resources are only available when one of your many neighbors are not using them, making the performance you do receive sporadic. Even when "full" resources are available, the volume or quality of resources available to you is not clear, and throttling those resources is the norm for those who use their resources too often.
This sections dissects what to look for when viewing "unlimited" plans. The "Performance Transparency" reveals what to look for afterward.
Unlimited bandwidth is meaningless if you don't know how wide your bandwidth is. Think of your bandwidth like a water hose. It's not clear if your bandwidth is a fire hose, a garden hose or just a straw. Further, bragging about the capacity of the facility your website is housed in is also meaningless, since it is unclear how much of that is allocated to you.
On shared servers, the bandwidth is throttled to servers, and often throttled per account, which is then shared with other users. Meaning, the bandwidth you do have must not be in used by one of your neighbors if you expect to get the full benefit.
Unlimited storage is never actually unlimited. The claims are accompanied with asterisks or Terms of Service which state storage space is unlimited for "normal usage." Normal is defined by the amount of space considered adequate for approximately 99% of their customers.
Even if your storage needs are likely to fall within the 99% of customers. Should unlimited then be enough?
Databases are at the core of the most popular content management systems, as well as virtually all applications which exist on the internet. The ability for a hard drive to seek and return information in a timely fashion is at the core of how well a database, and by extension a CMS website, performs.
Websites databases are beginning to rely on SSDs to deliver database information more quickly, but even then actual performance is typically not disclosed (covered more in Performance Transparency section). Further, a single server setup will rely on a single hard drive allocation to return information for the operating system, the application files (PHP), assets (CSS, JS images) as well as the database. Burris Builder facilitates an architecture which separates each drive to their own resources, which helps to ensure information is retrieved from storage as quickly as possible.
Finally, resilience of that storage is never disclosed. How prone is your data to failure. Is your data just one hard drive failure away from being unavailable? Do you have back-ups which are simple to restore should that even occur, or are you helpless until a hosting engineer gets back to you?
Occasionally, you will see references to visits per month attached to the account. These are not capabilities, but limitations. In the same way you only receive a certain number of domains or IP addresses or storage, you are only allowed so many visits before your account reaches a limit and is cut-off by the hosting company.
For visitor capacity, it is not possible to determine service limits of your website without knowledge of the type of traffic, and the type of application you are running. A dynamic website which contains unique information for each visitor will take considerably more resources to deliver than a static "brochure" website which rarely changes information. Resources required to consistently deliver vary from application to application and must be tailored to suit individual needs
Additionally, traffic capacity should be measured in concurrent requests, not visits per month. Traffic to a website is much like any other traffic for businesses, there are peak times which may have several times the simultaneous traffic of "normal" operating hours. It is this simultaneous traffic which challenges a server to deliver. With traffic spread evenly over a period of a month, it is much simpler to exaggerate capacity; but real traffic is rarely spread evenly.
Finally, a website which is still responding is not necessarily responding well. A first byte time of under 200ms is preferred, and a delay of 3 seconds can cause permanent abandonment of your brand.
Limited RAM and Compute
RAM, in perhaps oversimplified and small scale terms, is the core of your web server performance. When an item is cached, it is kept in RAM, which is the fastest form of memory available on a server. You deliver a response the quickest from you web server by storing as much as possible inside of RAM. How much RAM is allocated to you is not specified in shared hosting plans, because it may vary at any given time. Without knowing how much RAM you have, among other resources, you may not adequately assess website performance or traffic capacity threshold.
Compute is fundamentally required in order to turn a request for information into a proper response. Shared hosting plans also do not specify the level of compute resources you have because it is not consistent. You may have compute access if not being used by neighbors.
Shared hosting plans interestingly showcase marketing offers as a bonus to your plan, sometimes pitching it as negating your initial costs because of the value offered. Marketing offers amount to a coupon pack, however, which the companies promoting want you to have. These are advertisements for products, not offers which require your payment for access. Advertising credits for search engines, for instance, are a quick web search away and do not require you sign up with a particular host.
Nealy every website host has a promotional rate for new customers. Rates which are available for the first month or first few months, which then roll over into their "normal" costs. AWS also has a promotional rate, but its decidedly more generous, as and will be explored from a value perspective in the Examining Costs section of this documentation.
VPS vs Cloud
VPS, or Virtual Private Server is a means of separating a single server into several, independent computing resources. It is a well established technology, which is at the core of cloud services, allowing customers to "rent" compute slices of an entire datacenter. While it is technically correct to refer to AWS Ec2 instances as VPS, the nomenclature, as it is commonly marketed, can be misleading. The implementations offered by various hosting companies vary widely. There are no regulations in regard to the terms, but there are distinctive patterns revealed in the industry as a whole, which will be explored here.
When "VPS" is offered as a product option, it often refers to a stepping stone between "shared" and "dedicated" hosting. It fills a price and usually a features gap for the cheapest and most expensive offers. This usually varies significantly from "cloud" services, however in the following ways:
- Services must be ordered monthly with no hourly option.
- By extension of the "monthly" limitation, servers can not be created with captured or custom "images", often arriving with licensed software you may or may not use, and limiting restore and deployment options. If something goes wrong with your server, there are often charges associated with rebuilding, where clouds typically offer this in a few clicks, in a few minutes for free.
- Computing resources such as CPU and RAM are more expensive.
- Limited to the operating system selected. Most VPSs pick the operating system for you.
- May or may not provide "root" access, which gives you complete control over your server.
- None of the advantages provided by AWS.
- None of the infrastructure advantages provided by Burris Builder.
VPS technology has evolved considerably over the years, creating a variety of VPS methods in the process. The VPS methods chosen have a considerable impact on your server's ability to access physical hardware such as networking and compute power. Most companies do not disclose their VPS methods despite its substantial impact an results delivered to the customer.
AWS vs Cloud Competitors
Hosting has changed. Methods of delivering information to your users has been significantly streamlined by cloud technology, but AWS has taken extra steps to make sure that your team can deliver information to those resources efficiently.
There are many cloud competitors, and listing all features of each is outside the scope of this document. Just like comparisons to traditional hosting, however, patterns begin to emerge among the industry. The items listed here are where AWS tends serve either unique features, or more robust versions compared to their competition.
By-the-hour server provisioning and billing is fundamental to the cloud advantage. Although by the hour is common, it is not a universal attribute among cloud providers, despite its importance. Within these providers, resources such as storage and bandwidth are often included at fixed rates. For bandwidth, this makes it unclear if you are paying for bandwidth you are not using and leaves questions as to what happens when you go over your allotted amount.
For storage, aside from the obvious limitation that you may potentially run out of space -or conversely paying for what you don't need- fixing storage to a plan or a server provision substantially lowers flexibility for a number of important workflow and infrastructure needs. Notably the separation of operating system from application files becomes more difficult and can only accomplished by logical partitioning.
Separating the operating system from the application data (html, php, image files, etc), allows simpler, cleaner snapshots and restoration (which also may or may not be available). With AWS, application drives may be easily cloned and/or attached and detached to other server provisions, as needed, to quickly test new developments, rebuild a compromised server or scale resources.
With the ability within AWS to provision any amount of EBS storage you like, and the help of the Burris Builder Admin, you may easily create separate drives for a number of websites, or create a separate volume for dev, stage and live versions of a website, for instance. The size of each drive is designated by you, and you pay only for what you use.
These drives then be assigned their own account permission. Developers may develop an application on a client dedicated drive, which is then transferred to the client server upon completion by simply assigning permissions for the drive to the correct account.
Finally, each EBS volume is redundantly stored in physically separate locations. In many cloud services, a large, high performance storage array is still a single point of failure, even if your data is duplicated among several volumes on that array.
Specialised Compute Services
A web server delivers your website, but an infrastructure delivers your business. There are a number of common actions a compute service will need to take in order to deliver the best quality product to your customers. AWS offers many of these as managed services with pay as you go pricing, giving you access to performance, resilience and ease of use of redundant, dedicated servers, but without the costs of building or provisioning those resources.
These services, covered in more detail in the Understanding AWS Services section, include email services (SMTP) for sending and tracking a high volume of emails, CDN distributions for asset delivery, notification services sent to various resources (email or text message) according to events that you define, redundant load balancers, storage which infinitely and dynamically expands (S3) for sending and much more.
All of these services may be provisioned, or removed, according to events that you define, allowing an automation of every service. Your web server can "talk" to every service available via scripts so your workflow and management costs are reduced along with your infrastructure costs. These scripts may be widely useful tools, already available fo you to implement, or ones you write yourself. This concept, allowed by the AWS API, is known as Infrastructure as Code.
Infrastructure as Code
Compare for yourself
Below are links to popular cloud providers' API pages. These APIs allow you to control and automate services, including scaling, provisioning, configuring and montiroring your infrastrucutre.
A powerful concept which allows the elastic cloud to truly begin reacting to your personal infrastructure needs. Combined with managed services, you may scale only the services you need, when need them and merely be notified when the event took place, if you like, instead of maintaining trained staff to answer these requests; although it does take some knowledge to get it running that way.
While some cloud providers are beginning to provide APIs, competitor implementations are decidedly rudimentary by comparison. Competitor APIs are not as robust, and do not have access to managed services, complicating the automation which needs to take place.
IAM accounts may apply to both your Infrastructure as Code scripts, or to people. If you would like to provide access to a developer, IAM accounts will allow them into your console, but only with permissions which you define. For instance, you may give a developer access to provision resources and purchase reserved instances on your behalf, but not to have access to your account and payment information.
Permissions may be applied to specific resources. For instance, if you create a server and would like to give you clients access to that exact server, you may capture an AMI (Amazon Machine Image) and give access permissions to that AMI specifically to your clients account, so it may provisioned for them in the exact state you left it.
By default, your website cannot be accessed over the Internet; that's intentional. Attached to every AWS compute resources is a firewall which allows you to define who or what is allowed access to any given resource. You create security groups, which define levels of access, which may then be assigned to any resources you create. Most competing cloud resources do not have configurable access to their services, and rely on software installed and individually maintained on the server, or rely on configurations not available to the customer.
Once you lift the veil on "unlimited" resources, measuring what you actually get for your money becomes more clear. But even among cloud competitors who declare resources more clearly, not all resources are created equal.
AWS specifies the class of CPU each instance receives. For instances, as of this writing, T2 instances receive Intel Xeons with turbo boost up to 3.3Ghz. M3 Instances receive Ivy Bridge, C4 receives "Haswell" and so on. Be mindful of what kind of core you are getting, as most companies do not disclose this information.
Further, most "Cores" in VPS situations are rarely yours exclusively, unless specified by the provider (AWS optionally has dedicated tenancy options). Even in an isolated VPS, a neighbor which frequently uses their CPU may be impeding your capacity to use it.
AWS solves this issue with "CPU Credits". You receive a baseline of guaranteed performance with credits which get turned in (automatically) upon the need to burst. A supply of these credits ensures ability to respond with powerful CPU usage when needed, while also ensuring other neighbors are not overusing their fair share.
Higher performance instances in the T2 range come with higher baseline performance, as well as more credits to use.
Many companies list "SSD" as means of offering "high performance" storage, but are often unclear on how much of that performance you receive. Rest assured you are not getting free reign on an entire SSD storage array unless the terms make it clear (and the price will no doubt reflect accordingly).
SSD and large arrays, regardless of how much performance they potentially contain, make no difference to your website if it is being shared amongst too many other people. Your expected performance is, rarely if ever, guaranteed with specific numbers.
For SSD storage, AWS provides a baseline number of IOPS, calculated according to the size, and allows bursting which will substantially exceed that baseline if occasionally needed.
If additional, guaranteed performance is required, AWS offers provisioned IOPS. Along with EBS optimized instances, provisioned IOPS ensures consistent performance, whenever its needed.
Growing in popularity among cloud providers, but still notably absent from traditional hosting, are service health dashboards. AWS posts status updates for each service, with records which go back 30 days. When there is a disruption, status updates are posted as they become available.
Pricing for cloud hosting changes constantly. As of this writing (May 2015), AWS has dropped its prices 43 times. As a result, many pricing comparisons you find across the Internet have become obsolete. It's important to check the date.
Comparisons between AWS and competitors go well beyond price. There are many other issues beyond price to consider when comparing hosting options, but price isn't unimportant, so this section will more directly compare pricing.
AWS offers substantially lower pricing on virtually every compute service by purchasing reservations; commitments for 12 months. While there is debate about what this means for "real costs" in terms of running a website vs other providers, we believe it is a reasonable way to compare costs, as the average website life-cycle is 3-5 years, and other resources such as domains and SSL certificates are claimed annually. AWS also allows customers to sell back reserved Ec2 instances into the market to potentially reclaim some costs of reserved instances, if needed.
AWS also offers reservations for up to 3 years for compute services. This dramatically lowers hourly cost even further, but that length of reservation should be made on a case-by-case basis. In a 3 year time span, the technology may change, new instance types or service may become available, pricing for specific services are likely to fall on their own, and the needs of the business may grow or shrink in that time.
AWS also offers spot pricing. This is a bidding system, which allows you to offer a price for certain instances which take advantage of slow demand to run instances at a cheaper rate. This is primarily for short-term computing needs as the pricing does not last.
Learning and Support
Support is how you learn, grow and understand; support defines your capacity to produce. Suppport is not just a single person answering the phone. The knowledge and tools you need are not contained within a single person's experience or their common problems reference guide. Issues are best solved collectively.
The best support is provided by people with similar experiences. Your ability to connect with others fundamentally shapes the quality of what you do. By consulting the experiences of those who are pursuing similar goals, and leveraging their experience and contributions, you rise further and faster. The activity of a community leaves a searchable trail of learning experience and guides. It is the proverbial giant upon which you stand. A community is an endless and often personal resource of help and development.
Larger communities make it more likely that someone else had the same, specific issue as you. They may have solved the issue, recorded it in a forum and by extension made it searchable by the time you encounter an issue. For problems or questions which the resolutions are not so apparent, AWS has some of the most active forums amongst its competitors. The questions are regularly answered by AWS engineers, or by other community members.
Additionally, the widespread usage of AWS has spilled into surrounding communities, built around answering questions such as ServerFault and StackOverflow. In addition to the links provided here, most questions are a few keystrokes away.
Events and Gatherings
AWS Communities don't just exist online. They're full of real, passionate people. AWS is represented both officially by Amazon and by the communities that build around it. Summits are regularly held by Amazon to introduce or explore concepts and new features, while re:Invent is the centerpoint of new ideas and technologies.
Additionally, many communities hold their own, independent events in locations around the globe. Places like meetup.com will reveal AWS events happening in your area.
Amazon Web Services
Training and Certification
For a more formal, in-depth understanding of AWS, Amazon offers a way official training. Designed to help you understand how to go to the next level and to deliver high performance, reslient infrastructure on with their services.
There are numerous blogs, YouTube channels and
Like every other AWS service, it is pay for what you use and it scales to meet your needs up to the largest businesses on the planet. For priority access to
Additionally, Illumine Digital provides continuous support for all website development built on AWS, as well as infrastructure built with Burris Builder or general help for developers. Contact Us for more information.