AWS!!! AWS!!! AWS!!!

Dipaditya Das
19 min readSep 24, 2020
Source: Amazon Web Services (AWS)

What is Cloud Computing?

Cloud computing is the on-demand delivery of IT resources over the Internet with pay-as-you-go pricing. Instead of buying, owning, and maintaining physical data centers and servers, you can access technology services, such as computing power, storage, and databases, on an as-needed basis from a cloud provider like Amazon Web Services (AWS).

Source: Amazon Web Services (AWS)

Cloud computing is named as such because the information being accessed is found remotely in the cloud or a virtual space. Companies that provide cloud services enable users to store files and applications on remote servers and then access all the data via the Internet. This means the user is not required to be in a specific place to gain access to it, allowing the user to work remotely.

Cloud computing takes all the heavy lifting involved in crunching and processing data away from the device you carry around or sit and work at. It also moves all of that work to huge computer clusters far away in cyberspace. The Internet becomes the cloud, and voilà — your data, work, and applications are available from any device with which you can connect to the Internet, anywhere in the world.

Cloud computing can be both public and private. Public cloud services provide their services over the Internet for a fee. Private cloud services, on the other hand, only provide services to a certain number of people. These services are a system of networks that supply hosted services. There is also a hybrid option, which combines elements of both the public and private services.

  • Cloud computing is the delivery of different services through the Internet, including data storage, servers, databases, networking, and software.
  • Cloud-based storage makes it possible to save files to a remote database and retrieve them on demand.
  • Services can be both public and private. Public services are provided online for a fee while private services are hosted on a network to specific clients.

Who is using cloud computing?

Organizations of every type, size, and industry are using the cloud for a wide variety of use cases, such as data backup, disaster recovery, email, virtual desktops, software development, and testing, big data analytics, and customer-facing web applications. For example, healthcare companies are using the cloud to develop more personalized treatments for patients. Financial services companies are using the cloud to power real-time fraud detection and prevention. And video game makers are using the cloud to deliver online games to millions of players around the world.

Source: Microsoft Azure

Benefits of Cloud Computing

Cloud computing is a big shift from the traditional way businesses think about IT resources. Here are seven common reasons organizations are turning to cloud computing services:

Cost

Cloud computing eliminates the capital expense of buying hardware and software and setting up and running on-site datacenters — the racks of servers, the round-the-clock electricity for power and cooling, the IT experts for managing the infrastructure. It adds up fast.

Speed

Most cloud computing services are provided self-service and on-demand, so even vast amounts of computing resources can be provisioned in minutes, typically with just a few mouse clicks, giving businesses a lot of flexibility and taking the pressure off capacity planning.

Global scale

The benefits of cloud computing services include the ability to scale elastically. In cloud speak, that means delivering the right amount of IT resources — for example, more or less computing power, storage, bandwidth — right when it is needed and from the right geographic location.

Productivity

On-site datacenters typically require a lot of “racking and stacking” — hardware setup, software patching, and other time-consuming IT management chores. Cloud computing removes the need for many of these tasks, so IT teams can spend time on achieving more important business goals.

Performance

The biggest cloud computing services run on a worldwide network of secure data centers, which are regularly upgraded to the latest generation of fast and efficient computing hardware. This offers several benefits over a single corporate datacenter, including reduced network latency for applications and greater economies of scale.

Reliability

Cloud computing makes data backup, disaster recovery, and business continuity easier and less expensive because data can be mirrored at multiple redundant sites on the cloud provider’s network.

Security

Many cloud providers offer a broad set of policies, technologies, and controls that strengthen your security posture overall, helping protect your data, apps, and infrastructure from potential threats.

Types of cloud computing

Cloud computing is providing developers and IT departments with the ability to focus on what matters most and avoid undifferentiated work like procurement, maintenance, and capacity planning. As cloud computing has grown in popularity, several different models and deployment strategies have emerged to help meet the specific needs of different users. Each type of cloud service, and deployment method, provides you with different levels of control, flexibility, and management. Understanding the differences between Infrastructure as a Service, Platform as a Service, and Software as a Service, as well as what deployment strategies you can use, can help you decide what set of services is right for your needs.

Cloud Computing Models

There are three main models for cloud computing. Each model represents a different part of the cloud computing stack.

Infrastructure as a Service (IaaS)

Infrastructure as a Service, sometimes abbreviated as IaaS, contains the basic building blocks for cloud IT and typically provide access to networking features, computers (virtual or on dedicated hardware), and data storage space. Infrastructure as a Service provides you with the highest level of flexibility and management control over your IT resources and is most similar to existing IT resources that many IT departments and developers are familiar with today.

