Background

Amazon started as an online bookseller in 1995. As the demand for books increased, it saw the opportunity in the online selling business. Amazon expanded into selling all kinds of items. As their consumer base expanded, so did the computing needs of their website. Necessity is the mother of invention, and Amazon began innovating in their computing infrastructure. They saw a business opportunity in computing as a service, which eventually resulted in AWS. As more services came online and the adoption of mobile increased, the need for cloud computing grew. Now, its hard to imagine a world without cloud computing infrastructure.

Cloud computing provides a cost-efficient pay-as-you-go model. As the demand for applications increases or decreases, so do the computing resources. This makes efficient use of resources, allowing individual organizations to focus on their application development. They do not need to focus on the costly maintenance of hardware resources.

AWS Services

Cloud providers such as AWS, GCP, and Azure provide end-to-end solutions for software development, build, deployment, and maintenance of applications.

AWS is an ocean of computing tools and techniques catering to various needs. AWS offers over 200 products and services. It’s overwhelming to learn each and every service. Each AWS service has a specific purpose. Most AWS services can be grouped into a handful of categories. Viewing services as part of a category helps in learning and architect cloud solutions.

AWS Services can mainly be categorized into the following:

  • Compute - Services that provide computing resources like CPU and memory for workloads. Examples include EC2, Lambda, ECS, and EKS.
  • Storage - Services that offer storage resources such as block storage, object storage, and file systems. Examples include S3, EBS, and EFS.
  • Network - Services that help with secure placement and communication between services and the public internet. Examples include VPC, API Gateway, and VPN.
  • Security - In AWS, security is a top priority. All services have security features enabled. Examples include IAM, AWS Shield, and Amazon Cognito.
  • Database - AWS supports popular relational and NoSQL databases. Examples include Aurora for relational databases and DynamoDB for NoSQL databases.
  • Monitoring - Services for monitoring applications, debugging, performance metrics, and configuration changes. Examples include AWS CloudWatch, AWS CloudTrail, and AWS Config.
  • AI and Analytics - Services for analyzing big data streams and training AI models, with support for hosting AI workloads. Examples include Kinesis and SageMaker.
  • Many other miscellaneous services.

Diagram of various AWS services grouped by categories such as Compute, Network, Security, Storage, Database, AI and Analytics, and Monitoring

Architect AWS Solutions

Each AWS service is a managed service, which means AWS is responsible for its maintenance, such as regular software patches, network connection stability, and hardware stability.

Designing an optimized AWS solution mainly involves:

  • Gathering functional and non-functional requirements
  • Choosing appropriate services for our requirements
  • Coming up with a secure architecture for the identified services
  • Analyzing whether the architecture meets our resiliency, performance, security, and cost needs
  • Iterating above steps until we arrive at a satisfactory architecture for the application deployment

To do these tasks, an architect needs:

  • a good understanding of the range of AWS services
  • knowledge of common solutions for typical problems
  • an understanding of the trade-offs between requirements and AWS solutions

That was a brief look at AWS services and what is needed to create an effective AWS solution.

Let’s dive into AWS solutions in the upcoming posts!