Blake Howe
10 min readApr 22, 2019

SIMPLE GUIDE TO AMAZON SERVICES

I love Amazon services. The problem really is the “dizzying array” they offer and the frequency which they come out. Here are some simple explanations of some of the more popular services this. Feel free to comment with anything you think is missing, this list is by no means complete.

If you like this post, please follow me on the web https://buildingbettersoftware.io/contact/

EC2

These should have been called “Amazon VPS”. They are used to host sites similar to any of the popular virtual servers you can get. (Linode, DigitalOcean or Rackspace). They are simple to setup and work hand in hand with tons freely available AMI’s (Amazon Machine Images). There are several that run CentOS our favorite. One interesting thing to note is that the T2 instances are “burstable” they are designed as general purpose servers that dont always use full capacity. Amazon introduced CPU Credits to track this unused time. Every minute of the day, an instance adds credits. Each instance also has a baseline CPU level: 10% for t2.micro, 20% for t2.small, and 20% for each of 2 cores for t2.medium. The instance will always have this baseline capability. But when it requires more CPU, it simply uses some of its CPU credits. This works great for web servers, that for the most part can idle. You can monitor your “burst balance” here:

https://aws.amazon.com/blogs/aws/new-burst-balance-metric-for-ec2s-general-purpose-ssd-gp2-volumes/

Link to how to search for AMI:

Link to Docs:

LIGHTSAIL

Amazon Lightsail is a simple cloud website hosting framework based on the Amazon Web Services (AWS) platform. While most AWS services are aimed at the most demanding business users, Lightsail is much more straightforward and simple to use. It comes with a virtual machine, SSD-based storage, data transfer, DNS management, and a static IP all rolled into a simple interface similar to services like digital ocean. They should have called it “Droplets for Dummies”.

Link to Docs

https://docs.aws.amazon.com/lightsail/index.html

Lightsail scalability options

First read this that examples the different type of scalability options available to you.

https://buildingbettersoftware.io/scaling-your-lightsail-servers/

Load Balancer

https://aws.amazon.com/lightsail/features/load-balancing/

Shared Storage

https://aws.amazon.com/lightsail/features/highly-available-storage/

Managed Database

https://aws.amazon.com/blogs/aws/new-managed-databases-for-amazon-lightsail/

S3

Should have been called “Amazon Unlimited FTP Server”. This service is used to store images, assets, backups, storage shares, and can even host static websites. I keep lots of static assets here, but or long term storage we use glacier storage class which takes longer to retrieve but is extremely cheap. They recently gave you an option for expedited retrieval if you need your data quickly. One thing to watch out here for Amazon made it easy to shoot yourself in the foot and set a bucket to “Public” and expose its contents to the web. One of my favorite places to demonstrate this is https://buckets.grayhatwarfare.com/. Here you can search public buckets and no telling what you might find.

You can read more about storage classes for S3 here.

Glacier Faq

https://aws.amazon.com/glacier/faqs/

Link to Storage Classes for S3:

http://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.htm

Link to Docs:

RDS

Should have been called “Amazon SQL”. This is database that your site uses on the backend. Although lots of people still like to run a dedicated instance for their database because its cheaper. RDS, is a great choice if you want hands off, great incremental backups, and easy scalability.

RDS offers several different database engines depending on your need. Amazon Aurora, MariaDB, Oracle, Microsoft Sql Server, or PostgreSQL

Aurora is the next stage in Amazon’s hosted DB services. Its fully compatible with MYSQL and they took many of the things learned from RDS for Mysql and applied them here. Most of the benchmarks I see on the web put it significantly faster than RDS for Mysql, but it comes at about a 20% price increase. The other engine types are pretty self-explanatory.

Compared to running your own instances (if you have the expertise) these hosted services are expensive.

Link to Docs:

DYNAMODB

DynamoDB should have been called “Mongo Made Easy”. There is o more setup and configuration hell. Security for DynamoDB is handled through IAM so everything has to be explicitly granted. Its. is a non-relational (NOSQL)database hat supports key-value and document data structures. Its the Amazon competitor for database like Reddis and MongoDB. The big advantage is its full managed and built for scalability.

Link to Docs:

AMAZON COGNITO

Amazon Cognito should have been called gives “Authentication Simplified” it gives users a way to log into it and also control their own profiles similar to Active Directory. The two main components are user pools and identity pools. User pools are directories that provide sign-up and sign-in options for your app users. Identity pools enable you to grant your users access to other AWS services.

With Amazon Cognito, you can:

  • Create a signup and login module.
  • Allow users to log in with social media and Amazon.
  • Enable two-factor authentication for greater security at login.
  • Define roles and access rules for users.

Link to Docs

SES

Should have been called “Amazon Transactional Email”. You can use this to
Send one-off emails like password resets, notifications, etc. You could use it to send a newsletter , but that’s not a great idea as its “transactional email”. It’s like SendGrid, Mandrill, Postmark. We tend to use it on sites we host via SMTP. It keeps us from having to run a mail server.

