Cloud Computing Notes
Cloud Computing
- Definition: On-demand delivery of computing power, database storage, applications, and other IT resources through a cloud service platform via the internet with pay-as-you-go pricing.
- Key component: "via internet"
- Requires an internet connection to access resources.
Cloud Computing Architecture
- Consists of two main parts:
- Front End: The interface through which users connect to the cloud.
- Back End: Physical peripherals containing:
- Data storage
- Application servers
- Network control
Types of Cloud Computing
- Public Cloud:
- Suitable for data that doesn't need protection.
- Private Cloud:
- Used for sensitive or private data that requires restricted access.
- Hybrid Cloud:
- Combines public and private clouds.
- Non-sensitive data goes to the public cloud, while sensitive data remains in the private cloud.
Application Layers in Cloud Computing
Bottom Layer (IaaS - Infrastructure as a Service):
- Provides bare metal (hardware).
- Requires manual installation of the operating system and applications.
Middle Layer (PaaS - Platform as a Service):
- Includes hardware with the operating system pre-installed.
- Reduces the need for OS installation.
Top Layer (SaaS - Software as a Service):
- Provides a turnkey solution with bare metal, operating system, and applications pre-installed.
- Ready to use without configuration.
Cost vs. Effort: The bottom layer is less expensive but requires more work, whereas the top layer requires little to no work but is more expensive.
Global Infrastructure (AWS Example)
Benefits for Global Expansion:
- Using a single provider like AWS ensures compatibility across different geographical locations (Asia, Europe, Middle East).
- Avoids compatibility issues that arise from using different architectures in different countries.
- Reduces overhead by eliminating the need for application programming interfaces (APIs) for communication between systems. Interface to connect two different systems.
Security Compliance:
- AWS handles compliance with local regulations and legal systems, simplifying expansion into new regions.
AWS Services
- AWS offers numerous services that can be combined to create custom solutions.
- Services are like Lego pieces that can be assembled based on specific needs.
Managing AWS Services
- Console User Interface: Allows manual management of cloud resources.
- Command Line Interface (CLI): Enables automation of repetitive tasks through scripts.
- API (Application Programming Interface):
- AWS provides a Software Development Kit (SDK) to develop custom APIs for compatibility with other providers.
Specific AWS Services
- EC2 (Elastic Compute Cloud):
- Provides scalability by allowing users to increase or decrease CPU power and memory as needed.
- Enables cost savings by scaling down resources during slow periods and scaling up during peak seasons.
- Demonstrates the concept of elastic computing.
- Lambda:
- Allows programmers to test software in different environments.
- S3 (Simple Storage Service):
- Offers scalable storage that can be adjusted as needed.
- Provides flexibility in storage management.
AWS Advertising and Considerations
- AWS promotes its services based on durability, scalability, security, and cost-effectiveness.
- Other cloud providers like Oracle Cloud Computing and Microsoft Azure also have their own advertising campaigns.
- It's crucial to evaluate whether the features and services meet specific needs before purchasing.
Databases in AWS
AWS supports both relational databases (using SQL) and non-relational databases (NoSQL).
Relational Databases:
- Amazon Aurora: MySQL and PostgreSQL compatible.
Non-Relational Databases:
- Amazon DynamoDB: Does not require SQL.
- Use cases depend on preference for SQL and database requirements.
MariaDB:
- A free alternative to MySQL.
- If a business uses a database, it is better to use a paid application instead of free, because when something goes wrong, the company can provide support.
Identity and Access Management (IAM)
- Allows administrators to grant permissions to users for different tasks.
- Enables the creation of user accounts for employees.
- AWS charges per account, which can accumulate significant costs as the number of accounts grows.
- Example: 100 accounts at $0.50/month = $50/month or $600/year
- Example: 1,000 employees would be 500 per month to maintain those accounts, which totals 6,000 a year.
- While IAM is useful, its cost implications must be considered.
Discussion: Cloud Computing vs. In-House Systems
Access:
- In-House: Can use remote access VPN connections via dedicated services (e.g., AT&T, Verizon) without relying on the internet.
- Cloud Computing: Requires an internet connection, so services are inaccessible if the connection fails.
Security:
- Legal aspects: Consider how cloud providers handle law enforcement requests for data access (court order requirements).
- Putting data in a third party's hands raises security concerns.
Pricing:
- Different cloud providers (e.g., AWS, Google Drive) have varying pricing structures for storage, retrieval, and uploads.
- Need to study and verify which structure is a better deal for you.
It is a give and take situation when comparing cloud computing vs in-house solutions.
Assignment: Key Concepts
- Cloud Computing: On-demand delivery of computing power, database storage, applications, and other IT resources through a cloud service platform via the internet with pay-as-you-go pricing.
- S3 (Simple Storage Service): Provides storage and easy access to computing power.
- Lambda: A service for developing software applications.
- IAM (Identity and Access Management): Manages access to resources.
Analogy
- AWS services are like Lego pieces that can be combined to create custom solutions.
Examples of Services
- EC2, S3, and IAM are examples of services provided by AWS.