Platform as a Service (PaaS)

Platforms as a service remove the need for organizations to manage the underlying infrastructure (usually hardware and operating systems) and allow you to focus on the deployment and management of your applications. This helps you be more efficient as you don’t need to worry about resource procurement, capacity planning, software maintenance, patching, or any of the other undifferentiated heavy lifting involved in running your application.

Software as a Service (SaaS)

Software as a Service provides you with a completed product that is run and managed by the service provider. In most cases, people referring to Software as a Service are referring to end-user applications. With a SaaS offering, you do not have to think about how the service is maintained or how the underlying infrastructure is managed; you only need to think about how you will use that particular piece of software. A common example of a SaaS application is a web-based email where you can send and receive email without having to manage feature additions to the email product or maintaining the servers and operating systems that the email program is running on.

Service Providers:

Businesses can employ cloud computing in different ways. Some users maintain all apps and data on the cloud, while others use a hybrid model, keeping certain apps and data on private servers and others on the cloud.

When it comes to providing services, the big players in the corporate computing sphere include:

  • Amazon Web Services (AWS)
  • Google Cloud
  • Microsoft Azure
  • IBM Cloud
  • Alibaba Cloud
  • Salesforce
  • Oracle Cloud
  • Tencent Cloud

and many more…..

Cloud Computing Deployment Models

On-Cloud

A cloud-based application is fully deployed in the cloud and all parts of the application run in the cloud. Applications in the cloud have either been created in the cloud or have been migrated from an existing infrastructure to take advantage of the benefits of cloud computing. Cloud-based applications can be built on low-level infrastructure pieces or can use higher-level services that provide abstraction from the management, architecting, and scaling requirements of core infrastructure.

On-premises

Deploying resources on-premises, using virtualization and resource management tools, is sometimes called “private cloud”. On-premises deployment does not provide many of the benefits of cloud computing but is sometimes sought for its ability to provide dedicated resources. In most cases, this deployment model is the same as the legacy IT infrastructure while using application management and virtualization technologies to try and increase resource utilization.

Hybrid

A hybrid deployment is a way to connect infrastructure and applications between cloud-based resources and existing resources that are not located in the cloud. The most common method of hybrid deployment is between the cloud and existing on-premises infrastructure to extend, and grow, an organization’s infrastructure into the cloud while connecting cloud resources to the internal system. For more information on how AWS can help you with your hybrid deployment, please visit our hybrid page.

Cloud computing with AWS

Amazon Web Services (AWS) is the world’s most comprehensive and broadly adopted cloud platform, offering over 175 fully-featured services from data centers globally. Millions of customers — including the fastest-growing startups, largest enterprises, and leading government agencies — are using AWS to lower costs, become more agile, and innovate faster.

Source: Gartner: 2020 Magic Quadrant for Cloud Infrastructure & Platform Services

Why choose AWS over other cloud providers?

1. Location, Location, Location

Despite its relatively humble beginnings, AWS has grown to be the worldwide leader in cloud computing. It now operates 77 availability zones within 24 geographic regions around the world. There are also 14 more availability zones in the works, along with five more regions including China. So whatever your geographic preference, AWS has you covered. This diverse array of geographic options also lends itself to other notable features.

2. Automated Multi-Region Backups

AWS offers various backup methods including AMIs and EBS snapshots. And the decentralized nature and global reach of AWS makes it easy and affordable to store critical information in multiple geographic locations. So if your primary production environment is taken offline due to a natural or manmade disaster, the backup data won’t be affected. And third-party services such as CloudRanger simplify the process even further, allowing businesses to automatically schedule backups across AWS regions without the need for in-house scripting (more on that later).

3. Streamlined Disaster Recovery

For some businesses, even a small amount of downtime or data loss spells disaster. For others, the cost of (limited) downtime/data loss does not outweigh the cost of maintaining a multi-site/Hot Standby recovery method. But whatever your business’s tolerance for downtime/data loss may be, AWS’s versatile platform can provide you with the right tools for your disaster recovery plan. And third-party services such as CloudRanger can also simplify your AWS disaster recovery by quickly restoring your data across multiple regions in the event of a disaster.

4. Consistency & Reliability

While AWS is an extremely useful platform for backups and disaster recovery, it is also extremely reliable. Despite a high-profile outage earlier this year, an independent review found that since 2015, AWS has been “far better at keeping its public cloud service running than either Microsoft or Google.” It also found that 40 percent of the platform’s total downtime during the same period was tied to a single outage.

