AWS Services

This discussion describes the some of the core AWS Services. This does not cover every AWS service, just the common areas that are currently used. This does not preclude the use of other AWS services, it is just a starting point.

Introduction

Before jumping into these services, a bit of backstory. These are terms or items that need to be covered in order to understand these services.

The Cloud

What is the cloud? A simple definition is a service that you rent on someone else's computer. This service can be a paid such as Salesforce and AWS, or free services such as Google Docs and personal backup storage. However, services are typically categorized by what they do. Infrastructure as a Service describes entities that provide infrastructure in their cloud platform. Examples of this is AWS, Microsoft Azure, and Google Cloud Platform. Entities can also provide Software as a Service, examples of this are Google Docs, Salesforce, and Slack.

How did we get to the cloud?

  • Large single Operating Servers had to be purchased for computing resources
    • File Servers
    • Application Servers
    • Database Servers
  • Virtualization
  • Cloud Computing
Infrastructure as a Service
Software as a Service

Server vs. Serverless

The Serverless architecture is a model that removes the operational overhead from deploying applications and services. With the Serverless architecture, an entity takes on the responsibility of operating and maintaining the server. This lowers the Total Cost of Ownership for the service or application. In contrast Server based architectures should be used if there is a legacy application that cannot be moved to the Serverless architecture, or you need more control over your computing platform.


Scaling

Scaling allows organizations to add more resources to a service. This increase can be an addition or subtraction of number of resources (Horizontal Scaling) or increasing or decreasing the size of a resource (Vertical Scaling).

An example of this is an EC2 t2.micro server that has 1GiB of Memory and 1vCPU. If you need more computing power you can go from a single instance to two t2 instances. This is Horizontal Scaling. You can also increase the instance size. Increase from a t2.micro to a t2.small (2GiB of Memory and 1vCPU), this is Vertical Scaling.

Horizontal Scaling
Vertical Scaling

Regions

Regions are geographical locations, in which organizations place their AWS resources. Availability Zones are distinct data centers that are located within a Region. Availability Zones dedicated pipelines to communicate other Availability Zones within the Region. Some AWS services replicate data between Availability Zones to increase availability of the service.

  • Oregon 4
  • Northern California 3
  • AWS GovCloud(US-West) 3
  • Ohio 3
  • AWS GovCloud(US-East) 3
  • Northern Virginia 6
  • Canada Central 2

S3

S3 is a highly available file storage service in AWS. All files are stored in buckets. Users are granted permission to access each bucket. Buckets can be publicly accessible to all users. Buckets can be used by other AWS services. For example, snapshots of EC2 instances are stored in S3. Buckets can be used to host static websites (like this).

This website is an example of hosting a static website from an AWS Bucket.

Current Use Case: CIS Big Data Courses use S3 for Storing files for EMR.

EC2

EC2 is an AWS service that provides compute capacity for its users. Typically, it is used as Virtualized Server replacement. In addition, EC2 instances can be used as computing resources for other AWS resources. EC2 instances are highly scalable and have a variety of different configurations. Currently EC2 instances use Windows Server (2012-2019) and Linux Operating Systems.

Current Use Case: The CIS department has a networking class that uses EC2 instances.

EC2 Operating Systems

RDS

RDS is a managed Relational Database System service in AWS. It is highly scalable and available. AWS also offers its own specialized RDS engine called Aurora, which is a MySQL and Postgres compatible database engine that offers higher performance. Currently AWS provides the following database engines:

  • AWS Aurora
  • Postgres
  • MySQL
  • MariaDB
  • Oracle
  • MSSQL

Current Use Case: Wordpress sites use a MySQL RDS database instance.

RDS Database Engines

Workspaces

Workspaces is a Virtualized Desktop service in AWS. Workspaces can be offered using both Windows and Linux Operating Systems. Workspaces can be setup for end users and accessed via a client that can be installed on various platforms such as:

  • Windows
  • iPad
  • Mac OS
  • Android Tablet
  • Chromebook
  • Fire Tablet
  • Web Access
  • Linux

Current Use Case: Cognizant program uses Workspaces to access Microsoft Visio and Microsoft Project.

Workspaces Operating Systems

Lambda

AWS Lambda is a Serverless service for executing application code. Lambda an be used in conjunction with AWS API gateway or it can be setup to be triggered via an event (such as upload of a file to S3 bucket). Lambda can be run using the following programming languages:

  • Java
  • Go
  • NodeJs
  • C#
  • Powershell
  • Python
  • Ruby

Current Use Case: Lambda function written in Python that logs into the W. P. Carey website retrieves RFI submissions and writes to MSSQL database.

Lambda Languages