Cloud Databases:
Relational Database Management System (RDBMS):
Structured data storage with predefined schemas.
Characteristics: ACID compliance, strong consistency.
Cloud RDBMS services: Amazon RDS, Azure SQL Database, Google Cloud SQL.
Use cases: Applications requiring structured data and complex queries.
Non-Relational Databases:
- Flexible, schema-less data storage.
Use cases for NoSQL: Handling unstructured or semi-structured data.
Examples: MongoDB, Amazon DynamoDB.
Advantages of cloud DB:
High availability and disaster recovery strategies: Replication, backups, snapshots.
Security measures: Encryption at rest and in transit, access controls.
cost effecient.
walk through on settingup RDBMS and Dynamodb in aws, querying in RDBMS
Cloud storage devices:
Bucket:
A bucket is a container for storing objects (files) in cloud object storage services like Amazon S3, Google Cloud Storage, or Azure Blob Storage.
Use cases: Ideal for storing unstructured data such as images, videos, backups, and documents and also it serves static assets for websites.
Scalability: Buckets provide virtually limitless storage capacity, making them suitable for storing large amounts of data.
Object-Based: Data is stored as objects, each with its unique identifier .
Features: Scalability, durability, accessibility, cost-effectiveness.
Handson: Demonstrating how to create buckets, upload objects, and set permissions.
Network Attached Storage (NAS):
Network Attached Storage (NAS) is a dedicated device or storage server that provides shared storage to multiple users and clients over a network.
Imagine you have a home media server that stores all your movies, music, photos, and documents. Instead of keeping these files on individual computers, you decide to set up a NAS device to centralize storage and make the files easily accessible to all devices in your home network.
or
Imagine you work in a small company where multiple employees need access to important project files and documents. To streamline file sharing and collaboration, the company decides to set up a NAS.
Key Points :
Shared Access: NAS allows multiple clients (computers) to access the same storage resources simultaneously.
File-Level Access: Clients can access and manage files and directories like a traditional file system.
Centralized Storage: NAS consolidates storage resources in a central location, enhancing data management.
Scalability: NAS systems can scale by adding additional storage units or capacity.
Examples: AWS storage Gateway, Azure files, Google Cloud Filestore.
Persistent Disk (Block Storage):
Persistent Disk is a block storage service provided by cloud providers that allows you to attach and manage block storage volumes to virtual machines.
it is a type of storage that provides durable and reliable data storage, even when the associated virtual machine (VM) is shut down or terminated. Persistent disks are used to store data, applications, and operating systems.
features: data persistence, scalability, and high availability.
Key Points:
Block-Level Storage: Data is stored in fixed-sized blocks
High Performance: Suitable for applications requiring high I/O performance, like databases.
Scalable: Persistent disks can be resized, and you can attach multiple disks to a single virtual machine.
Use Cases: Running databases, applications with high performance requirements, and data-intensive workloads.
examples: Amazon Elastic Block Store, Google Cloud Persistent Disk
Caching:
Caching is a technique used to store frequently accessed data in a temporary and fast-access storage layer. This helps improve application performance by reducing the need to retrieve data from slower, primary storage sources. Caching is particularly effective for read-heavy workloads.
Example: Netflix uses caching based system in India.
Key Points :
Latency Reduction: Caches help reduce the time it takes to access data, improving application performance.
Types:
Memory Caching or CPU Cache: Modern CPUs have multiple levels of cache (L1, L2, L3) that store frequently accessed data to reduce the time it takes to retrieve data from main memory (RAM).
Disk Caching: Operating systems and storage systems often use a portion of RAM as a disk cache, storing frequently accessed data from disks to speed up read operations.
Browser Cache: Web browsers store copies of web pages, images, and other resources in a local cache to avoid re-downloading them on subsequent visits.
Network Caching:
Content Delivery Networks (CDNs): CDNs distribute cached copies of web content (images, videos, files) to servers located closer to users, reducing latency and improving content delivery speed.
Database Caching:
Query Result Caching: Database systems can cache the results of frequently executed queries to avoid repeating expensive database operations.
Content Distribution: CDNs (Content Delivery Networks) replicate cached content to multiple geographic locations, reducing latency.
Usage: Used to speed up access to frequently used data, such as web content, database queries, and APIs.