5. Flexibility & Scalability

In the early days of Amazon, company engineers developed a computing infrastructure that could be easily scaled up or down to quickly meet the needs of the growing business. This extremely flexible system is now the hallmark of AWS and is one of the main reasons to choose AWS. Thanks to the company’s massive cloud-based platform, businesses no longer have to deal with the constraints of physical computing infrastructure and can rest assured that access to servers and storage is available on demand.

6. Simple Automated Scheduling

Another one of the multiple reasons to choose AWS is the ability to start and stop various instances at predetermined times. For example, the ability to schedule services such as Elastic Compute Cloud (EC2) and Relational Database Service (RDS) means they won’t have to run during off-hours or weekends. And with the help of third-party tools such as CloudRanger, there’s no scripting required. Which leads us to our next point…

7. Pay-As-You-Go Pricing

We’ve already established that Amazon’s flexible cloud-computing platform allows users to automate routine tasks and quickly scale capacity up or down as needed. But we haven’t discussed the fact that this extreme flexibility lets Amazon offer a pay-as-you-go approach which can greatly improve your business’s bottom line (by as much as 70 percent, in some cases). And of all the reasons to choose AWS, the platform’s flexible pricing structure may be the most popular. Because customers can stop and start instances as needed, they only end up paying for what they use. And the fact that users can easily adjust storage/server levels up or down means overspending on capacity and infrastructure is a thing of the past.

8. Customization

But the flexibility of AWS doesn’t stop there. The platform also allows for a high level of customization to meet the needs of individual businesses. For example, customer-defined tagging allows users to easily monitor and manage resources. From cost tracking and security to organization and automation, there’s virtually no limit to how or why customizable AWS tags can be utilized.

9. Security

Whether you’re a tiny one-man startup or an enterprise-level behemoth, AWS offers the same level of world-class security. The company’s data centers maintain the highest standards, which saves you from the headache of having to secure your facilities. AWS also manages “dozens of compliance programs in its infrastructure” and an extensive security support network that can offer real-time insight on suspicious activity and potential vulnerabilities.

10. Third-Party APIs

In keeping with the overall flexibility of the platform, AWS API means you can manage your cloud-based infrastructure in various programming languages. It also means that various third-party services like CloudRanger are available to help you utilize all of the time-and-cost-saving features AWS has to offer. From automated backups to EC2 and RDS instances, CloudRanger can help you automate routine yet necessary AWS tasks without the need for scripting.

AWS Services

As of 2020, AWS comprises more than 175[11] products and services including computing, storage, networking, database, analytics, application services, deployment, management, mobile, developer tools, and tools for the Internet of Things. The most popular include Amazon Elastic Compute Cloud (EC2) and Amazon Simple Storage Service (Amazon S3).

Most services are not exposed directly to end users, but instead offer functionality through APIs for developers to use in their applications. Amazon Web Services’ offerings are accessed over HTTP, using the REST architectural style and SOAP protocol for older APIs and exclusively JSON for newer ones.

Source: AWS

Growth and Protitability

In November 2010, it was reported that all of Amazon.com’s retail sites had migrated to AWS. Prior to 2012, AWS was considered a part of Amazon.com and so its revenue was not delineated in Amazon financial statements. In that year industry watchers for the first time estimated AWS revenue to be over $1.5 billion.

In April 2015, Amazon.com reported AWS was profitable, with sales of $1.57 billion in the first quarter of the year and $265 million of operating income. Founder Jeff Bezos described it as a fast-growing $5 billion business; analysts described it as “surprisingly more profitable than forecast”. In October, Amazon.com said in its Q3 earnings report that AWS’s operating income was $521 million, with operating margins at 25 percent. AWS’s 2015 Q3 revenue was $2.1 billion, a 78% increase from 2014’s Q3 revenue of $1.17 billion. 2015 Q4 revenue for the AWS segment increased 69.5% y/y to $2.4 billion with 28.5% operating margin, giving AWS a $9.6 billion run rate. In 2015, Gartner estimated that AWS customers are deploying 10x more infrastructure on AWS than the combined adoption of the next 14 providers.

In 2016 Q1, revenue was $2.57 billion with net income of $604 million, a 64% increase over 2015 Q1 that resulted in AWS being more profitable than Amazon’s North American retail business for the first time. In the first quarter of 2016, Amazon experienced a 42% rise in stock value as a result of increased earnings, of which AWS contributed 56% to corporate profits.

