Skip to content

Read: Class 02 Cloud Security Principles and Frameworks

Sérgio Charruadas edited this page Apr 13, 2023 · 2 revisions

Explain the levels of abstraction in AWS to someone without a technical background.

  • Infrastructure as a Service (IaaS): The raw infrastructure components to build your own solutions (EC2 instances, S3 storage, VPC networks, etc.). You manage the infrastructure yourself.

  • Platform as a Service (PaaS): Managed services to develop and run your applications (ECS, CodeBuild, EC2 Systems Manager, etc.). AWS handles the infrastructure for you.

  • Software as a Service (SaaS): Complete, ready-to-use software solutions (AWS Lambda, SageMaker, ECR, etc.). AWS takes care of both the infrastructure and application platform.

As you go up the levels from IaaS to PaaS to SaaS, AWS provides more managed capabilities so you have to manage fewer resources yourself.

In essence, IaaS gives you Lego bricks, PaaS gives you a Lego kit, and SaaS gives you a finished Lego model. You build up from raw resources to nearly complete solutions with less manual effort at each level.

What are the control plane and data plane responsible for in container abstraction?

Containers package apps and dependencies into lightweight, portable, and efficient units. They virtualize operating systems, not hardware, for increased density and flexibility.

The control plane "is responsible for exposing the API and interfaces to define, deploy, and lifecycle containers." The data plane is responsible for providing the instances where containers actually run.

Together, they abstract infrastructure complexity so you can focus on your application.

In short:

  • Containers: Portable, efficient application packages.
  • Control plane: Responsible for exposing the API and interfaces.
  • Data plane: Provides instances to run containers.
  • Separation: Abstracts infrastructure complexity.
  • Benefits: Density, flexibility, innovation, microservices.

Where does AWS Lambda fall in the layers of abstraction and what makes it so special?

In 2014, AWS introduced another abstraction layer: AWS Lambda, which falls into the function layer, which is one of the most abstract services of AWS. As you don’t have to manage anything apart from the code you deploy and the eventual integration with other AWS Services.

Lambda is special for a few key reasons:

  • Serverless: No servers to manage. Lambda handles the servers for you. You just upload your code and Lambda scales it automatically based on workload.

  • Event-driven: Lambda functions are executed on Lambda events (triggers). Your functions only run when triggered by an event like S3 upload, API call, IoT sensor, etc. No idle servers means very low cost.

  • Scales automatically: Lambda scales your functions up and down automatically based on workload. High load scales it up for high throughput; idle periods scale it down for cost efficiency.

  • Billed by request: You pay only for the requests that invoke your Lambda functions. Minutes of compute time are tiny fractions of a cent. Very little cost for unused capacity.

  • Easy to use: Simply upload your code, set triggers and permissions, and Lambda handles the servers, scaling, versioning, logging, metrics, etc for you. Simple compute without operational overhead.

  • Integrates perfectly: Lambda integrates seamlessly with many AWS services like S3, API Gateway, DynamoDB, IAM, CloudWatch, VPC, etc. Easy to orchestrate event-driven workflows across services.

Things I want to know more about

Clone this wiki locally