├── AWS IAM ├── 02-users.md ├── 03-groups.md ├── 04-roles.md ├── 05-policies.md ├── 06-best-practices.md ├── 07-troubleshooting.md └── README.md ├── AWS_Course.png ├── Cloud_Computing_Basics ├── 01-Introduction-to-Cloud-Computing.md ├── 02-Cloud-Service-Models.md ├── 03-Cloud-Deployment-Models.md ├── 04-Benefits-of-Cloud-Computing.md ├── README.md └── examples │ └── Example-Use-Cases.md ├── EC2 ├── 01-Introduction-to-EC2.md ├── 02-Launch-an-EC2-Instance.md ├── 03-Security-Groups.md ├── 04-Elastic-IPs.md ├── 05-AMI.md ├── 06-Example-Use-Cases-and-Case-Studies.md └── README.md ├── RDS ├── RDS.png ├── RDS_Advanced_Topics.md ├── RDS_Best_Practices.md ├── RDS_Overview.md ├── RDS_Setup_Guide.md ├── RDS_Use_Cases.md └── README.md ├── README.md ├── S3 ├── 01-introduction-buckets-and-objects.md ├── 02-storage-classes-and-versioning.md ├── 03-access-control-encryption-and-policies.md ├── 04-performance-management-and-logging.md ├── 05-static-website-hosting-events-and-cost-management.md ├── 06-s3-devops-task.md ├── README.md └── s3.png └── VPC ├── Components.md ├── Configuration.md ├── Overview.md ├── README.MD ├── UseCases.md ├── VPC.png └── VPC_Diagram.png /AWS IAM/02-users.md: -------------------------------------------------------------------------------- 1 | # AWS IAM Users 2 | 3 | ## Overview 4 | IAM users represent individuals or services that need access to AWS resources. Each user has unique credentials. 5 | 6 | ## Key Points 7 | - **Credentials**: Users have passwords and access keys. 8 | - **Permissions**: Permissions are usually managed via groups. 9 | 10 | ## Practical Examples 11 | 12 | ### AWS CLI 13 | 14 | - **Create a User**: 15 | ```bash 16 | aws iam create-user --user-name Alice 17 | ``` 18 | 19 | - **Assign a Policy to a User**: 20 | ```bash 21 | aws iam attach-user-policy --user-name Alice --policy-arn arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess 22 | ``` 23 | 24 | ### AWS Management Console 25 | 26 | - **Create a User**: 27 | 1. Sign in to the [AWS Management Console](https://aws.amazon.com/console/). 28 | 2. Open the IAM console at [IAM Dashboard](https://console.aws.amazon.com/iam/home). 29 | 3. In the navigation pane, click **Users**. 30 | 4. Click **Add user**. 31 | 5. Enter a **User name**, select **Access type** (e.g., **Programmatic access** and/or **AWS Management Console access**). 32 | 6. Click **Next: Permissions**. 33 | 7. Set permissions as needed and click **Next: Tags**. 34 | 8. (Optional) Add tags and click **Next: Review**. 35 | 9. Click **Create user**. 36 | 37 | - **Assign a Policy to a User**: 38 | 1. In the IAM console, go to **Users**. 39 | 2. Select the user you want to modify. 40 | 3. Click the **Permissions** tab. 41 | 4. Click **Add permissions**. 42 | 5. Choose **Attach policies directly**. 43 | 6. Search for and select the policy (e.g., **AmazonS3ReadOnlyAccess**). 44 | 7. Click **Next: Review**, then **Add permissions**. 45 | 46 | **Next:** [AWS IAM Groups](03-groups.md) 47 | -------------------------------------------------------------------------------- /AWS IAM/03-groups.md: -------------------------------------------------------------------------------- 1 | # AWS IAM Groups 2 | 3 | ## Overview 4 | IAM groups allow you to manage permissions for multiple users collectively. 5 | 6 | ## Key Points 7 | - **Permissions**: Users in a group inherit the group’s policies. 8 | - **Organization**: Group users by roles (e.g., Developers, Admins). 9 | 10 | ## Practical Examples 11 | 12 | ### AWS CLI 13 | 14 | - **Create a Group**: 15 | ```bash 16 | aws iam create-group --group-name Developers 17 | ``` 18 | 19 | - **Add User to Group**: 20 | ```bash 21 | aws iam add-user-to-group --user-name Alice --group-name Developers 22 | ``` 23 | 24 | ### AWS Management Console 25 | 26 | - **Create a Group**: 27 | 1. Sign in to the [AWS Management Console](https://aws.amazon.com/console/). 28 | 2. Open the IAM console at [IAM Dashboard](https://console.aws.amazon.com/iam/home). 29 | 3. In the navigation pane, click **Groups**. 30 | 4. Click **Create New Group**. 31 | 5. Enter a **Group name** and click **Next Step**. 32 | 6. Attach policies to the group as needed and click **Next Step**. 33 | 7. Review and click **Create Group**. 34 | 35 | - **Add User to Group**: 36 | 1. In the IAM console, go to **Groups**. 37 | 2. Select the group you want to modify. 38 | 3. Click the **Users** tab. 39 | 4. Click **Add users to group**. 40 | 5. Select the users to add and click **Add users**. 41 | 42 | **Next:** [AWS IAM Roles](04-roles.md) 43 | -------------------------------------------------------------------------------- /AWS IAM/04-roles.md: -------------------------------------------------------------------------------- 1 | # AWS IAM Roles 2 | 3 | ## Overview 4 | IAM roles are used to delegate access with temporary credentials to AWS resources. 5 | 6 | ## Key Points 7 | - **Assume Role**: Roles can be assumed by users, services, or accounts. 8 | - **Temporary Credentials**: Roles issue temporary security credentials. 9 | 10 | ## Practical Examples 11 | 12 | ### AWS CLI 13 | 14 | - **Create a Role**: 15 | ```bash 16 | aws iam create-role --role-name LambdaExecutionRole --assume-role-policy-document file://trust-policy.json 17 | ``` 18 | 19 | - **Attach Policy to Role**: 20 | ```bash 21 | aws iam attach-role-policy --role-name LambdaExecutionRole --policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole 22 | ``` 23 | 24 | ### AWS Management Console 25 | 26 | - **Create a Role**: 27 | 1. Sign in to the [AWS Management Console](https://aws.amazon.com/console/). 28 | 2. Open the IAM console at [IAM Dashboard](https://console.aws.amazon.com/iam/home). 29 | 3. In the navigation pane, click **Roles**. 30 | 4. Click **Create role**. 31 | 5. Choose the type of trusted entity (e.g., **AWS service**) and click **Next: Permissions**. 32 | 6. Select the policies to attach and click **Next: Tags**. 33 | 7. (Optional) Add tags and click **Next: Review**. 34 | 8. Enter a **Role name** and click **Create role**. 35 | 36 | - **Attach Policy to Role**: 37 | 1. In the IAM console, go to **Roles**. 38 | 2. Select the role you want to modify. 39 | 3. Click the **Permissions** tab. 40 | 4. Click **Add permissions**. 41 | 5. Choose **Attach policies directly**. 42 | 6. Search for and select the policy (e.g., **AWSLambdaBasicExecutionRole**). 43 | 7. Click **Next: Review**, then **Add permissions**. 44 | 45 | **Next:** [AWS IAM Policies](05-policies.md) -------------------------------------------------------------------------------- /AWS IAM/05-policies.md: -------------------------------------------------------------------------------- 1 | # AWS IAM Policies 2 | 3 | ## Overview 4 | IAM policies are JSON documents that specify permissions. They determine what actions are allowed or denied for specific resources. 5 | 6 | ## Key Points 7 | - **Managed Policies**: AWS or customer-created policies that can be attached to multiple entities. 8 | - **Inline Policies**: Policies directly attached to a single user, group, or role. 9 | 10 | ## Practical Examples 11 | 12 | ### AWS CLI 13 | 14 | - **Create an Inline Policy**: 15 | ```json 16 | { 17 | "Version": "2012-10-17", 18 | "Statement": [ 19 | { 20 | "Effect": "Allow", 21 | "Action": "s3:ListBucket", 22 | "Resource": "arn:aws:s3:::example_bucket" 23 | } 24 | ] 25 | } 26 | ``` 27 | ```bash 28 | aws iam put-user-policy --user-name Alice --policy-name ListS3Policy --policy-document file://policy.json 29 | ``` 30 | 31 | - **Attach a Managed Policy**: 32 | ```bash 33 | aws iam attach-user-policy --user-name Alice --policy-arn arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess 34 | ``` 35 | 36 | ### AWS Management Console 37 | 38 | - **Create an Inline Policy**: 39 | 1. Sign in to the [AWS Management Console](https://aws.amazon.com/console/). 40 | 2. Open the IAM console at [IAM Dashboard](https://console.aws.amazon.com/iam/home). 41 | 3. In the navigation pane, click **Users**, then select the user. 42 | 4. Click the **Permissions** tab and then **Add inline policy**. 43 | 5. Enter the policy JSON or use the visual editor, then click **Review policy**. 44 | 6. Enter a **Policy name** and click **Create policy**. 45 | 46 | - **Attach a Managed Policy**: 47 | 1. In the IAM console, go to **Users**, then select the user. 48 | 2. Click the **Permissions** tab and then **Add permissions**. 49 | 3. Choose **Attach policies directly**. 50 | 4. Search for and select the policy (e.g., **AmazonS3ReadOnlyAccess**). 51 | 5. Click **Next: Review**, then **Add permissions**. 52 | 53 | **Next:** [AWS IAM Best Practices](06-best-practices.md) -------------------------------------------------------------------------------- /AWS IAM/06-best-practices.md: -------------------------------------------------------------------------------- 1 | # AWS IAM Best Practices 2 | 3 | ## Overview 4 | Following best practices ensures that your IAM setup is secure, manageable, and scalable. 5 | 6 | ## Key Practices 7 | 8 | 1. **Use Least Privilege**: Grant only the permissions necessary for users to perform their tasks. 9 | 2. **Use Groups**: Manage permissions via groups rather than assigning policies directly to users. 10 | 3. **Enable MFA**: Use Multi-Factor Authentication (MFA) for an additional layer of security. 11 | 4. **Regularly Review Permissions**: Periodically review and adjust permissions to ensure they align with current needs. 12 | 5. **Rotate Credentials**: Regularly rotate access keys and passwords. 13 | 6. **Use Roles for AWS Services**: Assign roles to AWS services rather than using access keys for better security. 14 | 15 | ## Practical Examples 16 | 17 | - **Implementing Least Privilege**: Create a policy that grants only the required actions (e.g., read-only access). 18 | - **Configuring MFA**: 19 | 1. Sign in to the [AWS Management Console](https://aws.amazon.com/console/). 20 | 2. Open the IAM console at [IAM Dashboard](https://console.aws.amazon.com/iam/home). 21 | 3. In the navigation pane, click **Users**, then select the user. 22 | 4. Click the **Security credentials** tab. 23 | 5. In the **Multi-Factor Authentication (MFA)** section, click **Manage**. 24 | 6. Follow the instructions to configure MFA. 25 | 26 | **Next:** [AWS IAM Troubleshooting](07-troubleshooting.md) -------------------------------------------------------------------------------- /AWS IAM/07-troubleshooting.md: -------------------------------------------------------------------------------- 1 | # AWS IAM Troubleshooting 2 | 3 | ## Common Issues and Solutions 4 | 5 | ### Issue 1: Access Denied Errors 6 | 7 | - **Problem**: Users receive "Access Denied" errors. 8 | - **Solution**: 9 | 1. Check the user's permissions and ensure they have the correct policies attached. 10 | 2. Review the IAM policy and ensure it grants the required actions. 11 | 12 | ### Issue 2: Policies Not Taking Effect 13 | 14 | - **Problem**: Policies seem to not apply correctly. 15 | - **Solution**: 16 | 1. Verify that the policy is correctly attached to the user, group, or role. 17 | 2. Use IAM Policy Simulator to test the policy and identify issues. 18 | 19 | ### Issue 3: Role Assumption Failures 20 | 21 | - **Problem**: Roles cannot be assumed. 22 | - **Solution**: 23 | 1. Check the trust policy of the role to ensure it allows the intended entities to assume the role. 24 | 2. Verify the role's permissions and make sure they are correctly configured. 25 | 26 | ## Practical Examples 27 | 28 | - **Using IAM Policy Simulator**: 29 | 1. Sign in to the [AWS Management Console](https://aws.amazon.com/console/). 30 | 2. Open the IAM console at [IAM Dashboard](https://console.aws.amazon.com/iam/home). 31 | 3. In the navigation pane, click **Policy Simulator**. 32 | 4. Enter the policy details and simulate actions to test permissions. 33 | -------------------------------------------------------------------------------- /AWS IAM/README.md: -------------------------------------------------------------------------------- 1 | # AWS IAM (Identity and Access Management) 2 | 3 | AWS IAM provides secure control over who can access your AWS resources and how they can do so. 4 | 5 | This repository contains notes on AWS Identity and Access Management (IAM). The following sections include information on Users, Groups, Roles, and Policies, with practical examples for both AWS CLI and AWS Management Console. 6 | 7 | ## Table of Contents 8 | - [Users](02-users.md) 9 | - [Groups](03-groups.md) 10 | - [Roles](04-roles.md) 11 | - [Policies](05-policies.md) 12 | - [Best Practices](06-best-practices.md) 13 | - [Troubleshooting](07-troubleshooting.md) 14 | 15 | ## Hands-On Learning 16 | 17 | - **[IAM Course with Labs](https://youtu.be/C1MnZYziA8k)**: Engage in practical IAM labs. 18 | 19 | 20 | -------------------------------------------------------------------------------- /AWS_Course.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N4si/Learn_AWS_from_Scratch/9d64f9841539bc892f90a241e4b6f55e76a6fb37/AWS_Course.png -------------------------------------------------------------------------------- /Cloud_Computing_Basics/01-Introduction-to-Cloud-Computing.md: -------------------------------------------------------------------------------- 1 | # Introduction to Cloud Computing 2 | 3 | Cloud computing provides on-demand computing resources over the internet. It allows you to access, store, and process data using remote servers rather than local hardware. 4 | 5 | ## Key Concepts 6 | 7 | - **Cloud Computing**: Delivering computing services like servers, storage, databases, and software over the internet. 8 | - **Virtualization**: Technology that allows you to create virtual (rather than physical) versions of resources. 9 | - **Scalability**: Ability to easily scale resources up or down based on demand. 10 | 11 | ## Benefits 12 | 13 | - **Cost Efficiency**: Pay only for what you use. 14 | - **Flexibility**: Scale resources as needed. 15 | - **Accessibility**: Access resources from anywhere with an internet connection. 16 | -------------------------------------------------------------------------------- /Cloud_Computing_Basics/02-Cloud-Service-Models.md: -------------------------------------------------------------------------------- 1 | # Cloud Service Models 2 | 3 | Cloud computing offers various service models, each catering to different needs and use cases. Understanding these models helps you choose the right approach for your applications and infrastructure. 4 | 5 | ## Service Models 6 | 7 | - **Infrastructure as a Service (IaaS)**: Provides virtualized computing resources over the internet, allowing you to manage virtual machines, storage, and networks. 8 | - **Example**: AWS EC2 (Elastic Compute Cloud) 9 | 10 | - **Platform as a Service (PaaS)**: Offers a platform that includes hardware and software tools over the internet, typically for application development and deployment without managing the underlying infrastructure. 11 | - **Example**: Google App Engine 12 | 13 | - **Software as a Service (SaaS)**: Delivers software applications over the internet on a subscription basis, removing the need for local installation and management. 14 | - **Example**: Microsoft Office 365 15 | 16 | - **Function as a Service (FaaS)**: A serverless computing model where you can execute code in response to events without provisioning or managing servers. This is often used for event-driven applications. 17 | - **Example**: AWS Lambda 18 | 19 | - **Desktop as a Service (DaaS)**: Provides virtual desktops hosted in the cloud, allowing users to access a desktop environment from anywhere. This model simplifies desktop management and enhances accessibility. 20 | - **Example**: Amazon WorkSpaces 21 | 22 | - **Database as a Service (DBaaS)**: Offers database management systems as a cloud service, eliminating the need to install and manage database software and hardware. 23 | - **Example**: Amazon RDS (Relational Database Service) 24 | 25 | - **Storage as a Service (STaaS)**: Provides scalable storage solutions over the internet, allowing you to store and manage data without investing in physical storage infrastructure. 26 | - **Example**: AWS S3 (Simple Storage Service) 27 | 28 | ## Choosing a Service Model 29 | 30 | - **IaaS**: Ideal for managing and customizing virtual machines, storage, and networking. 31 | - **PaaS**: Best for developing and deploying applications without dealing with the underlying hardware or software layers. 32 | - **SaaS**: Suitable for using fully developed and managed software applications directly. 33 | - **FaaS**: Great for executing code in response to events and automating backend processes without managing servers. 34 | - **DaaS**: Useful for providing remote desktop environments to users with centralized management. 35 | - **DBaaS**: Ideal for managing database systems without handling the complexities of database administration. 36 | - **STaaS**: Perfect for scalable, secure, and flexible data storage solutions. 37 | 38 | Each service model offers different levels of control, flexibility, and management, allowing you to select the right approach based on your needs and goals. 39 | -------------------------------------------------------------------------------- /Cloud_Computing_Basics/03-Cloud-Deployment-Models.md: -------------------------------------------------------------------------------- 1 | # Cloud Deployment Models 2 | 3 | Cloud deployment models define how cloud resources are deployed and accessed. 4 | 5 | ## Deployment Models 6 | 7 | - **Public Cloud**: Resources are owned and operated by a third-party provider and shared with other customers. Example: AWS, Azure. 8 | - **Private Cloud**: Resources are used exclusively by a single organization. Example: On-premises data center. 9 | - **Hybrid Cloud**: Combines public and private clouds, allowing data and applications to be shared between them. Example: Using AWS for public cloud and an on-premises data center for private cloud. 10 | 11 | ## Use Cases 12 | 13 | - **Public Cloud**: Suitable for applications with varying demand. 14 | - **Private Cloud**: Ideal for sensitive data requiring high security. 15 | - **Hybrid Cloud**: Offers flexibility and scalability while maintaining security. 16 | -------------------------------------------------------------------------------- /Cloud_Computing_Basics/04-Benefits-of-Cloud-Computing.md: -------------------------------------------------------------------------------- 1 | # Benefits of Cloud Computing 2 | 3 | Cloud computing provides numerous benefits to organizations and individuals. 4 | 5 | ## Key Benefits 6 | 7 | - **Cost Savings**: Reduce or eliminate the need for hardware and software investments. 8 | - **Scalability**: Quickly scale resources up or down based on needs. 9 | - **Flexibility**: Access resources from any location with internet connectivity. 10 | - **Disaster Recovery**: Enhanced backup and recovery options. 11 | - **Automatic Updates**: Providers handle updates and patches for you. 12 | 13 | ## Example Scenarios 14 | 15 | - **Startups**: Can quickly deploy applications without large capital expenditures. 16 | - **Businesses**: Can scale resources to handle seasonal traffic spikes. 17 | - **Developers**: Can focus on building applications without managing infrastructure. 18 | 19 | -------------------------------------------------------------------------------- /Cloud_Computing_Basics/README.md: -------------------------------------------------------------------------------- 1 | # Cloud Computing Basics 2 | 3 | Welcome to the Cloud Computing Basics section! This folder provides an introduction to cloud computing concepts, including service models, deployment models, and key benefits. It also includes example use cases to help you understand practical applications of cloud computing. 4 | 5 | ## Content Overview 6 | 7 | - **01-Introduction-to-Cloud-Computing.md**: Basics of cloud computing, including definitions and key concepts. 8 | - **02-Cloud-Service-Models.md**: Overview of cloud service models such as IaaS, PaaS, and SaaS. 9 | - **03-Cloud-Deployment-Models.md**: Explanation of cloud deployment models including public, private, and hybrid clouds. 10 | - **04-Benefits-of-Cloud-Computing.md**: Benefits of using cloud computing for businesses and individuals. 11 | - **examples/**: Real-world examples and use cases for cloud computing. 12 | 13 | ## How to Use This Section 14 | 15 | 1. **Start with Basics**: Begin with the introduction to cloud computing to understand foundational concepts. 16 | 2. **Explore Service Models**: Learn about different cloud service models and their use cases. 17 | 3. **Understand Deployment Models**: Get familiar with deployment models and their applications. 18 | 4. **Review Benefits**: Discover the advantages of cloud computing and how it can benefit you. 19 | 5. **Check Examples**: Look at real-world examples to see how cloud computing is applied in various scenarios. 20 | 21 | ## Useful Resources 22 | 23 | - [AWS Cloud Basics](https://aws.amazon.com/getting-started/) 24 | - [Google Cloud Basics](https://cloud.google.com/learn) 25 | - [Azure Cloud Basics](https://azure.microsoft.com/en-us/resources/cloud-computing-dictionary/) 26 | 27 | Feel free to contribute by adding more content or improving existing documentation! 28 | -------------------------------------------------------------------------------- /Cloud_Computing_Basics/examples/Example-Use-Cases.md: -------------------------------------------------------------------------------- 1 | # Example Use Cases for Cloud Computing 2 | 3 | Cloud computing transforms how businesses and individuals use technology, offering flexible, scalable solutions to various challenges. Here’s a look at some real-world scenarios where cloud computing excels: 4 | 5 | ## Use Cases 6 | 7 | ### **1. E-Commerce** 8 | 9 | **Description**: Online retailers utilize cloud services to handle large volumes of traffic and secure transactions. 10 | 11 | - **Example**: **Amazon** uses AWS to manage its massive online store, ensuring that the site remains responsive even during peak shopping seasons. AWS’s scalability allows Amazon to handle sudden surges in traffic, such as during Black Friday sales. 12 | 13 | ### **2. Data Analytics** 14 | 15 | **Description**: Businesses leverage cloud computing to process and analyze large datasets, gaining insights for strategic decisions. 16 | 17 | - **Example**: **Netflix** employs AWS to analyze viewing patterns and preferences. This data helps Netflix recommend personalized content to users and optimize streaming quality. 18 | 19 | ### **3. Disaster Recovery** 20 | 21 | **Description**: Cloud-based solutions provide backup and recovery options to ensure data is safe and accessible in case of disasters. 22 | 23 | - **Example**: **Deloitte** uses Azure for disaster recovery, allowing them to quickly restore data and applications in the event of a system failure or other emergencies. This setup minimizes downtime and data loss. 24 | 25 | ### **4. Collaboration Tools** 26 | 27 | **Description**: Cloud-based tools enable teams to communicate and collaborate effectively, regardless of their physical locations. 28 | 29 | - **Example**: **Slack** is a cloud-based messaging platform used by teams worldwide. It allows real-time communication, file sharing, and integration with other productivity tools, enhancing teamwork and collaboration. 30 | 31 | ### **5. Internet of Things (IoT)** 32 | 33 | **Description**: Cloud computing supports IoT by providing scalable infrastructure to manage and analyze data from connected devices. 34 | 35 | - **Example**: **Nest** uses Google Cloud to manage data from smart thermostats and security cameras. This setup allows Nest to process and analyze data from millions of devices, providing users with smart, automated home management. 36 | 37 | ### **6. Health Care** 38 | 39 | **Description**: Cloud services enable health care providers to store and analyze patient data securely, improving care and operational efficiency. 40 | 41 | - **Example**: **Philips HealthSuite** leverages AWS to store and analyze health data from connected medical devices, enabling better patient monitoring and personalized care. 42 | 43 | ## Comprehensive Example 44 | 45 | A typical organization might utilize a combination of cloud services for various needs: 46 | 47 | - **AWS**: Host and scale its website and online applications. 48 | - **Azure**: Develop and deploy applications, leveraging integrated development tools. 49 | - **Google Cloud**: Manage and analyze large-scale datasets for insights and decision-making. 50 | 51 | Cloud computing’s versatility makes it an essential tool across industries, providing solutions for everything from web hosting and data analysis to disaster recovery and collaboration. 52 | -------------------------------------------------------------------------------- /EC2/01-Introduction-to-EC2.md: -------------------------------------------------------------------------------- 1 | # Amazon EC2 Quick Notes for Beginners 2 | 3 | ### 🚀 What is EC2? 4 | - **Amazon EC2 (Elastic Compute Cloud)**: Virtual servers in the cloud to run your applications. 5 | 6 | ### 🌟 Key Features 7 | - **Scalable**: Adjust server capacity as needed. 8 | - **Flexible**: Choose instance types based on your needs. 9 | - **Pay-as-you-go**: Pay only for what you use. 10 | 11 | ### 🛠️ Basic Concepts 12 | - **Instance**: A virtual server. 13 | - **AMI**: Template with OS and software. 14 | - **Instance Types**: 15 | - `t3.micro` - Small, general-purpose. 16 | - `c5.large` - For compute-heavy tasks. 17 | - `r5.large` - For memory-intensive tasks. 18 | 19 | ### 💰 Pricing Models 20 | - **On-Demand**: Pay by the hour/second. No commitment. 21 | - **Reserved**: Save money with a 1-3 year commitment. 22 | - **Spot**: Bid on unused capacity at lower prices. 23 | 24 | Learn EC2 Pricing Models: https://youtu.be/_d42iIc-P5I?si=iryRTLHu10dwFOUM 25 | 26 | ### 📝 Getting Started 27 | 1. **Choose an AMI**: Select OS/software. 28 | 2. **Pick an Instance Type**: Size your server. 29 | 3. **Set Security Groups**: Control access. 30 | 4. **Launch**: Start and connect to your instance. 31 | 32 | ### 🔑 Important Concepts 33 | - **Elastic IP**: Static IP address. 34 | - **Security Groups**: Firewall rules for your instance. 35 | - **EBS**: Persistent storage. 36 | 37 | ### 📌 Tips 38 | - **Start Small**: Use a free tier `t3.micro` to learn. 39 | - **Backup**: Take snapshots of your data. 40 | - **Monitor**: Use CloudWatch for performance and cost tracking. 41 | 42 | ### 📚 Resources 43 | - **[AWS Free Tier](https://aws.amazon.com/free/)**: 750 hours/month on `t3.micro`. 44 | - **[AWS Documentation](https://docs.aws.amazon.com/ec2/)**: Learn more. 45 | -------------------------------------------------------------------------------- /EC2/02-Launch-an-EC2-Instance.md: -------------------------------------------------------------------------------- 1 | # Launch an EC2 Instance 2 | 3 | Learn how to launch and connect to an EC2 instance. This step-by-step guide covers the essential steps to get your instance up and running. 4 | 5 | ## Steps to Launch an Instance 6 | 7 | 1. **Sign in to AWS Management Console** 8 | - Navigate to the [EC2 Dashboard](https://console.aws.amazon.com/ec2/). 9 | 10 | 2. **Launch Instance** 11 | - Click "Launch Instance" to start the instance creation wizard. 12 | 13 | 3. **Choose AMI** 14 | - Select an Amazon Machine Image (AMI). Options include: 15 | - **Amazon Linux 2** 16 | - **Ubuntu Server** 17 | - **Microsoft Windows Server** 18 | 19 | 4. **Choose Instance Type** 20 | - Select the instance type based on your requirements (e.g., `t3.micro` for low-cost testing). 21 | 22 | 5. **Configure Instance** 23 | - Set up network settings, IAM roles, and other configurations. 24 | 25 | 6. **Add Storage** 26 | - Attach Elastic Block Store (EBS) volumes. Default volume size and type can be modified. 27 | 28 | 7. **Add Tags** 29 | - Apply tags to organize and identify instances (e.g., Name: `MyWebServer`). 30 | 31 | 8. **Configure Security Group** 32 | - Define inbound and outbound rules. For example, allow HTTP (port 80) and SSH (port 22). 33 | 34 | 9. **Review and Launch** 35 | - Review your settings and click "Launch". Select an existing key pair or create a new one. 36 | 37 | ## Connecting to Your Instance 38 | 39 | - **Linux**: Use SSH: 40 | ```bash 41 | ssh -i "your-key.pem" ec2-user@your-instance-public-dns 42 | 43 | 44 | **Windows**: Use Remote Desktop (RDP). Download the RDP file and use the password generated during instance launch. 45 | 46 | 47 | ### Example Use Case 48 | Development: Developers use EC2 instances to test new applications before deploying them to production. 49 | 50 | 51 | ### Certification Tips 52 | Practice launching and configuring instances: Key for the AWS Certified Solutions Architect and AWS Certified DevOps Engineer exams. 53 | 54 | 55 | ### Resources 56 | [Connecting to Your Instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-to-linux-instance.html) 57 | -------------------------------------------------------------------------------- /EC2/03-Security-Groups.md: -------------------------------------------------------------------------------- 1 | # Security Groups 2 | 3 | Security Groups act as virtual firewalls for your EC2 instances. They control the inbound and outbound traffic to ensure your instances are secure. 4 | 5 | ## Key Points 6 | 7 | - **Inbound Rules**: Specify the allowed incoming traffic. Example rules include: 8 | - Allow HTTP (port 80) from anywhere. 9 | - Allow SSH (port 22) only from specific IP addresses. 10 | 11 | - **Outbound Rules**: Define the allowed outgoing traffic. By default, all outbound traffic is allowed. 12 | 13 | ## Best Practices 14 | 15 | - **Least Privilege**: Only open the necessary ports and restrict access to specific IP ranges or security groups. 16 | - **Regular Review**: Periodically review security group rules to ensure they adhere to current security policies. 17 | 18 | ## Example Configuration 19 | 20 | - **Web Server**: Allow HTTP (port 80) and HTTPS (port 443) from any IP address. 21 | - **Database**: Restrict access to the database instance by allowing connections only from specific IP addresses or security groups. 22 | 23 | ## Certification Tips 24 | 25 | - **Understand security group configurations and best practices**: Important for AWS Certified Solutions Architect and AWS Certified Security Specialty exams. 26 | 27 | ## Resources 28 | 29 | - [Security Groups for Your VPC](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html) 30 | - [Best Practices for Security Groups](https://aws.amazon.com/answers/security/security-groups/) 31 | -------------------------------------------------------------------------------- /EC2/04-Elastic-IPs.md: -------------------------------------------------------------------------------- 1 | # Elastic IPs 2 | 3 | Elastic IPs are static IP addresses designed for dynamic cloud computing. They provide persistent IP addresses for your EC2 instances, even if they are stopped or restarted. 4 | 5 | ## Key Points 6 | 7 | - **Allocation**: Allocate an Elastic IP from the AWS Management Console or CLI. 8 | - **Association**: Attach the Elastic IP to your EC2 instance. 9 | - **Release**: Release the Elastic IP when no longer needed to avoid extra charges. 10 | 11 | ## Benefits 12 | 13 | - **Static IP**: Maintain a consistent IP address even if the instance is stopped or restarted. 14 | - **Failover**: Quickly remap the IP address to another instance in case of failure or maintenance. 15 | 16 | ## Example Use Case 17 | 18 | - **High Availability**: Use Elastic IPs to ensure that your application's IP address remains constant, even if you need to replace the underlying instance. 19 | 20 | ## Certification Tips 21 | 22 | - **Understand Elastic IP management and cost implications**: Useful for AWS Certified Solutions Architect and AWS Certified DevOps Engineer exams. 23 | 24 | ## Resources 25 | 26 | - [Elastic IP Addresses](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html) 27 | - [Elastic IP Best Practices](https://aws.amazon.com/blogs/aws/elastic-ip-addresses-a-new-best-practice/) 28 | -------------------------------------------------------------------------------- /EC2/05-AMI.md: -------------------------------------------------------------------------------- 1 | # AMI (Amazon Machine Image) 2 | 3 | Amazon Machine Images (AMIs) are pre-configured templates used to create EC2 instances. They include the operating system, application server, and applications. 4 | 5 | ## Key Points 6 | 7 | - **Creating an AMI**: Capture the state of your instance to create a reusable image. 8 | - **Launching from AMI**: Quickly deploy new instances with the same configuration as the AMI. 9 | - **Sharing AMIs**: Share your custom AMIs with other AWS accounts or make them public. 10 | 11 | ## Example Use Cases 12 | 13 | - **Standardized Deployments**: Create an AMI with pre-installed software to ensure consistent deployments across multiple instances. 14 | - ** 15 | -------------------------------------------------------------------------------- /EC2/06-Example-Use-Cases-and-Case-Studies.md: -------------------------------------------------------------------------------- 1 | # Example Use Cases and Common Case Studies for EC2 2 | 3 | Amazon EC2 is a versatile service used in a wide range of applications across different industries. This page highlights common use cases and real-world case studies that demonstrate how EC2 is used to solve business challenges. 4 | 5 | ## Use Cases 6 | 7 | ### 1. **Web Hosting** 8 | - **Scenario**: A startup needs to host its website with minimal upfront investment. 9 | - **Solution**: EC2 instances are used to host the web server (Apache/Nginx) and the application backend. Auto Scaling and Load Balancing are configured to handle traffic spikes efficiently. 10 | - **Example**: A blog website using `t3.micro` instances to start and scaling up as traffic grows. 11 | 12 | ### 2. **Big Data Analytics** 13 | - **Scenario**: A retail company wants to analyze customer data to gain insights into purchasing behavior. 14 | - **Solution**: EC2 instances are used to run Apache Hadoop and Spark clusters for large-scale data processing. 15 | - **Example**: Analyzing petabytes of sales data during Black Friday using EC2 and Amazon EMR. 16 | 17 | ### 3. **Disaster Recovery** 18 | - **Scenario**: A financial services company requires a disaster recovery solution with minimal downtime. 19 | - **Solution**: EC2 instances in a different region replicate the primary data center. In case of a disaster, the standby environment can be quickly activated. 20 | - **Example**: A company uses EC2 and S3 for cross-region replication and failover during outages. 21 | 22 | ### 4. **High-Performance Computing (HPC)** 23 | - **Scenario**: A research lab needs to run complex simulations that require significant computational power. 24 | - **Solution**: EC2 instances with high CPU and GPU configurations are used to perform simulations in parallel, reducing the time required for processing. 25 | - **Example**: Genomic research using `c5n.18xlarge` instances to perform DNA sequencing analysis. 26 | 27 | ### 5. **Scalable Mobile Backend** 28 | - **Scenario**: A gaming company needs a scalable backend to handle millions of users in real-time. 29 | - **Solution**: EC2 instances run the game’s backend services, which auto-scale based on demand. DynamoDB and S3 are used for storage, and CloudFront for content delivery. 30 | - **Example**: A mobile game with millions of daily active users scaling EC2 instances during peak hours. 31 | 32 | ## Common Case Studies 33 | 34 | ### 1. **Airbnb** 35 | - **Challenge**: Airbnb needed a scalable infrastructure to handle its rapidly growing user base. 36 | - **Solution**: By using Amazon EC2, Airbnb could scale its computing resources up or down based on demand. Auto Scaling and Elastic Load Balancing ensured high availability and performance. 37 | - **Outcome**: Airbnb successfully scaled its operations globally, managing billions of search requests and accommodating millions of guests. 38 | 39 | ### 2. **Netflix** 40 | - **Challenge**: Netflix needed to deliver content to millions of users worldwide without interruptions. 41 | - **Solution**: Netflix uses thousands of EC2 instances across multiple regions to power its streaming service. EC2’s flexibility allows Netflix to optimize its infrastructure costs and performance. 42 | - **Outcome**: Netflix provides seamless streaming to over 200 million subscribers, thanks to its robust EC2-based infrastructure. 43 | 44 | ### 3. **NASA/JPL** 45 | - **Challenge**: NASA’s Jet Propulsion Laboratory (JPL) needed a computing environment to process large volumes of data from the Mars Rover. 46 | - **Solution**: JPL utilized EC2 instances to analyze data from Mars in real-time, enabling scientists to make decisions quickly. 47 | - **Outcome**: EC2 enabled NASA to process terabytes of data efficiently, helping them make critical mission decisions. 48 | 49 | ## Certification Tips 50 | 51 | - **Understand Real-World Applications**: AWS exams often test your knowledge of how EC2 is applied in real-world scenarios. Familiarize yourself with these use cases. 52 | - **Study Case Studies**: AWS whitepapers and case studies provide insights into how companies use EC2. These examples can help you answer scenario-based questions on exams. 53 | - **Focus on Scalability and Cost Optimization**: These are key topics in certification exams, especially in the AWS Certified Solutions Architect and AWS Certified DevOps Engineer exams. 54 | 55 | ## Resources 56 | 57 | - [AWS Case Studies](https://aws.amazon.com/solutions/case-studies/) 58 | - [EC2 Best Practices](https://aws.amazon.com/ec2/) 59 | - [AWS Whitepapers](https://aws.amazon.com/whitepapers/) 60 | 61 | -------------------------------------------------------------------------------- /EC2/README.md: -------------------------------------------------------------------------------- 1 | # EC2 (Elastic Compute Cloud) 2 | 3 | EC2 (Elastic Compute Cloud) provides scalable virtual servers in the cloud, allowing you to deploy, manage, and scale applications with flexibility and ease. This section covers essential concepts, practical examples, and best practices for working with EC2. 4 | 5 | ## Basic Concepts 6 | 7 | - **Instances**: Virtual machines with customizable configurations of CPU, memory, and storage. 8 | - **AMI (Amazon Machine Image)**: Pre-configured templates to launch instances with specific configurations and software. 9 | - **Security Groups**: Virtual firewalls that control inbound and outbound traffic to your instances. 10 | - **Elastic IPs**: Static IP addresses designed for dynamic cloud computing. 11 | - **Auto Scaling**: Automatically adjusts the number of instances based on demand. 12 | 13 | ## Learning Path 14 | 15 | 1. **[Introduction to EC2](01-Introduction-to-EC2.md)**: Understand the basics of EC2, including instance types, pricing models, and key concepts. 16 | 2. **[Launching an Instance](02-Launch-an-EC2-Instance.md)**: Follow a step-by-step guide to launching and connecting to an EC2 instance. 17 | 3. **[Security Groups](03-Security-Groups.md)**: Learn about security rules, best practices, and configuring security groups. 18 | 4. **[Elastic IPs](04-Elastic-IPs.md)**: Manage static IP addresses and understand their use cases. 19 | 5. **[AMI](05-AMI.md)**: Create and use Amazon Machine Images to standardize instance configurations. 20 | 6. **[Example Use Cases and Case Studies](06-Example-Use-Cases-and-Case-Studies.md)**: Review common use cases and case studies for understanding the application of EC2 in various industries. 21 | 22 | ## Examples 23 | 24 | - **[Web Server Setup]**: Launch an EC2 instance and set up a web server (e.g., Apache or Nginx). 25 | - **[Auto Scaling]**: Configure Auto Scaling to handle varying traffic loads and ensure high availability. 26 | 27 | ## Certification Tips 28 | 29 | - **AWS Certified Solutions Architect – Associate**: Focus on EC2 instance types, Auto Scaling, and cost management. 30 | - **AWS Certified DevOps Engineer – Professional**: Emphasize automation, security group configuration, and scaling best practices. 31 | 32 | ## Getting Started 33 | 34 | Explore the following files to dive deeper into EC2: 35 | 36 | EC2 37 | 38 | - [Introduction to EC2](01-Introduction-to-EC2.md) 39 | - [Launch an EC2 Instance](02-Launch-an-EC2-Instance.md) 40 | - [Security Groups](03-Security-Groups.md) 41 | - [Elastic IPs](04-Elastic-IPs.md) 42 | - [AMI](05-AMI.md) 43 | - [Examples](examples/) 44 | - [Example Use Cases and Case Studies](06-Example-Use-Cases-and-Case-Studies.md) 45 | 46 | -------------------------------------------------------------------------------- /RDS/RDS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N4si/Learn_AWS_from_Scratch/9d64f9841539bc892f90a241e4b6f55e76a6fb37/RDS/RDS.png -------------------------------------------------------------------------------- /RDS/RDS_Advanced_Topics.md: -------------------------------------------------------------------------------- 1 | # RDS Advanced Topics for DevOps Engineers 🚀 2 | 3 | ## 1. Multi-AZ Deployments 🌍 4 | - *Automatic Failover*: Multi-AZ provides automated failover in case of a failure. A standby instance in another availability zone takes over automatically. 5 | - *Use Case*: Production workloads that require high availability and automatic recovery during failure. 6 | 7 | ## 2. Read Replicas 📖 8 | - *Horizontal Scaling*: Scale out read-heavy operations by creating read replicas across regions. 9 | - *Asynchronous Replication*: Transactions are asynchronously replicated to replicas. 10 | - *Use Case*: Offload read operations from the primary instance for better performance. 11 | 12 | ## 3. Performance Insights 📊 13 | - *Performance Insights*: Visualize database load and understand which SQL queries are impacting performance. 14 | - *Use Case*: DevOps teams troubleshooting slow queries or resource bottlenecks. 15 | 16 | ## 4. Automated Backups and Snapshots 💾 17 | - *Automated Backups*: Automatically back up the database at a specified time. 18 | - *Manual Snapshots*: Useful for point-in-time restores before major schema changes. 19 | - *Use Case*: Scheduled, automated backups for mission-critical apps to ensure recoverability. -------------------------------------------------------------------------------- /RDS/RDS_Best_Practices.md: -------------------------------------------------------------------------------- 1 | # RDS Best Practices for DevOps Engineers 🎯 2 | 3 | ## 1. Implement Multi-AZ in Production 💡 4 | For any critical production environment, enable *Multi-AZ deployments* for high availability and failover support. 5 | 6 | ## 2. Use Read Replicas for Scalability 📖 7 | Scale read-heavy workloads by distributing traffic to *Read Replicas*. Especially useful in analytics, reporting, or high-traffic web apps. 8 | 9 | ## 3. Monitor Performance Using CloudWatch 📊 10 | - Set *CloudWatch alarms* for high CPU, disk I/O, or memory usage. 11 | - Use *Enhanced Monitoring* for granular insights on CPU, memory, swap, and disk utilization. 12 | - Enable *Performance Insights* for advanced query tuning. 13 | 14 | ## 4. Secure Your RDS Instance 🔐 15 | - Use *IAM roles* to control access. 16 | - Enable *SSL/TLS encryption* for data in transit. 17 | - *Encrypt* data at rest using AWS-managed or customer-managed keys (CMKs). 18 | 19 | ## 5. Backup Strategy 💾 20 | - Automate backups and configure the *backup retention period* (e.g., 7 days). 21 | - Regularly create *manual snapshots* before major updates or schema changes. 22 | 23 | ## 6. Optimize Cost with Right-Sizing 💵 24 | - Choose the appropriate instance size and storage type based on actual workload requirements. 25 | - Use *Reserved Instances* to save costs for long-term workloads. 26 | 27 | ## 7. Automate with Infrastructure as Code 🛠️ 28 | - Automate RDS provisioning, configuration, and teardown using *CloudFormation, **Terraform, or the **AWS CLI*. -------------------------------------------------------------------------------- /RDS/RDS_Overview.md: -------------------------------------------------------------------------------- 1 | # Amazon RDS Overview 🌐 2 | 3 | ## What is Amazon RDS? 💡 4 | Amazon Relational Database Service (RDS) is a fully managed service that makes it easy to set up, operate, and scale relational databases in the cloud. RDS supports several relational database engines, automating database management tasks like hardware provisioning, database setup, patching, and backups. 5 | 6 | ### Supported Database Engines: 7 | - *MySQL* 🐬: Open-source and widely used. 8 | - *PostgreSQL* 🐘: Open-source with advanced features. 9 | - *MariaDB* 🏗️: Fork of MySQL with some performance enhancements. 10 | - *Oracle* ☕: Suitable for enterprise applications. 11 | - *Microsoft SQL Server* 🖥️: Popular in Windows environments. 12 | - *Amazon Aurora* 🚀: Amazon’s proprietary database, compatible with MySQL and PostgreSQL, optimized for cloud-native performance. 13 | 14 | ### Why RDS is Important for DevOps Engineers: 15 | - *Managed Service*: No need to manage infrastructure. AWS handles backups, patching, and updates automatically. 16 | - *High Availability: RDS supports **Multi-AZ* for automatic failover and *Read Replicas* for scaling read-heavy applications. 17 | - *Integration with AWS Services: Easily integrate RDS with **AWS CloudWatch* for monitoring, *IAM* for access control, and *CloudFormation* or *Terraform* for Infrastructure as Code (IaC). 18 | 19 | ### Key Features: 20 | - *Auto Scaling*: Automatically scale storage and compute based on usage. 21 | - *Backup and Restore*: Automate backups and snapshots for disaster recovery. 22 | - *Encryption: Encrypt data at rest using **KMS* (Key Management Service) and in transit using *SSL*. 23 | 24 | Continue to the [RDS Setup Guide](./RDS_Setup_Guide.md) for detailed steps on how to launch an RDS instance. -------------------------------------------------------------------------------- /RDS/RDS_Setup_Guide.md: -------------------------------------------------------------------------------- 1 | # Amazon RDS Setup Guide 🛠️ 2 | 3 | ## Step 1: Provision an RDS Instance 4 | 5 | 1. *Launch RDS: In the **RDS dashboard, click **Create Database*. 6 | 2. *Choose Engine*: Select the database engine based on your use case. For web apps, MySQL and PostgreSQL are common choices. 7 | 3. *Configure DB Settings*: 8 | - Instance Class: Choose compute capacity (e.g., db.t3.micro for small workloads, db.m5.large for production). 9 | - Storage: Select *General Purpose SSD* or *Provisioned IOPS* based on performance needs. 10 | - Multi-AZ: Enable for high availability in production environments. 11 | - VPC: Select an appropriate *VPC* and configure *subnets* and *security groups*. 12 | 13 | 4. *Backup and Monitoring*: 14 | - Enable *automatic backups* and set retention periods. 15 | - Enable *Enhanced Monitoring* and integrate with *CloudWatch* for performance insights. 16 | 17 | 5. *Security*: 18 | - Use *IAM roles* for DB access management. 19 | - Enable *Encryption at Rest* using AWS *KMS* (Key Management Service). 20 | - Apply *SSL/TLS* for data in transit. 21 | 22 | ## Step 2: Connecting to the RDS Instance 23 | - After the instance is created, retrieve the *RDS endpoint* from the AWS console. 24 | - Use a database client like MySQL Workbench or pgAdmin to connect: 25 | ```bash 26 | mysql -h -P 3306 -u -p 27 | 28 | Automate Provisioning with Terraform 29 | Here’s an example of how to create an RDS instance using Terraform: 30 | resource "aws_db_instance" "default" { 31 | allocated_storage = 20 32 | engine = "mysql" 33 | instance_class = "db.t3.micro" 34 | name = "mydb" 35 | username = "admin" 36 | password = "password" 37 | parameter_group_name = "default.mysql8.0" 38 | skip_final_snapshot = true 39 | } -------------------------------------------------------------------------------- /RDS/RDS_Use_Cases.md: -------------------------------------------------------------------------------- 1 | # RDS Use Cases for Cloud and DevOps Engineers 💼 2 | 3 | ## 1. Web Application Databases 🌐 4 | RDS is ideal for hosting relational databases in production environments with automated failover and scaling. 5 | 6 | - *Use Case*: An e-commerce platform using MySQL or PostgreSQL with Multi-AZ enabled to ensure uptime during peak traffic times. 7 | 8 | ## 2. CI/CD Pipeline Databases 🔄 9 | RDS can be integrated with *CI/CD pipelines* to automate testing and deployment environments. 10 | 11 | - *Use Case: Automatically provision an RDS instance for running integration tests on a MySQL database using **CloudFormation* or *Terraform* in a CI/CD pipeline. 12 | 13 | ## 3. Disaster Recovery 🛡️ 14 | Leverage *automated backups* and *snapshots* to implement disaster recovery solutions for mission-critical applications. 15 | 16 | - *Use Case*: A financial services company ensuring that transactional data is automatically backed up and restored in case of failure. 17 | 18 | ## 4. Analytics and Reporting 📊 19 | Offload read-heavy operations to *Read Replicas*, freeing the primary database for transactional workloads. 20 | 21 | - *Use Case*: Use PostgreSQL read replicas for generating business reports while keeping the primary database optimized for live transactions. 22 | 23 | Explore real-world [RDS Examples](./RDS_Examples.md) for practical code to automate tasks. -------------------------------------------------------------------------------- /RDS/README.md: -------------------------------------------------------------------------------- 1 | # Amazon RDS Notes for Cloud and DevOps Engineers 🌩️🔧 2 | 3 | ![RDS Overview](RDS.png) 4 | 5 | This folder contains detailed notes on Amazon RDS to help Cloud and DevOps engineers manage relational databases in AWS environments. These notes also help in preparing for the AWS Certified Solutions Architect Associate (SAA) exam. 6 | 7 | ## Topics Covered 8 | - **[RDS Overview](./RDS_Overview.md)**: Understanding RDS architecture and core features. 9 | - **[RDS Setup Guide](./RDS_Setup_Guide.md)**: Step-by-step guide for setting up RDS. 10 | - **[RDS Use Cases](./RDS_Use_Cases.md)**: Real-world applications of RDS. 11 | - **[RDS Advanced Topics](./RDS_Advanced_Topics.md)**: Deep dive into advanced RDS configurations. 12 | - **[RDS Best Practices](./RDS_Best_Practices.md)**: Best practices for optimizing and securing RDS. 13 | 14 | ### Learning Objectives 🎯 15 | - Understand how to provision and scale RDS instances. 16 | - Explore real-world use cases where RDS is applied in DevOps workflows. 17 | - Learn advanced features like *Multi-AZ, **Read Replicas, and **automatic backups*. 18 | - Implement security best practices and performance monitoring. 19 | 20 | --- 21 | > Start with the [RDS Overview](./RDS_Overview.md) to get a high-level understanding of what RDS is and how it fits in a Cloud/DevOps workflow. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Learn_AWS_from_Scratch 2 | 3 | ### ![AWS Course](AWS_Course.png) 4 | 5 | 6 | ### [**Watch the Complete Playlist**](https://youtube.com/playlist?list=PLOa-edppsqFn4MFr5KDqm0Y92d2nGyGgQ&si=srktTEibogJ-QDub) 7 | 8 | 9 | ## 🌟 Introduction 10 | Welcome to the **AWS Cloud From Scratch** repository! This repo is your go-to resource for building a solid foundation in Amazon Web Services (AWS). Whether you're just starting out or looking to sharpen your skills, you'll find everything you need here to get hands-on with the most crucial AWS services, particularly for a career in DevOps. 11 | 12 | ## 🗂 Overview of AWS Services Covered 13 | This repository is structured into folders, each focusing on a key AWS service. Here's what you'll find: 14 | 15 | **💻 [EC2 (Elastic Compute Cloud)](./EC2)**: Virtual servers to run your applications, with tutorials on instance management, Auto Scaling, and cost optimization. 16 | 17 | - **📦 S3 (Simple Storage Service)**: Scalable object storage for data backup, hosting static websites, and more. 18 | 19 | - **🔐 [IAM (Identity and Access Management)](./AWS%20IAM/)**: Manage user access and encryption keys securely. 20 | 21 | - **🗄️ RDS (Relational Database Service)**: Managed databases like MySQL and PostgreSQL with automatic backups and scaling. 22 | 23 | - **🌐 VPC (Virtual Private Cloud)**: Isolated network environments with subnets, route tables, and internet gateways. 24 | 25 | - **🐳 ECS (Elastic Container Service)**: Run and manage Docker containers at scale, including Fargate for serverless containers. 26 | 27 | - **🎯 ECR (Elastic Container Registry)**: Store, manage, and deploy Docker images easily and securely. 28 | 29 | - **⚡ Lambda**: Serverless computing to run code in response to events without provisioning servers. 30 | 31 | - **📜 CloudFormation**: Automate infrastructure deployment using templates for repeatable and scalable environments. 32 | 33 | - **🔍 CloudWatch**: Monitor and observe your AWS resources and applications with metrics, logs, and alarms. 34 | 35 | - **💬 SQS & SNS (Simple Queue Service & Simple Notification Service)**: Messaging services for decoupling and scaling applications. 36 | 37 | - **📊 CloudTrail**: Track user activity and API usage across your AWS infrastructure for auditing and security. 38 | 39 | - **🔑 Secrets Manager**: Securely store and manage sensitive information like database credentials and API keys. 40 | 41 | - **🛡️ Load Balancer**: Distribute incoming traffic across multiple targets for fault tolerance and high availability. 42 | 43 | - **📈 Auto Scaling Group**: Automatically adjust the number of EC2 instances based on demand to maintain performance. 44 | 45 | - **☸️ EKS (Elastic Kubernetes Service)**: Managed Kubernetes to run containerized applications with ease. 46 | 47 | Each folder contains hands-on tutorials, examples, and best practices to ensure you're ready to apply what you learn in real-world scenarios. 48 | 49 | ## 🧭 Suggested Learning Path 50 | To get the most out of this repository, follow this learning path: 51 | 52 | 1. **🔰 Start with Basics**: Begin with **EC2**, **S3**, and **IAM** to cover compute, storage, and security fundamentals. 53 | 54 | 2. **🔐 Networking and Security**: Learn about **VPC** and **CloudTrail** to manage network configurations and monitor activity. 55 | 56 | 3. **💾 Data Management**: Explore **RDS** and **Secrets Manager** for handling databases and securing sensitive data. 57 | 58 | 4. **⚡ Serverless and Automation**: Get into **Lambda** and **CloudFormation** for serverless computing and infrastructure as code. 59 | 60 | 5. **📦 Advanced Services**: Move on to **ECS**, **EKS**, **CloudWatch**, **SQS/SNS**, **Load Balancer**, and **Auto Scaling Group** for container orchestration, monitoring, and scaling. 61 | 62 | This path is designed to build your knowledge step by step, ensuring a deep understanding of AWS services. 63 | 64 | ## 🤝 How to Contribute 65 | We welcome contributions from everyone! Here's how you can help: 66 | 67 | 1. **🍴 Fork the Repo**: Start by forking the repository and cloning it locally. 68 | 2. **🌿 Create a Branch**: Make a new branch for your contributions. 69 | 3. **🛠️ Make Changes**: Add tutorials, fix issues, or enhance existing content. 70 | 4. **📬 Submit a Pull Request**: Submit your changes with a clear description, and we'll review them! 71 | 72 | ## 📚 Useful Resources and References 73 | Boost your learning with these additional resources: 74 | 75 | - **📖 [AWS Official Documentation](https://aws.amazon.com/documentation/)**: In-depth guides straight from AWS. 76 | - **🎓 [AWS Skill Builder](https://skillbuilder.aws/)**: Free training resources and certification prep. 77 | 78 | ## 🌐 Connect with Me! 79 | Stay connected for more insights and opportunities: 80 | 81 | - **🔗 [LinkedIn](https://www.linkedin.com/in/nasiullha-chaudhari/)**: Connect with me on LinkedIn for networking and professional updates. 82 | - **📢 [Cloud Champ](https://www.youtube.com/@cloudchamp?sub_confirmation=1)**: Subscribe to Cloud Champ on YouTube for tutorials, tips, and cloud news! 🎥 83 | 84 | ## 📄 Course Outline 85 | A detailed course outline is available in PDF format: 86 | 87 | - 📂 [AWS Cloud From Scratch - Course Outline](https://app.napkin.ai/page/CgoiCHByb2Qtb25lEiwKBFBhZ2UaJGI4N2Y2NDk3LThkMGEtNGNmYS04NjQ1LTQ1MGJkOGM4MzBmMQ?s=1) 88 | 89 | --- 90 | -------------------------------------------------------------------------------- /S3/01-introduction-buckets-and-objects.md: -------------------------------------------------------------------------------- 1 | # 🌐 Introduction to S3, Buckets, and Objects 2 | 3 | ## What is Amazon S3? 4 | Amazon S3 (Simple Storage Service) is an object storage service that provides scalability, data availability, security, and performance for a wide range of use cases. 5 | 6 | ### Key Features: 7 | - **Object storage**: Store unlimited data as objects in buckets. 8 | - **Durability & Availability**: Designed for **99.999999999%** (11 9's) durability. 9 | - **Use cases**: Backup & restore, data lakes, hosting static websites, and more. 10 | 11 | --- 12 | 13 | ## 🗂️ S3 Buckets 14 | A bucket is a container for storing objects. Buckets are region-specific and have globally unique names. 15 | 16 | ### Key Concepts: 17 | - **Bucket creation**: Choose a name and region. 18 | - **Global namespace**: Bucket names must be unique across all AWS accounts. 19 | - **Region-specific**: Buckets are located in an AWS region for latency optimization and compliance. 20 | 21 | --- 22 | 23 | ## 📄 S3 Objects 24 | Objects are the fundamental entities stored in S3, and they consist of: 25 | - **Key** (Unique identifier) 26 | - **Data** (Binary content) 27 | - **Metadata** (Additional information such as file type, permissions) 28 | 29 | ### Object Versioning: 30 | - **Versioning**: Stores multiple variants of an object in the same bucket, useful for protecting against unintended overwrites and deletions. 31 | - **Object lifecycle**: Controls the creation, retention, and deletion of versions through lifecycle policies. 32 | 33 | --- 34 | 35 | ## 🔄 Data Consistency Model 36 | S3 provides strong **read-after-write consistency** for PUTs of new objects and eventual consistency for overwrite PUTs and DELETEs. 37 | -------------------------------------------------------------------------------- /S3/02-storage-classes-and-versioning.md: -------------------------------------------------------------------------------- 1 | # 🏷️ S3 Storage Classes and Versioning 2 | 3 | ## S3 Storage Classes 4 | S3 offers a range of storage classes for different use cases, helping you optimize costs based on your data access patterns. 5 | 6 | ### Storage Classes: 7 | 1. **Standard** 8 | - High availability and durability. Suitable for frequently accessed data. 9 | - **Durability**: 99.999999999% 10 | - **Availability**: 99.99% 11 | 12 | 2. **Intelligent-Tiering** 13 | - Automatically moves objects between access tiers when access patterns change. 14 | - Optimizes costs by placing infrequently accessed data into a lower-cost tier. 15 | 16 | 3. **Standard-IA (Infrequent Access)** 17 | - Lower-cost for infrequently accessed data that requires high availability. 18 | 19 | 4. **One Zone-IA** 20 | - Low-cost storage for infrequently accessed data in a single AZ (availability zone). 21 | 22 | 5. **Glacier & Glacier Deep Archive** 23 | - Designed for long-term archival storage. Retrieval times can vary from minutes (Glacier) to hours (Glacier Deep Archive). 24 | 25 | --- 26 | 27 | ## 🔄 S3 Versioning 28 | Versioning allows you to preserve, retrieve, and restore every version of an object stored in an S3 bucket. 29 | 30 | ### Benefits of Versioning: 31 | - **Accidental deletion protection**: If an object is deleted, previous versions can be restored. 32 | - **Object overwrite protection**: Retain older versions in case of unintended overwrites. 33 | 34 | ### Managing Versioning: 35 | - **Enable/Disable versioning**: Once enabled, versioning cannot be fully disabled (can only be suspended). 36 | - **Delete markers**: When you delete an object, a delete marker is created instead of permanently removing the data. 37 | 38 | --- 39 | 40 | ## 🔄 Lifecycle Policies for Object Management 41 | Lifecycle policies enable you to automate the migration of objects between different storage classes based on rules you define. 42 | 43 | ### Use Cases: 44 | - **Transition**: Move objects to lower-cost storage (e.g., Standard to Glacier) after a specified time. 45 | - **Expiration**: Automatically delete objects after a set retention period. 46 | 47 | ### Policy Types: 48 | 1. **Transition Policies**: Move objects to cheaper storage. 49 | 2. **Expiration Policies**: Set rules to delete objects after a certain time. 50 | -------------------------------------------------------------------------------- /S3/03-access-control-encryption-and-policies.md: -------------------------------------------------------------------------------- 1 | # 🔐 Access Control, Encryption, and Policies in S3 2 | 3 | ## 🛡️ Access Control in S3 4 | There are several methods to manage access to S3 resources, including: 5 | 6 | ### 1. **IAM Policies** 7 | - Control access at the AWS account level. 8 | - Attach policies to users, groups, or roles to define permissions. 9 | 10 | ### 2. **Bucket Policies** 11 | - Control access at the bucket level. 12 | - Can grant permissions to specific AWS accounts or public access. 13 | - Use to set public/private access, and restrict IP addresses or specific resources. 14 | 15 | ### 3. **Access Control Lists (ACLs)** 16 | - Fine-grained access control for specific objects or buckets. 17 | - Primarily used when managing access at the individual object level. 18 | 19 | --- 20 | 21 | ## 🔑 S3 Encryption Options 22 | S3 provides different encryption mechanisms for protecting data at rest and in transit. 23 | 24 | ### Server-Side Encryption (SSE): 25 | 1. **SSE-S3**: 26 | - S3 manages encryption keys automatically. 27 | - Simple to use and cost-effective. 28 | 29 | 2. **SSE-KMS (Key Management Service)**: 30 | - Integrates with AWS KMS to give more control over encryption keys. 31 | - Can define and audit key usage. 32 | 33 | 3. **SSE-C (Customer-Provided Keys)**: 34 | - You manage your own encryption keys. 35 | 36 | ### Client-Side Encryption: 37 | - Encrypt data before uploading it to S3 using client-side libraries. 38 | 39 | --- 40 | 41 | ## 🔒 Security Best Practices: 42 | 1. **Encrypt sensitive data**: Use either server-side or client-side encryption. 43 | 2. **Enforce least-privilege**: Use IAM policies to restrict access to only necessary users or roles. 44 | 3. **Enable MFA Delete**: Adds an extra layer of security to prevent accidental or malicious deletions. 45 | -------------------------------------------------------------------------------- /S3/04-performance-management-and-logging.md: -------------------------------------------------------------------------------- 1 | # ⚡ Performance Optimization, Data Management, and Monitoring in S3 2 | 3 | ## ⚙️ Performance Optimization 4 | ### Best Practices: 5 | 1. **Parallel uploads**: Use the multipart upload feature to speed up uploads for large objects. 6 | 2. **S3 Transfer Acceleration**: Reduces latency for large uploads by routing traffic through AWS Edge Locations (via CloudFront). 7 | 3. **Request Rate Optimization**: Ensure unique prefixes in object keys to optimize the request rate. 8 | 9 | --- 10 | 11 | ## 🗃️ S3 Data Management Features 12 | ### Multipart Upload: 13 | - Breaks large files into smaller parts and uploads them in parallel. 14 | - Improves performance and reliability. 15 | 16 | ### S3 Replication: 17 | - **Cross-Region Replication (CRR)**: Replicates objects across AWS regions for disaster recovery and latency improvement. 18 | - **Same-Region Replication (SRR)**: Copies objects within the same region for data redundancy and compliance. 19 | 20 | --- 21 | 22 | ## 📊 Logging and Monitoring S3 Activity 23 | ### Server Access Logging: 24 | - Tracks detailed records for requests made to your S3 bucket. 25 | - Logs are stored in a separate bucket for analysis. 26 | 27 | ### AWS CloudTrail: 28 | - Provides object-level tracking for S3 operations, allowing you to track who accessed or modified objects. 29 | 30 | ### CloudWatch Integration: 31 | - Monitor and get metrics for S3 buckets, such as data transfer and request metrics. 32 | -------------------------------------------------------------------------------- /S3/05-static-website-hosting-events-and-cost-management.md: -------------------------------------------------------------------------------- 1 | # 🌐 Static Website Hosting, S3 Event Notifications, and Cost Management 2 | 3 | ## 🌐 Static Website Hosting with S3 4 | S3 can host static websites, serving HTML, CSS, JavaScript, and images. 5 | 6 | ### Steps to Host a Static Website: 7 | 1. **Bucket configuration**: Set the bucket to "public" and enable static website hosting. 8 | 2. **Index document**: Specify the index document (e.g., `index.html`). 9 | 3. **Custom error pages**: Configure custom error responses (e.g., `404.html`). 10 | 4. **Redirect rules**: Set up redirects for specific object requests. 11 | 12 | --- 13 | 14 | ## 📣 S3 Event Notifications 15 | You can configure S3 to trigger notifications when specific events occur (e.g., object creation or deletion). 16 | 17 | ### Integration with AWS Services: 18 | 1. **AWS Lambda**: Automatically invoke functions to process objects when they are uploaded. 19 | 2. **Amazon SNS/SQS**: Notify subscribers or queue messages when events occur. 20 | 21 | --- 22 | 23 | ## 💸 S3 Cost Management 24 | ### Cost Factors: 25 | 1. **Data storage**: Charged based on the amount of data stored. 26 | 2. **Requests**: Fees for GET, PUT, and other requests. 27 | 3. **Data Transfer**: Outbound data transfers beyond AWS are charged. 28 | 29 | ### Cost Optimization: 30 | 1. **Use lifecycle policies**: Automate transitions to lower-cost storage. 31 | 2. **Choose the right storage class**: Use classes like Glacier or One Zone-IA for infrequently accessed data. 32 | -------------------------------------------------------------------------------- /S3/06-s3-devops-task.md: -------------------------------------------------------------------------------- 1 | # 🛠️ S3 Bucket Task: DevOps & Cloud Engineer 2 | 3 | This task focuses on using Amazon S3 in a DevOps/Cloud Engineering workflow. You'll automate S3 bucket management, integrate security, and implement best practices for handling data storage at scale. 4 | 5 | ## Task Overview 6 | 7 | You will: 8 | 1. Create and configure an S3 bucket using the AWS CLI. 9 | 2. Implement bucket policies and IAM roles for secure access control. 10 | 3. Enable versioning and configure lifecycle policies. 11 | 4. Automate uploads with the AWS CLI. 12 | 5. Enable server-side encryption. 13 | 6. Set up event notifications for integration with Lambda. 14 | 15 | --- 16 | 17 | ### 🛠️ Step 1: Create an S3 Bucket 18 | 19 | Create an S3 bucket using the AWS CLI. Buckets need unique names and a specified region. 20 | 21 | ```bash 22 | aws s3api create-bucket \ 23 | --bucket \ 24 | --region \ 25 | --create-bucket-configuration LocationConstraint= 26 | -------------------------------------------------------------------------------- /S3/README.md: -------------------------------------------------------------------------------- 1 | # 🎓 AWS Course: S3 Module 2 | 3 | ![S3 Overview](s3.png) 4 | 5 | This folder contains comprehensive notes on Amazon S3. Click the links below to navigate to the corresponding sections. 6 | 7 | ## S3 Topics 8 | 1. [🌐 Introduction to S3, Buckets, and Objects](s3/01-introduction-buckets-and-objects.md) 9 | 2. [🏷️ S3 Storage Classes and Versioning](s3/02-storage-classes-and-versioning.md) 10 | 3. [🔐 Access Control, Encryption, and Policies](s3/03-access-control-encryption-and-policies.md) 11 | 4. [⚡ Performance Management and Logging](s3/04-performance-management-and-logging.md) 12 | 5. [🌐 Static Website Hosting, Events, and Cost Management](s3/05-static-website-hosting-events-and-cost-management.md) 13 | 14 | ## About Amazon S3 15 | 16 | Amazon S3 (Simple Storage Service) provides scalable object storage for a wide range of use cases. Below is a brief overview: 17 | 18 | - **Durability and Availability**: S3 ensures 99.999999999% durability and highly available data across multiple regions. 19 | - **Storage Classes**: Offers multiple storage classes such as Standard, Intelligent-Tiering, and Glacier for optimized cost and performance. 20 | - **Security**: Provides encryption (at rest and in transit), access control lists (ACLs), and fine-grained permissions with IAM policies. 21 | - **Data Management**: Features versioning, lifecycle policies, and event notifications for data automation and management. 22 | - **Use Cases**: From hosting static websites, managing backups, to being a storage backend for big data analytics. 23 | 24 | For more details, explore the topics below! 25 | -------------------------------------------------------------------------------- /S3/s3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N4si/Learn_AWS_from_Scratch/9d64f9841539bc892f90a241e4b6f55e76a6fb37/S3/s3.png -------------------------------------------------------------------------------- /VPC/Components.md: -------------------------------------------------------------------------------- 1 | # VPC Components 🧩 2 | 3 | ## 1. Subnets 🕵️‍♂️ 4 | - *Public Subnets*: Accessible from the internet. 5 | - *Private Subnets*: Not directly accessible from the internet. 6 | 7 | ## 2. Route Tables 🛤️ 8 | - *Main Route Table*: Default route table associated with your VPC. 9 | - *Custom Route Tables*: Create custom route tables for more control. 10 | 11 | ## 3. Internet Gateway 🌍 12 | - *Purpose*: Allows communication between instances in your VPC and the internet. 13 | 14 | ## 4. NAT Gateway 🔄 15 | - *Purpose*: Enables outbound internet traffic for instances in private subnets. 16 | 17 | ## 5. VPC Peering 🔗 18 | - *Purpose*: Connects two VPCs enabling them to communicate. 19 | 20 | ## 6. Security Groups 🔒 21 | - *Purpose*: Acts as a virtual firewall to control traffic for your instances. 22 | 23 | ## 7. Network ACLs 🚧 24 | - *Purpose*: Provides an additional layer of security at the subnet level. -------------------------------------------------------------------------------- /VPC/Configuration.md: -------------------------------------------------------------------------------- 1 | # Configuring a VPC 🛠️ 2 | 3 | ## Step-by-Step Guide 4 | 5 | ### 1. Create a VPC 6 | - Navigate to the VPC Dashboard in the AWS Management Console. 7 | - Click on "Create VPC." 8 | - Define the IP address range (CIDR block), e.g., 10.0.0.0/16. 9 | 10 | ### 2. Create Subnets 11 | - Choose "Subnets" from the VPC Dashboard. 12 | - Click "Create Subnet" and specify the VPC, Availability Zone, and CIDR block for the subnet. 13 | 14 | ### 3. Configure Route Tables 15 | - Go to "Route Tables" and select "Create Route Table." 16 | - Associate it with your VPC and define routes as needed. 17 | 18 | ### 4. Attach an Internet Gateway 19 | - Go to "Internet Gateways" and click "Create Internet Gateway." 20 | - Attach it to your VPC. 21 | 22 | ### 5. Set Up a NAT Gateway (for Private Subnets) 23 | - Navigate to "NAT Gateways" and click "Create NAT Gateway." 24 | - Choose a subnet and allocate an Elastic IP. 25 | 26 | ### 6. Configure Security Groups and Network ACLs 27 | - Create security groups with appropriate inbound and outbound rules. 28 | - Define Network ACLs to control traffic at the subnet level. -------------------------------------------------------------------------------- /VPC/Overview.md: -------------------------------------------------------------------------------- 1 | # Amazon VPC (Virtual Private Cloud) Overview 🌐 2 | 3 | Amazon VPC (Virtual Private Cloud) is a service that allows you to provision a logically isolated section of the AWS Cloud where you can launch AWS resources in a virtual network that you define. 4 | 5 | ## Key Features 6 | 7 | - *Isolation*: Isolate your network from other networks in AWS. 8 | - *Customizable Network*: Create your own private IP address range, subnets, route tables, and network gateways. 9 | - *Security*: Implement security groups and network ACLs to control inbound and outbound traffic. 10 | - *Connectivity*: Connect your VPC to the internet or to your own data center. 11 | 12 | ## Core Components 13 | 14 | 1. *Subnets*: Segments within your VPC that allow you to partition your network. 15 | 2. *Route Tables*: Define the routes for traffic within and outside the VPC. 16 | 3. *Internet Gateway*: Enables communication between your VPC and the internet. 17 | 4. *NAT Gateway*: Allows instances in a private subnet to connect to the internet while remaining unreachable from the outside. 18 | 5. *VPC Peering*: Allows you to connect multiple VPCs. 19 | 6. *Security Groups*: Virtual firewalls that control inbound and outbound traffic. 20 | 7. *Network ACLs*: Stateless filters for controlling traffic at the subnet level. 21 | 22 | ## Diagram 23 | 24 | ![VPC Diagram](VPC_Diagram.png) -------------------------------------------------------------------------------- /VPC/README.MD: -------------------------------------------------------------------------------- 1 | # AWS VPC (Virtual Private Cloud) Notes 📘 2 | 3 | ![VPC Overview](VPC.png) 4 | 5 | Welcome to the AWS VPC notes repository! This folder contains detailed notes and examples to help you understand and configure Amazon VPC effectively. 6 | 7 | ## Folder Contents 8 | 9 | - **[VPC Overview](./Overview.md)**: Provides an overview of Amazon VPC, its purpose, and core features. 🌐 10 | - **[VPC Components](./Components.md)**: Describes the key components of a VPC, including subnets, route tables, and security features. 🧩 11 | - **[VPC Configuration](./Configuration.md)**: Step-by-step instructions for setting up and configuring a VPC. 🛠️ 12 | - **[VPC UseCases](./UseCases.md)**: Various use cases illustrating how VPC can be utilized for different scenarios. 📚 13 | 14 | ## Getting Started 15 | 16 | 1. *Read Overview.md* to get a high-level understanding of Amazon VPC. 17 | 2. *Check Components.md* to learn about the different elements of a VPC and their roles. 18 | 3. *Follow Configuration.md* to set up your VPC step-by-step. 19 | 4. *Explore UseCases.md* for practical applications and scenarios where VPC can be used effectively. 20 | 5. *Refer to Examples.md* for CloudFormation templates and practical examples. 21 | 22 | Feel free to contribute by adding more examples or use cases, or by improving the existing notes! -------------------------------------------------------------------------------- /VPC/UseCases.md: -------------------------------------------------------------------------------- 1 | # VPC Use Cases 📚 2 | 3 | ## 1. Hosting a Web Application 4 | - *Scenario*: Deploy a web application with a public-facing load balancer in a public subnet and application servers in private subnets. 5 | - *Benefits*: Ensures application servers are not exposed directly to the internet. 6 | 7 | ## 2. Multi-Tier Architecture 8 | - *Scenario*: Use multiple subnets to separate different tiers of an application (e.g., web, application, database). 9 | - *Benefits*: Provides better security and management of application layers. 10 | 11 | ## 3. Hybrid Cloud 12 | - *Scenario*: Connect your VPC to your on-premises network using VPN or Direct Connect. 13 | - *Benefits*: Extend your existing network into the cloud while maintaining secure and reliable connectivity. 14 | 15 | ## 4. Secure Data Processing 16 | - *Scenario*: Use private subnets for processing sensitive data and ensure that only necessary traffic is allowed. 17 | - *Benefits*: Enhances security and compliance for sensitive data operations. -------------------------------------------------------------------------------- /VPC/VPC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N4si/Learn_AWS_from_Scratch/9d64f9841539bc892f90a241e4b6f55e76a6fb37/VPC/VPC.png -------------------------------------------------------------------------------- /VPC/VPC_Diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/N4si/Learn_AWS_from_Scratch/9d64f9841539bc892f90a241e4b6f55e76a6fb37/VPC/VPC_Diagram.png --------------------------------------------------------------------------------