Blog Detail

Essential AWS Services

Left Image
Deval Ganatra
May 12, 2019

Would you believe if I say AWS has more than thousands of services! Nobody will! But that's true. You won't need to learn each and every service to master AWS. There are some common ones which are used almost everywhere. Just understand that and you will become knowledgeable.

Now that you know the basics and why should you use the cloud, I will not go again in that. You can read our previous blogs if you don't know that.

To prevent you from getting lost in these endless services, I will share some essential services so that you can easily get started with AWS.

Computing and Networking services:

  • EC2:

    "What actually cloud server is?"
    • With EC2, you can create a virtual server (called instance) within minutes. It has dozens of options that you can select as per your needs like CPU, RAM, Storage. An advantage is that it's resizable so you can increase/decrease as per your future needs
    • With the help of EC2, you can then use any Operating System and install anything that you want. It's completely in your control. (Obviously, Hardware is under Amazon's control). You can build and run your applications.
    • You can also save your configurations as an Image(Amazon Machine Image) so that you don't need to configure it from scratch when you need the same server again.
  • Auto Scaling:

    • Now that you are using the cloud, you definitely think about benefits, right? Our demands are not always stable. So you can use a number of servers when your demand increase and vice versa.
    • It allows you to scale your EC2 capacity up or down automatically as per your defined conditions. This will help you to maintain application availability and ensure that the desired number of instances are always online. And it's completely free.
    • Suppose, at midnight your server goes down…,At a time Auto scaling will create a copy of that server within few minutes so that you can get your sleep without worrying.;)
  • Elastic Load Balancer:

    • If you have multiple servers and you are thinking that how will I distribute traffic then here is your answer.
    • ELB is used when you want to distribute your traffic to multiple instances in the cloud. It enables us to achieve a greater level of fault tolerance.
  • Elastic Beanstalk:

    • It is one of the most effective services for developers. I know that you just want to code and don't want to manage all your infrastructure. So, Beanstalk is here for you.
    • You just simply upload your code and AWS will automatically handle infrastructure like provision servers, auto-scaling, load balancing, monitoring. You can now focus on your code!
    • It gives support for Python, Ruby, .NET, Node.js and Go.
  • Amazon VPC:

    • You are worrying that if your data is at risk on a cloud, right? VPC is your solution.
    • It lets you create an isolated network that is only accessible to people/servers that you trust. In VPC, your complete IT environment is isolated from others. Also, you can create multiple VPC, so that you can manage multiple applications which are isolated with each other.
    • You have the option to create a specific IP range, subnets, route table configuration, and Internet accessibility.
  • AWS Lambda

    • What if I don’t want to manage EC2 but still want my application to cope with any number of requests! That’s why Lambda is my favorite one.
    • It is a zero-administration computing platform that runs your code for you on AWS cloud. AWS runs your code on its own EC2 instance fleet with high scalability.
    • If you want to run code without setting up the platform, then AWS Lambda is for you. You just write code, AWS will run your code on any of its server which has the capability to run that code. Also, you don’t need to worry about security, performance availability of that server.
  • Storage and Content Delivery

    Recommended reading for what is Block Storage?
    File/Block/Object Storage Advancement in Storage
  • S3 (Simple Storage Service)

    • S3 is an answer for a storage solution in the cloud.
    • S3 gives highly durable and scalable object-based storage that can handle an unlimited amount of data with so many concurrent users. So your data is now one click away!
    • In the back side, S3 saves your data in multiple locations to cope with the failure of any one location/hardware.
    • What if I say it is so cheap that everyone can afford! Yes, that’s true. At the time of writing, it costs 0.023$ per GB/month for up to first 50TB. Plus, you need to pay for the bandwidth you need to transfer data.
  • EBS

    • EBS is block level persistent storage that gives high availability and durability to use with EC2 instances.
    • It automatically replicates between AZs to protect you from failure.
  • Glacier

    • It is secure, durable and extremely low-cost storage service to store long term backups.
    • Mainly it is optimized for infrequently accessed data where the retrieval time of 3-5 hours can be acceptable.
    • S3 can be integrated with the glacier. So that you have an option to transfer data automatically to Glacier after some time to save storage costs.
  • Cloud Front

    Want to make your website fast?
    • When users request for your website, your data needs to travel over the sea to reach a destination. With the help of CDN (Content Delivery Network), Amazon helps you to decrease latency for your content to reach a destination. Amazon routes your request to the nearest location and delivers content with minimum latency.
    • § Also, it can be useful for static, dynamic streaming and interactive content. So Developers do not need to worry about the user's location. Amazon has the nearest Edge location to give the best performance to the user.

Database services

  • RDS

    • RDS makes database management so simple that even a newcomer can handle it!
    • It is a database service that enables you to create Relational database instance within minutes which supports databases like MySQL, SQL Server, PostgreSQL, etc.
    • In RDS, Amazon manages time-consuming tasks like backup, monitoring, scaling, patching. So that you just need to focus on your application.
  • Dynamo DB

    • It is No SQL database service that gives single-digit millisecond latency at any scale.
    • It is a flexible data model which lets you store document and Key/Value pair and provides higher performance that required by Mobile, Gaming, Web, IoT.

Management tools

  • Cloud Watch

    "So many things on the cloud, how can I monitor all of that??"
    • Cloud Watch is monitoring service which helps you to track the status of your AWS resources and notifies you whenever particular condition arises.
    • It gives metrics and logs to gain insight into resources. Like the utilization of resources, Health, Network performance, etc.
  • Cloud Formation

    "Whole architecture in one click!"
    • Suppose you want to provision a collection of AWS resources which is bae template, you are using when a new project arrives.
    • Cloud Formation allows you to create and manage that collection in one click.
    • You just need to create a JSON template which describes all resources with configuration and done! Whenever you need, just use it. AWS manages provisioning and configuration.

Security and Identity

  • IAM

    • It enables you to control access to your cloud resources.
    • You can create and manage users and groups associated with them. You can assign permission to allow or deny specific tasks to users.
  • KMS

Application Services

  • API gateway

  • SNS

    • Let's take an analogy. Suppose, a customer has requested to generate a bill. Now you want to find his invoice and when it's ready, you need to do the following things:
      • update balance on dashboard
      • send via email, text and push notification on mobile
      • post it to some endpoint
    • SNS will be useful here. You can create on Topic and whenever customer request arrives, you can publish to that topic. All the subscribers will get the message and will start work accordingly.
    • SNS is a notification service that manages the delivery of messages to recipients. It has Publisher and Subscribers. A message is published to a topic once, and SNS will send it to all the subscribers of that topic.
    • With SNS, you can send a notification to the HTTP endpoint, email, SMS on mobile phones. SNS includes a mobile feature to allow push messages on mobile devices
  • SQS

    • Suppose, you have millions of requests and you don't have that many servers to perform it. In this case, you may lose some of the requests. With the help of SQS, you can store all of that messages in SQS and perform an operation when server frees to parse that request. On this way, you will not lose any request which arrived from the client.
    • SQS is fully managed, fast and reliable queueing service which makes easy to decouple your application. You can transmit any volume of data with any throughput, without losing messages.

So may services, isn't it? Don't get overwhelmed yourself with all these. Trust me you will learn all these by the time when you start using these. Till then enjoy reading and start working!