The Cloud & AWS (Amazon web services)

For an explanation on the "cloud" see what is cloud

Basics

AWS was created in 2006 and has been the lead cloud provider (as of 2017)

Key bits:

  • You only pay for what you use
  • Your infrastructure can grow and shrink based on needs
  • It offers a  complete cloud platform available for any workload

Its rivals are Azure (Windows), Oracle ,Google Cloud Platform and smaller providers such as Digital Ocean and Linode. Each company offers different advantages/disadvantages & as such each option should be fully investigated before making a choice.

A lot of this page is applicable for these other companies products , the main differentiator with AWS is the range of products available and the complexity which is offered.

Amazon offers a huge range of products which  has approx 19 different products with 100 sub products see https://aws.amazon.com/what-is-aws/ see the products tab.

Its an old screenshot (i have struggled to find anything newer) but look at the speed of inovation

And this shows you the popularity of AWS

An example of some of these products which are on offer:

  • You have access to storage (Amazon Glacier,Amazon S3,Amazon EBS)
  • Low cost compute (Amazon EC2) elastic compute cloud
  • High performance databases (Amazon Redshift,Amazon DynamoDB,Amazon ElastiCache , Amazon RDS)
  • Tools to manage these resouces (Amazon Cloudwatch,AWS IAM, AWS Cloud formation, AWS Elastic Beanstalk)

AWS is used by various large companies such as Netflix (search you tube for Brendan Gregg  or view https://medium.com/netflix-techblog  for more info)   for the top customers see https://www.contino.io/insights/whos-using-aw

You can access AWS via:

  • AWS management console
  • AWS cli
  • DSK (software development kits)
  • API

Traditional setup v Cloud

When i say traditional we mean setting up a server farm yourself typically in a data-center (not using containers but possible using Vm's and shared storage)

Traditional

  • Massive up front costs
  • You need dedicated IT staff to maintain the servers in the Datacenter
  • You need expert knowledge in various areas (i.e networking,data center management, server build and maintenance...)
  • When you have bought it its yours
  • Capacity planning is incremental (adding a new server with 128GB memory and 32 Cores might be overkill v what is needed)
  • Possibility of future growth limitations (how many servers can you fit in a rack?)
  • Potentially wasted resources (depending on if you are using vm/containers )

Cloud

  • Pay as you go pricing models
  • Elastic computing (it can grow as required)
  • Economy of scale (a proportionate saving in costs gained by an increased level of production.)
  • Easy and quick to setup in multiple data centers all over the world
  • Horizontal scaling (horizontal scaling)

+ve

Think back to the old days in a data-center you have a cage you have to build & install a 3 web servers cluster with 2 DB servers and an LDAP server you have to link it up with cabling and switches. You need to regular maintain the servers i.e swapping hard drives when they break.

How do you do backups?

How to you scale for events such as Black Friday/Cyber Monday?

... you get the idea, lets see what benefits are on offer....

Cost:

  • Cost-effectiveness (v own hardware)
  • No upfront investment needed
  • Minimum expense at startup (note costs can spiral quickly)
  • Can be low start up costs (good for startups) no need to hire specialist IT teams i.e backups,installations, swapping hard drives
  • Payments only to amazon not 1 for hosting , 1 for dns
  • You don't pay if server is turned off

flexibility:

  • No long term commitment needed
  • Allows you to stop and start services very quickly
  • Allows startups to focus on their company rather than infrastructure.
  • If you have 1 rack only you might be limited on how many servers fit in the rack (AWS allows potentially exponential amount of servers)
  • Scalability/elasticity (good for companies such as Netflix for things like black Friday)
  • No migration needed if you need to scale out  (v traditional Vertical scaling)
  • Just feed it money to get extra resources ,
  • Good if you are not sure of future growth
  • Lots of products to build your own cloud setup, allows you to mix and match to create infrastructure (very customizable)

 

-Ve

Costs:

  • Costs add up (when it says 8 cents per hour, hard to calculate yearly usage)
  • You get charged for different things i.e so many products (small companies need to think carefully) example storage (10 cents a Gig adds up quickley if you are storing pictures/audio) so its  worth thinking about compressing files if data is unneeded and storage costs need to be kept under control

Usability:

Infrastructure/Migration:

  • You are building infrastructure (you are in effect building a rack of virtual servers think networking,firewalls....) you need to understand what you are trying to build
  • Hard to migrate to another cloud provider as they offer such a range of (mostly priority) products (risk of rewriting scripts) = locked in
  • A migration to AWS is easy but for full benefits you need to re imagine/rebuild your entire architecture

useful links

basic intro https://www.youtube.com/watch?v=mZ5H8sn_2ZI
https://aws.amazon.com/free/
https://aws.amazon.com/pricing/services/
https://awstcocalculator.com/
Aws Tutorial
AWS (Amazon Web Services) Introduction