Abstraction
Simplifying the Complex by Hiding Complicated Details
Abstraction sounds like a scary, complex word when you encounter it for the first time, but it is a universal concept that transcends boundaries across various industries.
From the precise realm of mathematics to the creative expanse of the arts. It’s a powerful tool that enables us to simplify complex realities, focus on essential features, and convey intricate ideas in a more digestible form. By omitting unnecessary details and emphasizing key elements, abstraction helps us comprehend, communicate, and innovate more effectively.
Abstraction as a Concept Across Disciplines
Since abstraction is not exclusive to the cloud, these definitions and analogies demonstrate its far-reaching applicability across various fields, allowing us to develop a more sophisticated and nuanced comprehension of the concept.
Abstraction in Computer Science
Abstraction is the process of exposing essential features while hiding implementation details, enabling modular programming and software development.
In Computer Science, Abstraction is like building a LEGO castle. You create a structure (program) using individual blocks (code) that hide the details of how they’re assembled, allowing you to focus on the overall design.
Abstraction in Engineering
Abstraction is used to design and develop systems, focusing on functional requirements while hiding implementation details.
Abstraction is like designing a car. You focus on functional requirements (speed, safety) while hiding implementation details (engine, transmission).
Abstraction in Mathematics
Abstraction involves generalizing specific instances into broader concepts, like grouping numbers into sets or defining algebraic structures.
Abstraction is like grouping different types of fruit (apples, bananas, oranges) into a single category (fruit). You focus on shared characteristics, ignoring specific details.
Abstraction in Art
Abstraction refers to non-representational art that doesn’t depict realistic subjects, instead focusing on colors, shapes, and forms to convey emotions and ideas.
Abstraction is like creating a puzzle. You take individual pieces (colors, shapes) and combine them to form a larger image that conveys a message or emotion, rather than a literal representation.
Abstraction in Philosophy
Abstraction is the mental process of isolating essential properties or characteristics from specific instances, leading to general concepts and theories.
Abstraction is like looking at a forest instead of individual trees. You step back to see the bigger picture.
Abstraction in Science
Abstraction entails simplifying complex systems or phenomena into theoretical models or representations, facilitating understanding and analysis.
Abstraction is like creating a map. You simplify complex terrain (data) into a representative model (theory), highlighting key features and relationships.
Abstraction in Music
Abstraction in music refers to experimental or avant-garde compositions that depart from traditional melodies and harmonies, emphasizing sound textures and atmospheres.
Abstraction is like creating a soundscape. You combine individual sounds (instruments, effects) to evoke an atmosphere or mood, rather than a specific melody.
Abstraction in Literature
Abstraction in literature involves using symbolic language, metaphors, and allegories to convey complex ideas and themes beyond literal interpretations.
Abstraction is like writing a poem. You use words and metaphors to convey emotions and ideas, rather than literal descriptions.
Abstraction in Economics
Abstraction in economics involves modeling complex systems, simplifying assumptions, and analyzing economic phenomena through theoretical frameworks.
Abstraction is like creating a financial model. You simplify complex systems (markets, economies) into theoretical frameworks to analyze and predict behavior.
Abstraction in Cognitive Science
Abstraction is the cognitive process of categorizing, generalizing, and forming mental representations of the world.
Abstraction is like categorizing animals into species. You group individual instances (animals) based on shared characteristics, forming mental representations.
Abstraction in Linguistics
Abstraction in linguistics involves analyzing language structures, identifying patterns, and developing theoretical models of language acquisition and use.
Abstraction is like learning a language. You identify patterns and structures (grammar, syntax) to understand and communicate effectively.
Abstraction in Business
Abstraction in business refers to identifying essential factors, simplifying complex processes, and developing strategic models to drive decision-making.
Abstraction is like developing a marketing strategy. You identify essential factors (target audience, messaging) and simplify complex processes to drive decision-making.
Abstraction in Psychology
Abstraction is the mental process of forming concepts, categorizing experiences, and developing mental representations of the world.
Abstraction is like forming memories. You categorize experiences and emotions, creating mental representations that influence future behaviors.
Abstraction in Architecture
Abstraction in architecture involves designing buildings and spaces that prioritize functional and aesthetic essentials over ornamental details.
Abstraction is like designing a building facade. You prioritize functional and aesthetic essentials (structure, appearance) over ornamental details.
Abstraction in Data Analysis
Abstraction in data analysis entails identifying key variables, simplifying complex data sets, and developing models to extract insights.
Abstraction is like creating a dashboard. You identify key variables (metrics, trends) and simplify complex data sets to extract insights and inform decisions.
…You get the point. If you’re transitioning to the cloud from one of the aforementioned industries, you can leverage your existing knowledge to understand what abstraction in the cloud means.
Abstraction in the Cloud
The Cloud builds upon the principles of computer science, and abstraction is a key concept that makes it more accessible. Think of abstraction like a filter that simplifies complex details by hiding them away from you, letting you focus on what matters.
In programming, abstraction helps hide intricate code details, allowing developers to concentrate on the logic of their application. Similarly, cloud providers use abstraction to conceal the complexity of infrastructure, offering pre-built services and managed platforms that are easy to use.
This abstraction enables you to focus on your goals, like deploying and managing applications, without worrying about the underlying infrastructure. It’s like having a trusted partner handle the complicated details, so you can concentrate on what you do best.
Putting it All Together with An Analogy
Automatic Vehicle
Abstraction in cloud computing is like the difference between driving a manual car versus driving an automatic vehicle, where a manual car is traditional on-premises infrastructure, and the automatic vehicle is the cloud.
Manual Cars (On Premises)
No Abstraction
Driving a manual (stick-shift) car requires direct control over gears and the clutch: In manual cars, you have fine-grained control but must manage every detail (shifting gears, clutch coordination). Similarly, on-premise solutions involve managing infrastructure at a granular level (physical servers, networking, security).
Automatic Cars (The Cloud)
An Abstraction of Manual Cars
Automatic cars handle gear changes automatically, simplifying driving:
Cloud services abstract away low-level infrastructure tasks. Just as automatic cars free you from gear management, cloud abstracts infrastructure complexities.
So would you rather be shifting gears the whole day, dealing with the clutch, waiting eons for the car to start in cold weather, and likely cause unnecessary accidents when ascending uphill on a rainy day? (On-Premises)
or
Do you want to just push a start button and go, where you just steer yourself in the right direction, accelerate when you need to and easily stop when you want? (Cloud Computing).
This analogy emphasizes that the core complicated, technical components are not completely gone, they are simply hidden and managed by the cloud provider, simplifying your experience so you innovate and build faster.
🏗️ Let’s Build
Demonstrating Abstraction in the Cloud with Amazon Beanstalk
I know (and hope) you’re eager to get started, so in this practical, hands-on tutorial we’ll:
Deploy a Basic Static Site.
This will demonstrate abstraction by contrasting Amazon Elastic Compute Cloud (EC2) and Amazon Beanstalk, which is considered an abstraction of EC2.
Prerequisites
- An AWS Administrative Account that has an Alias Account Configured (IAM)
- Multisession Support Enabled.
Add Additional Permissions to Your IAM Account
Principle of Least Privilege: It is considered a best practice to grant users only the necessary permissions to perform their tasks, it is a fundamental security concept that will help keep your systems secure in the long run.
Step 01: Sign in with your Administrative Root User Account in order to grant permissions to your active Alias or IAM Account.
Step 02: Select ⁝⁝⁝ Security, Identity & Compliance on the left side of the drop down menu.
Step 03: Select IAM.
You should be redirected to the IAM Dashboard.
Step 04: On the left side of the screen under ▼ Access management
Select Users
Step 05: Users
Select the Cloud Glossary IAM User.
Step 06: CloudGlossary
Select Permissions.
Click Add permissions ▼
Select Add permissions.
You should be redirected to the Add permissions page.
Step 07: Add permissions
Permission options: Attach policies directly
On the Search bar type and check:
AmazonEC2FullAccess
AdministratorAccess-AWSElasticBeanstalk
AmazonS3FullAccess
AWSCloudFormationFullAccess
AmazonRDSFullAccess
CloudWatchFullAccess
CloudWatchFullAccessV2
IAMFullAccess
Click Next
Step 08: Review
Click Add permissions
✅Green banner: 8 policies added to CloudGlossary
Create an IAM EC2 Instance Profile for Elastic Beanstalk
An EC2 instance profile is a container for an IAM role that you attach to an EC2 instance so the instance can automatically get temporary AWS credentials and access AWS services without storing access keys on the server.
Step 09: On the left side of the screen under ▼ Access management
Select Roles
Step 10: Roles
Click Create role
Step 11: Select trusted entity
Select AWS service
Use Case: EC2
Use Case: EC2
Click Next
Step 12: Add permissions
Select AdministratorAccess-AWSElasticBeanstalk
Click Next
Step 13: Name, review, and create
Role name: AbstractionRole
Click Create role
✅Green banner: Role AbstractionRole created.
Click View role
Build Using Your IAM Account
Build using your IAM account (not the root account) because it’s safer and more controllable: you can enforce least privilege, require MFA, track actions per user in CloudTrail, and quickly remove or rotate access if something goes wrong, while keeping the powerful root account locked down for rare account-level tasks.
Step 14: Sign in with your IAM Account.
Depending on how long ago you last logged in and your password policy, you might have to reset your password using your Administrative Account. Ignore Steps 14.1–14.8 if you don’t have to reset your password.
Step 14.1: Sign in with your Administrative Root User Account in order to reset your password.
Step 14.2: Select ⁝⁝⁝ Security, Identity & Compliance on the left side of the drop down menu.
Step 14.3: Select IAM.
You should be redirected to the IAM Dashboard.
Step 14.4: On the left side of the screen expand Access management.
Step 14.5: Select Users.
Step 14.6: Select the CloudGlossary IAM User.
Step 14.7: Select Security credentials.
Click Manage console access.
Select Reset password.
Under Console password, Select Custom password.
Click Reset password.
✅Green banner: You have successfully enabled the user’s new password.
This is the only time you can view this password. After you close this window, if the password is lost, you must create a new one.
Step 14.8: Click Close.
Elastic Compute Cloud Tutorial
Amazon Elastic Compute Cloud (EC2) is AWS’s service for renting virtual servers (“instances”) in the cloud.
You choose the instance size and operating system, run your applications on it, and can scale up/down or start/stop instances as needed, paying for the compute you use.
Step 15: Before you proceed, make sure that you’re signed in with your IAM User Account, and that you’re in the N. Virginia ▼ region (us-east-1).
Launch EC2 Instances
Step 16: Select ⁝⁝⁝ Compute on the left side of the drop down menu.
Select EC2.
Step 17: Dashboard
Click Launch instance.
Step 18: Launch an instance
Under Name and Tags.
Name: NoAbstraction
▼ Application and OS Images (Amazon Machine Image)
Select Amazon Linux 2023 kernel 6.1 AMI (Free Tier eligible)
▼ Instance type
Select t3.micro (Free tier eligible).
▼ Key pair (login)
select Create new key pair.
You should be redirected to the Create key pair pop up.
Step 19: Create key pair
Key pair name: CloudGlossary
Key pair type: RSA
Private key file format: .pem
Click Create key pair.
Save it on your local device.
⚠️ Keep this Key pair safe because we will be using this Key pair throughout the Cloud Glossary Tutorials.
Step 20: ▼ Network settings.
Click Edit
Scroll to Firewall (security groups)
Select Create security group.
Security group name — required: CloudGlossarySG
Description — required: Security Group for My Cloud Glossary Tutorials
Under Inbound Security Group Rules.
Click Add Security group rule.
Type: Select HTTP.
Source Type: Select Anywhere.
▼ Configure storage: leave as default.
Step 21: ▶ Advanced details
Scroll to the bottom, but, don’t scroll too fast, make a note of all the features you can manually configure until you reach User data — optional.
Paste this
#!/bin/bash
# 📦 Update system packages (works on both AL2 and AL2023)
sudo yum update -y
# 🐍 Install Python3 and pip (AL2023 compatible)
sudo yum install -y python3 python3-pip
# 🔧 Install Flask using pip3
sudo pip3 install flask
# 📁 Create a directory for the app
mkdir -p /home/ec2-user/hello-world
# 🐍 Create the Flask application
cat > /home/ec2-user/hello-world/app.py <<EOF
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return "Hello World from EC2! This is NO ABSTRACTION"
if __name__ == '__main__':
app.run(host='0.0.0.0', port=80)
EOF
# ▶️ Run the Flask app in background
cd /home/ec2-user/hello-world
nohup sudo python3 app.py > app.log 2>&1 &Step 22: At the right of the page ▼ Summary
Number of instances: 2
Click Launch instance.
✅Green banner: Success
Successfully initiated launch of instances (i-0ee3d369d7bb6x401, i-0d20b6b0e771e85xb)
Click View all instances
You should be redirected to the instances dashboard.
Step 23: Make sure your NoAbstraction instances are in the Running state.
Name: NoAbstraction
Instance State: ✅Running
Click on the Instance ID of the first instance.
Copy the Public IPv4 address, and paste it into your browser.
⚠️Make sure it begins with http:// (Port 80) and not https:// (Port 443). You will received ERR_CONNECTION_TIMED_OUT if it begins with https:// because the Security group and the app associated with your instance is open on Port 80 (HTTP) and not Port 443 (HTTPS).
💡Verification: You should see the following message displayed on your browser:
Hello World from EC2! This is NO ABSTRACTION
Configure AutoScaling
Autoscaling is like having extra help ready to step in when needed.
In simple terms, autoscaling is a feature that automatically adjusts the number of servers (instances) your application uses based on how much traffic or work it’s handling.
If your app gets busy (like during a sale or a viral moment), autoscaling adds more servers to handle the load.
If things get quiet, autoscaling removes extra servers to save money.
This way, your application always has just the right amount of resources — never too many (wasting money) or too few (causing slowdowns or crashes).
Step 24: Navigate back to the EC2 Console.
On the far right of the page, at the bottom, below ▼ Autoscaling
Select Auto Scaling Groups.
Step 25: Amazon EC2 Auto Scaling
Click Create Auto Scaling Group.
You should be redirected to the Choose launch template or configuration page.
Step 26: Choose launch template or configuration
Auto Scaling group name: CloudGlossaryASG
Launch template: Click Create a launch template
You should be redirected to the Create launch template page
Create A Launch Template
A launch template is like a reusable blueprint for EC2: it saves your instance settings so you can launch the same setup again later, share it with others, and maintain multiple versions as your configuration evolves
Step 27: Create launch template
Launch template name and description.
Launch template name — required: CloudGlossaryLaunchTemplate.
Template version description: Version One
Auto Scaling guidance: ✔
Step 28: Launch template contents
▼ Application and OS Images (Amazon Machine Image)
Click Quick Start
Select Amazon Linux
Select Amazon Linux 2023 kernel 6.1 AMI (Free Tier eligible)
▼ Instance type
Select t3.micro (Free tier eligible).
▼ Key pair (login)
Key pair name: CloudGlossary
Step 29: Network Settings
Subnet: Don’t include in launch template.
Firewall (Security groups): Select existing security group.
Common security groups: CloudGlossarySG
▶ Storage (volumes): Leave default
▶ Resource tags: Leave default
▼ Advanced details: Scroll to the bottom and paste the code below.
#!/bin/bash
# 📦 Update system packages (works on both AL2 and AL2023)
sudo yum update -y
# 🐍 Install Python3 and pip (AL2023 compatible)
sudo yum install -y python3 python3-pip
# 🔧 Install Flask using pip3
sudo pip3 install flask
# 📁 Create a directory for the app
mkdir -p /home/ec2-user/hello-world
# 🐍 Create the Flask application
cat > /home/ec2-user/hello-world/app.py <<EOF
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return "Autoscaling! This is NO ABSTRACTION"
if __name__ == '__main__':
app.run(host='0.0.0.0', port=80)
EOF
# ▶️ Run the Flask app in background
cd /home/ec2-user/hello-world
nohup sudo python3 app.py > app.log 2>&1 &Step 30: ▶ Summary
Click Create launch template
✅Green banner: Success
Successfully created CloudGlossaryLaunchTemplate(lt-06c6e3d2e4be2314x).
Click View launch templates
Step 31: Navigate back to the Choose launch template or configuration page.
Click the refresh button next to Select a launch template.
Select CloudGlossaryLaunchTemplate.
Version: 1 ▼
Click Next
Step 32: Choose instance launch options
Network
VPC: defaultVPC
Availability Zones and subnets: Select all.
Availability Zone distribution — new: Select Balanced best effort.
Click Next
Step 33: Integrate with other services — optional
Load Balancing
Load balancing is like having a traffic cop for your application.
When lots of users try to access your app at the same time, a load balancer makes sure the traffic is spread out evenly across all your servers. This prevents any single server from being overwhelmed while others sit idle.
It ensures:
Your app runs smoothly, even under heavy traffic.
If one server fails, the load balancer sends traffic to the healthy servers so users don’t notice any issues.
Think of it as distributing the workload to keep everything running efficiently!
Step 34: Load balancing
Select Load balancing options: Attach to a new load balancer.
Load balancer type: Application Load Balancer (HTTP, HTTPS)
Load balancer name: CloudGlossaryLB
Load balancer scheme: Internet-facing.
Network mapping: Leave default.
Listeners and routing
Protocol: HTTP
Port: 80
Default routing (forward to): Create a target group.
New target group name: CloudGlossaryTargetGroup
VPC Lattice integration options
Select VPC Lattice service to attach: No VPC Lattice service
Leave everything as default.
Click Next.
Step 35: Configure group size and scaling — optional.
Desired capacity: 2.
Scaling.
Min desired capacity: 1
Max desired capacity: 2
Automatic scaling — optional: No scaling policies
Instance maintenance policy: No policy
Additional capacity settings: Default
Get Ntombizakhona Mabaso’s stories in your inbox
Join Medium for free to get updates from this writer.
Additional settings: Leave all unchecked
Click Next
Step 36: Add notifications — optional
Click Next.
Step 37: Add tags — optional
Click Next.
Step 38: Review
Click Create Auto Scaling Group.
If you performed the steps successfully, you should be looking at the Auto Scaling groups page.
Step 39: Navigate back to your Instances page.
You should have four Running instances.
Step 40: ✔ Check the instances we just created from the Auto Scaling Group.
Instance state: Terminate (delete) instance
Terminate (delete) instance? : Terminate (delete)
✅Green banner: Successfully initiated termination (deletion) of i-0f95564236cf29x76,i-0978c29d74cc4x761
💡Verification: As soon as the instances are Terminated, your Auto Scaling group will automatically launch new instances.
Step 41: Instance State: Running
When this instance is in Running state, click on the Instance ID of the newly launched instance.
Copy the Public IPv4 address, and paste it into your browser.
⚠️Make sure it begins with http:// (Port 80) and not https:// (Port 443). You will received ERR_CONNECTION_TIMED_OUT if it begins with https:// because the Security group and the app associated with your instance is open on Port 80 (HTTP) and not Port 443 (HTTPS).
💡Verification: You should see the following message displayed on your browser:
Autoscaling! This is NO ABSTRACTION
Step 42: Navigate to ▼ Load Balancing.
Select Target Groups.
Click CloudGlossaryTargetGroup.
Step 43: CloudGlossaryTargetGroup
Select Targets
Registered targets
Click Register targets
Step 44: Register Targets
✔ Select all Available Instances.
Ports for the selected instances: 80
Click Include as pending below.
Click Register pending targets.
✅Green banner: 2 targets registered successfully to CloudGlossaryTargetGroup
Wait for all of them to reach Healthy status.
Step 45: Navigate to ▼ Load Balancing.
Click Load Balancers.
Click CloudGlossaryLB
Copy the DNS name and paste it into your browser
💡Verification: You should see the following message displayed on your browser:
Hello World from EC2! This is NO ABSTRACTION
Reload the Web Page.
💡Verification: You should see the following message displayed on your browser:
AutoScaling! This is NO ABSTRACTION
Reload the Web Page.
💡Verification: You should see the following message displayed on your browser:
Hello World from EC2! This is NO ABSTRACTION
Reload the Web Page.
⚠️ You might not see it in this particular order, but your Load Balancer will attempt to distribute traffic equally from all the instances you registered as targets.
Elastic Beanstalk Tutorial
Elastic Beanstalk is a service that makes it easy to run your application in the cloud without worrying about the servers.
You just upload your code, and Beanstalk automatically sets up everything you need, like servers (EC2), load balancers, scaling, and updates. It handles the heavy lifting so you can focus on your app, not the infrastructure.
Step 46: Navigate back to the Management Console
Click On ⁝⁝⁝ Services
Select Compute
Click on Elastic Beanstalk.
Step 47: Amazon Elastic Beanstalk
Click Create application
Step 48: Configure environment
Environment Tier: Web server environment
Step 49: Application information
Application name: type AbstractionApp
Step 50: Environment information
Environment name: Leave default.
Domain: Leave blank for autogenerated value.
▼ Environment description: type This is Abstraction.
Step 51: Platform
Platform: Python ▼
Platform branch: Python 3.14 running on 64bit Amazon Linux 2023.
Platform version: 4.9.1 (Recommended)
Application Code: Sample application
Presets: Single instance (free tier eligible)
Click Next
Step 52: Configure server access
Service access
Service role: Click Create role
Step 53: Service Role: Create and use new service role
Step 54: Select trusted entity
Select AWS service
Use Case: Elastic Beanstalk ▼
Use Case: Elastic Beanstalk — Environment
Click Next
Step 55: Add permissions
Click Next
Step 56: Name, review, and create
Role name: aws-elasticbeanstalk-service-role
Click Create role
✅Green banner: Role aws-elasticbeanstalk-service-role created
Step 57: Navigate back to Configure server access
Service role: aws-elasticbeanstalk-service-role
EC2 instance profile: AbstractionRole.
EC2 key pair — optional: CloudGlossary
Click Next
Step 58: Set up networking, database, and tags — optional
VPC: defaultVPC
Public IP address: ✔ Enable
Instance Subnets: ✔ Check all.
Enable Database
Choose database subnets: ✔ Select all.
Database settings: Leave default except for Username and Password
Username: admin
Password: AdminPassword#2026
Availability: High (Multi-AZ)
Database deletion policy: Delete.
Click Next.
Step 59: Configure instance traffic and scaling — optional
▼ Instances
Root volume (boot device).
Root volume type: General Purpose 3 (SSD) ▼
Scroll to EC2 Security Groups
Check CloudGlossarySG
▼ Capacity
Auto scaling group
Environment type: Load balanced.
Min Instances: 2
Max Instances: 4
Fleet composition: On-Demand instances
Architecture: x86_64
Instance types. Select t2.small
Leave the rest as default.
Load balancer network settings
Load balancer subnets: select All.
Load Balancer Type:
Select Application Load Balancer.
Select Dedicated.
Listeners: 80
Processes: default.
Leave the rest as default.
Click Next
Step 60: Configure updates, monitoring, and logging — optional
▼ Monitoring
Health reporting: Basic.
▼ Managed platform updates
Managed updates: Uncheck.
Leave the rest as default.
Click Next.
Step 61: Review
Click Create.
🔁Blue Banner: Elastic Beanstalk is launching your environment. This will take a few minutes.
⚠️ Observe Elastic Beanstalk in action as it spins up your resources in the Events Section.
✅Green banner: Environment successfully launched..
Step 62: Health: ✅Green
Click on the Domain link
💡Verification: You should see the following message displayed on your browser:
Welcome to Your Elastic Beanstalk Application
Congratulations! Your Python application is now running on your own dedicated environment in the AWS Cloud.
⚠️ Scroll Further and analyze the page to familiarize yourself with Elastic Beanstalk capabilities and features
If you want to see the Instances launched by Beanstalk, you can head over to your Instances page.
Step 63: Click on the AbstractionApp instance.
Copy the Public IPv4 address, and paste it into your browser.
⚠️Make sure it begins with http:// (Port 80) and not https:// (Port 443). You will received ERR_CONNECTION_TIMED_OUT if it begins with https:// because the Security group and the app associated with your instance is open on Port 80 (HTTP) and not Port 443 (HTTPS).
💡Verification: You should see the following message displayed on your browser:
Welcome to Your Elastic Beanstalk Application
Congratulations! Your Python application is now running on your own dedicated environment in the AWS Cloud.
🏁End of Building Tutorial 🏁
Clean Up Procedure
⚠️Terminate Resources⚠️
Don’t get a Bill Shock by leaving unnecessary resources running.
- Navigate to Elastic Beanstalk and Terminate your Application.
- Navigate to EC2 and Terminate your Instances.
- Navigate to Security Groups and Delete your Security Groups.
- Navigate to Auto Scaling Groups and Delete your Launch Template.
- Navigate to Load balancers and Delete your Load Balancer.
- Navigate Target Groups and Delete your Target Group.
- Login with your Root User Account, and Remove All Permissions and Policies associated with your IAM Account.
⛔ End of Cleaning Up Protocol ⛔
Building Tutorial Overview
EC2 Approach
Low Abstraction
- Manually configured security groups
- Manually set up auto scaling groups
- Manually configured load balancers
- Manually managed target groups
- Required deep understanding of AWS networking
- Multiple steps and configuration screens
- Direct control over every component
Elastic Beanstalk Approach
High Abstraction
- Uploaded code and selected platform
- Beanstalk automatically created EC2 instances
- Beanstalk automatically configured load balancing
- Beanstalk automatically set up auto scaling
- Beanstalk automatically managed security groups
- Single deployment process
- Focus on application, not infrastructure
Key Observations
1. Time Investment: EC2 required significantly more time and steps
2. Complexity: EC2 demanded understanding of multiple AWS services
3. Error Potential: More manual steps mean more opportunities for mistakes
4. Maintenance: EC2 requires ongoing manual maintenance and updates
5. Speed to Market: Beanstalk gets you running faster
We observed how Elastic Beanstalk is an abstraction of EC2. With EC2, you are responsible for setting up everything yourself: launching servers, installing software like Python, and managing scaling, load balancing, and updates.
In contrast, Elastic Beanstalk simplified this process by letting you upload your code, and it automatically handled the underlying tasks for you.
Behind the scenes, Beanstalk still uses EC2 instances, but it abstracts away the complexity, so you can focus on building and running your application instead of managing infrastructure.
Summary
Abstraction is a universal concept that transcends industries, from mathematics and engineering to art and business, serving as a powerful tool that simplifies complex realities by hiding unnecessary details while emphasizing essential features.
Whether it’s grouping numbers into mathematical sets, designing cars that focus on functional requirements rather than engine mechanics, or creating non-representational art that conveys emotions through colors and shapes, abstraction enables us to comprehend, communicate, and innovate more effectively by reducing cognitive load.
In cloud computing, this same principle applies as cloud providers use abstraction to conceal infrastructure complexity, offering pre-built services and managed platforms that allow users to focus on their applications rather than underlying technical details much like how automatic cars handle gear changes automatically while manual cars require direct control over every mechanical aspect.
This abstraction doesn’t eliminate the underlying complexity, instead, it shifts the responsibility of managing intricate technical components from the user to the cloud provider, creating a more accessible and user-friendly experience that accelerates innovation and reduces the barrier to entry for sophisticated technology solutions.
Prerequisites
You want to understand the concept Abstraction in the cloud.
Theory
- Abstraction
- Abstraction as a Concept Across Disciplines
- Abstraction in the Cloud
- Putting It All Together with an Analogy: Automatic Vehicle
- Concluding Remarks: The Impact of Artificial Intelligence on Abstraction
Hands-On
- Add Additional Permissions to Your IAM Account
- Create an IAM EC2 Instance Profile for Elastic Beanstalk
- Build Using Your IAM Account
- Reset IAM User Password
- Launch EC2 Instances
- Configure Auto Scaling
- Setup Load Balancing
- Create Sample Application with Elastic Beanstalk
Cloud Glossary Terms In This Article
- AutoScaling
- Availability Zones
- Database
- Firewall
- Compute
- Least Privilege
- Load Balancing
- Monitoring
- Networking
- Regions
- Security
- Snapshot
- Storage
- Tagging
- Virtual Private Cloud
Additional Resources
What is Amazon EC2?
Amazon Elastic Compute Cloud (Amazon EC2) is a web service that provides secure, resizable compute capacity in the cloud.
What is AWS Elastic Beanstalk?
With Elastic Beanstalk you can deploy web applications into the AWS Cloud on a variety of supported platforms.
You build and deploy your applications.
Elastic Beanstalk provisions Amazon EC2 instances, configures load balancing, sets up health monitoring, and dynamically scales your environment.
Understanding concepts in Elastic Beanstalk
An Elastic Beanstalk application is a container for Elastic Beanstalk components, including environments, versions, and environment configurations.
Within an Elastic Beanstalk application, you manage all the resources relevant to running your code.
Why Elastic Beanstalk?
Elastic Beanstalk is a service for deploying and scaling web applications and services. Upload your code and Elastic Beanstalk automatically handles the deployment — from capacity provisioning, load balancing, and auto scaling to application health monitoring
Abstractions: Creating the best developer experience
Alternatives to Reading
Listen on Spotify
Cloud Computing Simplified: A Cloud Glossary for Beginners
Episode Name: Abstraction
By: Ntombizakhona Mabaso
Concluding Remarks
You will encounter the term abstraction frequently when reading documentation about cloud services, especially when it comes to newer, evolved releases.
Your task is not necessarily to take action, but rather to understand and appreciate what the cloud provider has abstracted away to simplify certain services for your benefit.
The Impact of Artificial Intelligence on Abstraction
The emergence of Artificial Intelligence is creating unprecedented levels of abstraction in cloud computing, fundamentally transforming how we interact with technology infrastructure. AI is not just another layer of abstraction, it’s a paradigm shift that makes complex systems accessible through natural language and intelligent automation.
AI-Powered Infrastructure Management
Modern AI systems can now provision, configure, and optimize cloud resources based on simple descriptions of what you want to achieve. Instead of manually configuring dozens of services, you can describe your application requirements in plain English, and AI systems automatically translate these into optimal cloud architectures.
Intelligent Code Generation
AI coding assistants abstract away the complexity of writing boilerplate code, configuration files, and even entire applications. This represents a new form of abstraction where the barrier between human intent and technical implementation becomes increasingly thin.
Automated Decision Making
AI systems now handle complex decisions about resource allocation, scaling, security configurations, and performance optimization that previously required deep technical expertise. This creates an abstraction layer where intelligent systems manage the technical complexity while humans focus on business outcomes.
Natural Language Interfaces
Perhaps most significantly, AI enables natural language to become the new interface for cloud services. Instead of learning complex APIs, command-line tools, or graphical interfaces, users can interact with cloud infrastructure using conversational AI, representing the ultimate abstraction: making technology as accessible as human conversation.
Predictive Abstraction
AI systems can anticipate needs and automatically adjust resources, security settings, and configurations before issues arise. This predictive capability creates an abstraction where the system manages itself, reducing the cognitive load on developers and operators.
The integration of AI into cloud abstraction represents a fundamental shift toward more intuitive, intelligent, and autonomous systems. As AI continues to evolve, we can expect even higher levels of abstraction that make sophisticated cloud capabilities accessible to anyone, regardless of their technical background. This democratization of technology through AI-powered abstraction is reshaping not just how we build applications, but who can build them.
Version Control
Originally Published
27 November 2024
Updates
17 June 2025
- Adds Space Breaks
- Adds ‘Cloud Glossary Terms Mentioned in this Article’ Subheading Under Summary
- Adds ‘Alternatives To Reading’ Heading
- Adds Podcast Link
I added space breaks to enhance readability.
I added ‘Cloud Glossary Terms Mentioned in this Article’ so that the beginner can navigate the terms, especially after I have completed the Cloud Glossary.
I added ‘Alternatives To Reading’ so that the reader can consume the content in other formats such as audio or video, when such content becomes available.
– Ntombizakhona
21 January 2026
- Adds ‘The Impact of Artificial Intelligence on Abstraction Under Concluding Remarks
- Adds AI Generated Images to Enhance the Article
- Updated Code
- Added more Elastic Beanstalk resources