AWS had $17.46 billion in annual revenue in 2017. By end of 2018, the number had grown to $25.65 billion.

In 2019, AWS reported 37% yearly growth and accounted for 12% of Amazon’s revenue (up from 11% in 2018).

In 2020, AWS came close to the $10 billion mark in the fourth quarter, when it delivered $9.95 billion in revenue.

AWS Customers: The Ultimate List

Whether it’s technology giants, television networks, banks, food manufacturers or governments, many different organisations are using AWS to develop, deploy and host applications.

Here are the names that are on record publicly as using AWS:

Aon, Adobe, Airbnb, Alcatel-Lucent, AOL, Acquia, AdRoll, AEG, Alert Logic, Autodesk, Bitdefender, BMW, British Gas, Baidu, Bristol-Myers Squibb, Canon, Capital One, Channel 4, Chef, Citrix, Coinbase, Comcast, Coursera, Disney, Docker, Dow Jones, European Space Agency, ESPN, Expedia, Financial Times, FINRA, General Electric, GoSquared, Guardian News & Media, Harvard Medical School, Hearst Corporation, Hitachi, HTC, IMDb, International Centre for Radio Astronomy Research, International Civil Aviation Organization, ITV, iZettle, Johnson & Johnson, JustGiving, JWT, Kaplan, Kellogg’s, Lamborghini, Lonely Planet, Lyft, Made.com, McDonalds, NASA, NASDAQ OMX, National Rail Enquiries, National Trust, Netflix, News International, News UK, Nokia, Nordstrom, Novartis, Pfizer, Philips, Pinterest, Quantas, Reddit, Sage, Samsung, SAP, Schneider Electric, Scribd, Securitas Direct, Siemens, Slack, Sony, SoundCloud, Spotify, Square Enix, Tata Motors, The Weather Company, Twitch, Turner Broadcasting,Ticketmaster, Time Inc., Trainline, Ubisoft, UCAS, Unilever, US Department of State, USDA Food and Nutrition Service, UK Ministry of Justice, Vodafone Italy, WeTransfer, WIX, Xiaomi, Yelp, Zynga and Zillow.

Netflix Case Study: Analysis

Netflix is the world’s leading internet television network, with more than 100 million members worldwide enjoying 125 million hours of TV shows and movies each day, including original series, documentaries, and feature films. Members can watch as much as they want, anytime, anywhere, on nearly any Internet-connected screen. Did you know, in the year 2000, the company Blockbuster LLC had an opportunity to buy Netflix for a mere $50 million? But in 2016, Netflix made a come back and accumulated $8.83 billion in revenue. One would wonder how come a company which was worth $50 million in 2000 is now worth around $87 billion. A layman would guess that the company had a continual impressive growth over 17 years straight. But the fact is that within this time period, in the 2008, Netflix was a victim of a major database corruption.

Source: BroadBand Search

Playback Architecture:

When subscribers click the Play button on their apps or devices, the Client will talk to both Backend on AWS and OCAs on Netflix CDN to stream videos. The following diagram illustrates how the playback process works:

  1. OCAs constantly send health reports about their workload status, routability and available videos to Cache Control service running in AWS EC2 in order for Playback Apps to update the latest healthy OCAs to clients.
  2. A Play request is sent from the client device to Netflix’s Playback Apps service running on AWS EC2 to get URLs for streaming videos.
  3. Playback Apps service must determine that Play request would be valid in order to view the particular video. Such validations would check subscriber’s plan, licensing of the video in different countries, etc.
  4. Playback Apps service talks to Steering service also running in AWS EC2 to get the list of appropriate OCAs servers of the requested video. Steering service uses the client’s IP address and ISPs information to identify a set of suitable OCAs work best for that client.
  5. From the list of 10 different OCAs servers returned by Playback Apps service, the client tests the quality of network connections to these OCAs and selects the fastest, most reliable OCA to request video files for streaming.
  6. The selected OCA server accepts requests from the client and starts streaming videos.

In the above diagram, Playback Apps service, Steering service and Cache Control service run entirely in AWS cloud based on a microservices architecture. In the next section, I will describe a reference of Netflix Backend microservices architecture which increases the availability and scalability of running services.

Backend Architecture:

