Cloud Computing and Distributed Systems Fundamentals
What Is Cloud Computing
Cloud computing delivers computing resources (servers, storage, databases, networking) on demand over the internet.
On-Premises vs Cloud:
On-Premises: buy, install, and manage your own servers
→ High upfront cost, slow to change, requires dedicated staff
Cloud: use and pay for only what you need
→ No upfront cost, elastic scaling, reduced management burden
→ Long-term cost comparison analysis still needed
Cloud Service Models
IaaS (Infrastructure as a Service):
→ Provides virtual servers, storage, and networking
→ User manages OS, middleware, and applications
→ Examples: AWS EC2, Google Compute Engine
PaaS (Platform as a Service):
→ Provides a development and deployment platform
→ User only manages application code (infrastructure is automated)
→ Examples: Google App Engine, Heroku, AWS Elastic Beanstalk
SaaS (Software as a Service):
→ Subscribe to finished software
→ Provider manages infrastructure, platform, and application
→ Examples: Gmail, Slack, Salesforce, Office 365
Key Cloud Services (AWS)
Compute:
EC2: Virtual servers (instances)
Lambda: Serverless function execution (event-driven)
ECS/EKS: Container management (Docker/Kubernetes)
Storage:
S3: Object storage (images, files, static assets)
EBS: Block storage attached to EC2 (virtual HDD)
EFS: Shared file system
Databases:
RDS: Managed relational DB (MySQL, PostgreSQL)
DynamoDB: Managed NoSQL
ElastiCache: Redis/Memcached cache
Networking:
CloudFront: CDN (global content delivery)
Route 53: DNS service
VPC: Virtual Private Cloud
Scalability
Vertical Scaling (Scale Up):
→ Upgrade server hardware (add CPU, RAM)
→ Has physical limits, single point of failure
Horizontal Scaling (Scale Out):
→ Add more servers
→ Theoretically unlimited
→ Requires a load balancer
Load Balancing:
→ Distribute traffic across multiple servers
→ Round Robin, Least Connections, IP Hash
→ Health checks automatically remove failed servers
Microservice Architecture
Monolithic:
→ All features in a single deployable unit
→ Simple but hard to scale and change
Microservices:
→ Each feature separated into an independent service
→ Each service deployed and scaled independently
→ Services communicate via APIs (REST, gRPC, message queues)
Pros: Independent deployment, technology diversity, fault isolation
Cons: Complex operations, distributed transactions, network overhead
Real world: Used by large-scale services like Netflix and Amazon
CAP Theorem
In a distributed system, you cannot guarantee all three simultaneously:
Consistency:
→ All nodes see the same data at the same time
Availability:
→ Every request receives a response (even with failed nodes)
Partition Tolerance:
→ System continues to operate despite network partitions
In practice:
→ P (Partition Tolerance) is required in distributed systems
→ CP: Consistency + Partition Tolerance (HBase, MongoDB with config)
→ AP: Availability + Partition Tolerance (Cassandra, DynamoDB)
→ Choose based on your trade-off requirements
Key Takeaways
IaaS(virtual servers) > PaaS(platform) > SaaS(finished app) — decreasing management responsibility Horizontal scaling (more servers) + load balancer = the core of cloud scalability CAP theorem: choose only 2 of Consistency, Availability, and Partition Tolerance Serverless (Lambda): deploy only code, no infrastructure management needed
O
OIYO Editorial
Content Editor지식 인큐베이터이자 전문 콘텐츠 크리에이터. 경영, 경제, 법률 및 실생활에 유용한 실무/자격증 중심의 깊이 있는 정보를 연구하고 공유합니다.