grupoarrfug.com

Understanding AWS: A Comprehensive Guide for Beginners

Written on

Chapter 1: An Introduction to AWS

This is the third installment in a five-part series summarizing key points from freeCodeCamp.org’s extensive 14-hour Cloud Practitioner course. This resource is designed to provide quick refreshers, facilitate text searches, and assist anyone looking to grasp the fundamentals of AWS or prepare for the Cloud Practitioner exam. Essentially, you have access to my condensed notes.

Menu: E1 E2 E3 E4 E5 (links to E4-E5 will be added later)

Solution Architecture

Maximizing the core features of cloud computing involves understanding:

  • Availability
  • Scalability
  • Elasticity
  • Fault Tolerance
  • Reliability

Scalability refers to the capability to upgrade server resources. This can be done vertically by upgrading to a larger server or horizontally by adding more servers, which enhances availability.

Elasticity is even more crucial than scalability. It allows for automatic adjustments in capacity—both upgrades and downgrades—based on the demands of traffic, memory, or computational power. This can be achieved through horizontal scaling, which includes:

  • Scaling Out (adding more resources)
  • Scaling In (reducing resources)

Automatic elasticity is managed through:

  • Auto Scaling Groups (ASG)

You set up custom metrics and rules to determine thresholds.

Fault Tolerance

This is typically realized through redundancy, which can be implemented by:

  • Failover Systems (e.g., RDS Multi-AZ for synchronized duplicate databases)
  • High Durability
  • Business Continuity Plans
  • Backups and Recovery
  • Disaster Recovery Strategies

This includes various approaches like pilot light (data replicated in another region), warm standby (scaling up a smaller version of your infrastructure), and multisite configurations (active/inactive copies in different regions).

Architectural Design

Creating an architectural design can be accomplished using tools like Adobe XD (which is free) or PowerPoint. You can source icons from AWS by searching for architectural icons, such as groups, services, and resources.

Here’s a detailed view of a T2 EC2 instance within an Auto Scaling group designed for elasticity:

T2 EC2 instance in Auto Scaling group

Additionally, here's a closer look at the database and its authentication secrets linked to the T2 instance:

Database authentication secrets for T2 instance

Deployment Management

Deployment from GitHub is handled using CodePipeline along with various CloudFormation services.

Command Line Access

AWS resources and services can be accessed and created through command line interfaces. There are two main options:

  1. AWS CloudShell:
    • Accessible directly from the AWS Management Console.
    • Comes pre-equipped with tools like AWS CLI and AWS SDKs.
    • Provides 1 GB of persistent storage.
    • Inherits permissions of the logged-in AWS user.
  2. AWS CLI (Command Line Interface):
    • Requires local installation and setup on your machine.
    • Enables interaction with AWS services from your terminal.
    • Does not offer persistent storage; files must be stored locally.
    • Requires local configuration of AWS credentials.

In summary, CloudShell is a quick-to-use web-based tool for AWS, while the CLI offers more flexibility but necessitates a local setup.

AWS API and Infrastructure Automation

You can manage AWS resources programmatically through the AWS API, utilizing resource numbers (ARN), Cloud9 IDE, and AWS SDK.

Infrastructure as Code (IaC) allows for full automation in creating infrastructure. This can be achieved through:

  • AWS CloudFormation (CFN): Declarative, using JSON/YAML.
  • AWS Cloud Development Kit (CDK): Imperative, faster, and more flexible.

CloudFormation is simpler but limited in creating dynamic structures, making it popular among DevOps engineers. For instance, you can utilize Cloud9 with the micro T2 free tier to demonstrate CloudFormation.

Compute Options on AWS

The varying levels of shared responsibility across IaaS, PaaS, SaaS, and FaaS are crucial to understanding AWS.

  1. AWS Dedicated Hosts:
    • Physical servers wholly dedicated to your usage in an AWS data center.
    • Allows for the use of existing server-bound software licenses.
    • Provides control over instance placement and consistent host ID.
    • Higher costs apply, but beneficial for compliance and licensing.
  2. Virtual Machines (Amazon EC2):
    • Offers resizable compute capacity in the cloud.
    • Provides more control over infrastructure compared to containers and serverless options.
    • A wide selection of instance types are available for various applications.
  3. Containers (Amazon ECS, EKS):
    • Utilize orchestration services for deploying, managing, and scaling containerized applications.
    • Run multiple services within the same VM infrastructure.
    • Easier to scale and manage than VMs, though knowledge of container orchestration is required.
  4. Serverless Compute (AWS Lambda):
    • Enables code execution without managing servers.
    • Automatically scales based on demand.
    • Charges apply only for the compute time used, with no fees when inactive.

AWS Lambda Limitations

AWS Lambda has notable hardware constraints:

  • Maximum execution time for a function is 15 minutes, with a default timeout of 3 seconds.
  • Each invocation is capped at a payload size of 6MB.
  • Memory allocation is limited to just under 3GB.
  • Cold start durations can vary from under 100 ms to over 1 second.

It's essential to note that Lambda optimizes based on invocation patterns, leading to more frequent cold starts during development and testing compared to production workloads.

Menu: E1 E2 E3 E4 E5 (links to E4-E5 will be added later)

Chapter 2: Learning Resources

The first video, "52 Weeks of AWS: Episode 3: AWS Cloud Practitioner Part 1," offers insights into AWS principles and practices for beginners.

The second video, "AWS Beginner's Guide: Step-by-Step Intro to AWS," provides a comprehensive introduction to AWS for those new to the platform.

Share the page:

Twitter Facebook Reddit LinkIn

-----------------------

Recent Post:

Unlock Happiness: 5 Habits You Must Eliminate Today

Discover five habits that could be sabotaging your happiness and learn how to make positive changes for a more fulfilling life.

From Overthinking to Online Success: Embrace Action Over Perfection

Discover how overcoming overthinking can unlock your online success through action and experimentation.

Empower Your Journey: 3 Key Habits for Achieving Success

Discover three transformative habits that can help you achieve success and live your best life.