As I have described in previous sections, Backend handles almost everything, ranging from sign up, login, billing to more complex processing tasks such as video transcoding and personalized recommendations. In order to support both lightweight and heavy workloads running on the same underlying infrastructure, Netflix has chosen microservices architecture for their cloud based system. The diagram represents a possible microservices architecture at Netflix which I have derived from several online sources:

  1. The Client sends a Play request to Backend running on AWS. That request is handled by AWS Load balancer (ELB)
  2. AWS ELB will forward that request to API Gateway Service running on AWS EC2 instances. That component, named Zuul, is built by Netflix team to allow dynamic routing, traffic monitoring and security, resilience to failures at the edge of the cloud deployment. The request will be applied to some predefined filters corresponding to business logics, then is forwarded to Application API for further handling.
  3. Application API component is the core business logic behind Netflix operations. There are several types of API corresponding to different user activities such as Signup API, Recommendation API for retrieving video recommendation. In this scenario, the forwarded request from API Gateway Service is handled by Play API.
  4. Play API will call a microservice or a sequence of microservices to fulfill the request. Playback Apps service, Steering service and Cache Control service in can be seen as a microservice in this diagram.
  5. Microservices are mostly stateless small programs and can call each other as well. To control its cascading failure and enable resilience, each microservice is isolated from the caller processes by Hystrix. Its result after run can be cached in a memory-based cache to allow faster access for those critical low latency requests.
  6. Microservices can save to or get data from a data store during its process.
  7. Microservices can send events for tracking user activities or other data to the Stream Processing Pipeline for either real-time processing of personalized recommendation or batch processing of business intelligence tasks.
  8. The data coming out of the Stream Processing Pipeline can be persistent to other data stores such as AWS S3, Hadoop HDFS, Cassandra, etc.

Application / Monitoring on a Large Scale

Netflix uses Amazon Web Services (AWS) for nearly all its computing and storage needs, including databases, analytics, recommendation engines, video transcoding, and more — hundreds of functions that in total use more than 100,000 server instances on AWS.

This results in an extremely complex and dynamic networking environment where applications are constantly communicating inside AWS and across the Internet. Monitoring and optimizing its network is critical for Netflix to continue improving customer experience, increasing efficiency, and reducing costs. In particular, Netflix needed a solution for ingesting, augmenting, and analyzing the multiple terabytes of data its network generates daily in the form of virtual private cloud (VPC) flow logs. This would enable Netflix to identify performance-improvement opportunities, such as identifying apps that are communicating across regions and collocating them. The company would also be able to increase uptime by quickly detecting and mitigating application downtime. Each log record carries information about the communications between two IP addresses. However, in a dynamic environment like the one at Netflix, where an IP address can float between applications from day to day or even minute to minute, IP addresses alone don’t have much meaning. “The data sources we had before we took on this initiative were one sided,” says John Bennett, senior software engineer at Netflix.

Centralizing Flow Logs Using Amazon Kinesis Data Streams

The solution Netflix ultimately deployed — known internally as Dredge — centralizes flow logs using Amazon Kinesis Data Streams. The application reads the data from Amazon Kinesis Data Streams in real time and enriches IP addresses with application metadata to provide a full picture of the networking environment. The enriched data lands in an open-source analytics application called Druid. Netflix uses the OLAP querying functionality of Druid to quickly slice data into regions, availability zones, and time windows to visualize it and gain insight into how the network is behaving and performing.

Improving Customer Experience with Real-Time Network Monitoring

Netflix’s Amazon Kinesis Data Streams-based solution has proven to be highly scalable, each day processing billions of traffic flows. Typically, about 1,000 Amazon Kinesis shards work in parallel to process the data stream. Netflix is now able to identify new ways to optimize its applications, whether that means moving an application from one region to another or changing to a more appropriate network protocol for a specific type of traffic.

More Case Studies Analysis

NFL Case Study:

Johnson and Johnson Case Study

Mcdonalds Case Study

Formula 1 Case Study

FINRA Case Study

Coca-Cola Case Study

21st Century Fox Case Study

Verizon Case Study

Hyatt Hotels Case Study

Toyota Builds Shared Mobility Platform case Study

Final Thoughts

  • AWS is evaluated as a Leader with the highest score in both axes of measurement, Ability to Execute and Completeness of Vision.
  • Well, as per the surveys and research these industries like Netflix, Adobe etc are expanding at an enormous rate and will multiply itself into a huge number by the end of 2025.
  • Over time, AWS has added plenty of services that helped make it a low-cost infrastructure platform that is highly available and scalable.

Thank you for reading this article. If you have liked it then Clap it as many times as possible.

Signing off for now 👋Meet you in my next article.

--

--

Dipaditya Das

IN ● MLOps Engineer ● Linux Administrator ● DevOps and Cloud Architect ● Kubernetes Administrator ● AWS Community Builder ● Google Cloud Facilitator ● Author