Link to Docs:

CLOUDFRONT

Should have been called “Amazon CDN” . You can use this to
Make your websites load faster by spreading out static file delivery to be closer to where your users are. It’s like MaxCDN, Akamai. its a great choice for edge delivery.

Link to Docs:

ROUTE 53

Amazon Route 53 is a highly available and scalable Domain Name System (DNS) web service. Route 53 does 3 main things.

Domain Registration
Routing
Performing Health checks

It is designed to propagate updates you make to your DNS records to its world-wide network of authoritative DNS servers within 60 seconds under normal conditions. The Route 53 name came from the port used and some vague reference to the “Route 66 highway”. It should have been called simply Amazon DNS.

Link to Docs

https://docs.aws.amazon.com/route53/index.html

ELB

Elastic Load Balancing should have been called “Scalability Made Easy”. In the past you needed complicated software or hardware to distribute traffic across multiple servers to increase capacity and reliability.

Link to Docs:

CLOUDWATCH

Cloud watch should have been called “Simple Server Monitor” it can be compared too something like New Relic and other server monitoring tools. It monitors AWS cloud resources and the applications . You use it to collect and track metrics, collect and monitor log files, set alarms, and automatically react to changes in your AWS resources. A simple example of this could be setting an alarm when your CPU usages gets over a certain percentage. There are a multitude of alerts in the documentation.

Link to Docs:

API GATEWAY

Amazon API gateway should have been called “The API Abstractor” it makes it easy to build and maintain API’s at a low cost. In the past you had to build all this infrastructure or use expensive services.

Link to Docs:

ELASTIC BEANSTALK

Is a free service for deploying apps on amazon infrastructure. All you have to upload your applications then provisioning, load balancing, autoscaling, and application health monitoring are all automatically handled for it. Elastic Beanstalk supports Web apps written in Java, Node.js, PHP, Python, Ruby, and .NET. Keep in mind you are still paying for the underlying resources.

Link to Docs:

CLOUDSEARCH

Makes it easy to add a search solution for your amazon resources that is easily managed and scaled.

Link to Docs:

CODE COMMIT

Amazons managed git repository

Link to Docs:

CODE DEPLOY

Was created to manage deployments across aws and existing infrastructure

Link to Docs:

CODE PIPELINE

AWS CodePipeline integrates with several Amazon services. It pulls source code from Amazon Simple Storage Service and deploys to both AWS CodeDeploy and AWS Elastic Beanstalk. A developer can also integrate AWS Lambda functions or third-party DevOps tools, such as GitHub or Jenkins.

Link to Docs:

EC2 CONTAINER SERVICE

Amazon EC2 Container Service (Amazon ECS) is a highly scalable, fast, container management service that makes it easy to run, stop, and manage Docker containers on a cluster of Amazon Elastic Compute Cloud (Amazon EC2) instances.

Link to Docs:

AWS LAMBDA

AWS Lambda is an event-driven, serverless computing platform provided by Amazon as a part of the Amazon Web Services. It is a compute service that runs code in response to events and automatically manages the compute resources required by that code.

Link to Docs:

BIG DATA

Links to Docs:

REDSHIFT

Fully managed petabyte database based on postgres. Its a lot faster that the Postgress on amazon, due to a couple of things.

  1. Instead of reading rows (like a postgress) it compresses data in columns, storing more directly in RAM. Which is great for analytics
  2. It also takes advantage of multiple cores for a single query.

If you want fast queries Redshift is the way to go.

Link to Docs:

AMAZON MACHINE LEARNING

Amazon Machine Learning is a managed service that provides visualization tools and wizards that guide you through the process of creating machine learning (ML) models without having to learn complex ML algorithms and technology. This should have been called Machine Learning made easy.

Links to Docs:

AMAZON SYSTEMS MANAGER

Amazon Systems Manager is a t service that helps you automatically collect software inventory, apply OS patches, create system images, and configure Windows and Linux operating systems both on the cloud and in other locations.

With this service you can run commands across your instances using the aws-cli , have scalable configuration management, manage inventory, manage patches, and automate routine tasks.

They actually did a decent job at naming this so you can understand what the services does. Maybe Amazon Server Manager would be an iteration better I leave that up to you.

AMAZON SUPPORT OPTIONS

AWS APPSYNC

AWS AppSync is fully managed GraphQL service with real-time data synchronization and offline programming features. You can build a new application or integrate existing data sources with AWS AppSync. The great thing is that it only updates the records that have changed while the device is disconnected. It should have been called “Offline Storage Simplified”

AWS AMPLIFY

AWS Amplify is an open source Javascript library provided by AWS that enables developers to build applications with cloud services on web or mobile platforms. It pluggable into most modern JS frameworks (angular, React, iconic) and provides common services like user auth, push notifications, and analytics. It should have been called rails for react

No responses yet