First Stop on the hybrid cloud train. AWS Storage
IaaS is the provision of virtual servers and storage that organizations use on a pay-as-you-go basis. Especially with AWS, this is the infrastructure that all of AWS can provide. This is the most powerful type of cloud in that virtually any application and any configuration that is fit for the internet can be mapped to this type of service, but is also the most technically challenging to exploit. Amazon’s Elastic Compute Cloud (EC2) and Simple Storage Service (S3) are examples of IaaS, as are our own Miniserver VM® cloud compute and Memstore™ cloud storage services.
In practice, cloud suppliers often provide additional services alongside IaaS offerings, so the boundary between IaaS and PaaS can become blurred. However in its purest form compute IaaS can be considered as a bunch of unmanaged virtual machines (VMs) for which you provide the operating system image, that can be scaled up and down (by spinning up and tearing down VMs) according to your application’s needs in near-real time (ie. within minutes). IaaS data storage is more simple, working like a giant disk drive where you only get billed for what you are using, usually on an hour-by-hour basis.
A virtual server or virtual machine (VM), is just like a normal server but is smaller in terms of CPU, RAM and disk than a whole physical server, and several sit on each physical host server. We typically put about 15 VMs on each host server, for example. VMs have the advantage that they can be created and destroyed effectively in real-time in dynamic response to demand.
AWS is IaaS that offers a variety of services for the end user for the cloud infrastructure, so they provide services regarding computation, storage, networking, database as well as DNS services. They don’t just offer one set solution or product but a series of products that allow the user to build unique cloud infrastructures through mix and matching services. Not just virtual servers or web application hosting but a variety of components that allow the user to build the necessary solutions. Regarding storage, you can think of just a place to drop information but they’re completely different from like DropBox, OneDrive, or GoogleDrive. The difference is that they’re more SaaS (software) but AWS provides different options of storage blocks, virtual hard drives, content delivery networks (CDNs), and Amazon Glacier (regarding data backups, low administration but necessary for low cost storage due to low availability) along with a variety of other storage infrastructure options.
Straight from the AWS documentation they mention computational and networking services to help meet the needs of user applications. It allows the ability to provision virtual servers, setup firewalls, provision networking and a variety of other services to scale infrastructure to meet increasing demand. With the networking services, there also are those computational services with query processing and storage accessibility across a wide range of applications. With that, it allows the user to spin up EC2 instances, which are virtual servers, and work with a variety of services with load balancing, auto scaling, executing code for hosted software instances.
Location. Location. Location.
Something to also consider with IaaS is how far are the data centers from you as well as the people accessing the services. Because they’ll be relying on the physical hardware and solutions of AWS, it doesn’t matter how well it works for me but it’s important to consider the users because they’ll be the ones that will be hammering the service. Where are the data centers in relation to the developer and organization? Where are the data centers in relation to the expected end-user?
Difference between Linode/Digital Ocean?
At first glance they might seem similar, however AWS, which is IaaS, is not the same as those other services because they can provide many more services that can help create an infrastructure. Linode/Digital Ocean are Virtual Private Servers which is really only one aspect to AWS/IaaS. Of course, it’ll depend on the purpose of the service being developed and whether or not they need the expansive complexity that AWS provides. Linode and Digital Ocean (which I really like) really provide single server rack spaces for the user and can be great for simple websites or even the most fleshed out WordPress, but not necessarily for social media tools or large scale e-commerce purposes which would require a larger scale, AWS.
Benefits of AWS
It’s highly scalable and it can have the necessary resources on hand to scale as needed. When infrastructures have to be built out, it can be dealt with more easily. It’s important to consider growth of infrastructure and the possibility of increased demand on the service. Also, because it is done in the cloud the total cost of ownership and price points are variable and depends on what services are utilized, almost like a “pay as you go”. In addition, with AWS you can avoid having to invest huge costs into physical infrastructure of data centers and custom services instead of building out an AWS infrastructure. If you spend a little bit more to test if the additional services are nice and good and it doesn’t work out? Then roll back, pull the payment and go back to services that were working out well. One thing to consider though is that costs can add up, despite low initial costs.
Image Source – Charlie Hope
Cons of AWS
HELL. AWS is a monster, I can honestly say that the learning curve is steep and even now as I’m writing this, I’m not too sure specifically what it really does provide. I’ve played around with it ever since I got some credit and played around with spinning up some EC2 instances but it’s still a monster that I have yet to really discover all the way. It’s like finding one tentacle of the kraken and thinking that’s the final boss and not realizing the magnitude of the impending danger.
There was an AWS convention in Chicago just a couple of months ago and I really wish I had gone but when I was going through all of the speaker topics I had absolutely no idea what was going on despite playing around with AWS for a couple of months by then. I watched a couple of master class introduction videos but I’m still low on the totem pole on realizing the true potential of AWS.
Because of the variety of services, costs can add up. Not much to say, but it’s something to consider with all of pricing plans, especially with compute, storage, bandwidth, interaction pricing.
Can it hold it? How does it hold it?
So I want to dig a little deeper on probably one of the most common features that I would be using, the storage options both with data storage, network shares, and even storing the VMs to spin up with the EC2 instances.
The above is an AWS White Paper regarding the different storage options and although they devote a couple of pages for each of the storage option, all I will devote is a single bullet point… or two. This is meant for new users to read through and just get a feel of all of the different storage options that are available and whether or not AWS could provide and satisfy those needs.
- Amazon Simple Storage Service (Amazon S3)
- Storage of the internet, highly scalable, reliable and low latency. Meant to provide storage for simple web services or from the EC2 instances. Secured by encryption and multiple access control mechanisms, the S3 option allows for concurrent read or write access from many clients and application threads. One of the most common use is for the storage and distribution of static web content and media. S3’s can be used as an origin store for content delivery network (CDN like Amazon CloudFront)
- Aside from static websites, can provide a highly available and highly scalable solution for websites with static content but heavy on media content even in data intensive and spiky bandwidth situations. S3 can also be used for computational and large-scale analytics for financial transactions, clickstream analytics and a variety of other computational nodes without being constrained by a single connection.
- Amazon Glacier
- Low cost storage for secure, durable, and flexible options regarding data backups and archives. Meant for low access storage, it enables the user to offload administrative burdens from capacity planning, hardware provisioning, data replication etc. Because of the low access purpose, Glacier is meant for cases like enterprise information, backups, media assets, digital preservation, and magnetic tape replacements.
- Amazon Elastic Block Store (Amazon EBS)
- Volumes with block level storage for use with EC2 instances (spinning up virtual machines). Considered as the proprietary off-instance network-attached storage, it persists independently from an EC2 instance, however if it is attached to an instance the EBS volume acts like a physical hard drive that can boot more instances. However it’s important to consider that only one EBS volume can be attached to one EC2 instance at any time, but that doesn’t mean you cannot attach multiple EBS volumes to a single EC2 instance, as long as that one volume is not used in more than one concurrent connection.
- Can also be used to create point-in-time snapshots of volumes that can be used to refresh a new starting point and o protect data. These snapshots can then be used to spin up multiple EC2 instances.
- Amazon Elastic Computer Cloud (Amazon EC2)
- The meat of the storage options, but only partly because these are considered “ephemeral drives” due to temporary block level storage due them being instances that are spun up for use. Although these have their own preconfigured and pre-attached block of disk storage, they can also utilize Amazon EBS for more permanent storage as well. EC2 instances can be broken up into a couple of different use cases where the HI1 instance utilizes a very fast solid-state drive backed instance storage (SSD) that can be used for high storage density, low storage cost, and high input/output performance as well.
- Local instance store volumes meant for temporary storage of information such as buffers, caches, and scraped data that can be replicated across a fleet of instances. As I mentioned, the EBS volumes should be used for more permanent data storage and allow the preconfigured and innate disk storage be used for quick access performance determining processes because these cannot be detached or attached to another instance, so they should really only contain specific data.
- Amazon Import/Export
- With all of these storage options, AWS also provides an Import/Export tool that can be used to accelerate moving large amounts of data into and out of AWS using portable storage devices. Because the data uses Amazon’s internal network, the speeds are much faster and bypass the local user’s internet even recording faster speeds. Meant to import and export data in and out of AWS storage such as initial data uploads, content distributions, migration to S3 or Glacier for off-site backup and archival storage or quick retrieval from those storage options.
- Amazon CloudFront
- The proprietary content delivery network (CDN) allows streaming content available from a global network of edge locations instead of from a localized home server. Best stated by the white paper, “When a visitor requests a file from your website, he or she is invisibly redirected to a copy of the file at the nearest edge location, which results in faster download times than if the visitor had accessed the content from a data center farther away. Amazon CloudFront caches content at edge locations for a period of time that you specify.”
Overall! AWS is something alongside Salesforce that I’ve been learning and I’m going to continue to learn. I see its merits and I think that there is great potential in doing so especially with all of the possibilities and potential that it can provide. I know that there are a variety of services such as VMWare VCloud and Microsoft Azure but I would rather not get locked into anything TOO vendor specific. Although I realize that AWS is a vendor itself but it isn’t specific with Microsoft Tools nor does it get paywalled like it is with VMWare. As with anything, I’ll eventually try and learn them all but I just see AWS as the nicest and first starting point!