A new day will dawn ๐โฆ For those who stand longโ
Happy National Avocado๐ฅ Day!
Our journey ๐ this week takes us back to our humble beginnings. Well, sort ofโฆ If you recall we began our magicalโจ mystery tour of learnings back in March with AWS EC2. Then the last 2 weeks we re-routed course back to AWS, concentrating on AWSโs data services. So, we thought it might make sense to take one step ๐ฃ back in order to take two steps ๐ฃ ๐ฃ forward by focusing this weekโs enlightenments on the fundamentals of the AWS Cloudโ๏ธ and its Key๐ concepts, core services, security๐, architecture, pricing ๐ถ, and support.
Fortunately, we knew the right place to load up on such knowledge. Where of course you ask? But to no other than the fine folks at AWS Training through their free online course AWS Cloudโ๏ธ Practitioner Essentials (Second Edition). AWS spared no expense๐ฐ by putting together an all-star๐ lineup of AWS-erโs led by Kirsten Dupart, an old familiar friend, Blaine Sundrud ,Mike Blackmer,Raf Lopes, Heiwad Osman, Kent Rademacher , Russell Sayers ,Seph Robinson , Andy Cummings , Ian Falconer ,Wilson Santana ,Wes Gruver, Tipu Qureshi, and Alex Buell
The objective of the course was to highlight the following main areas:
- AWS Cloudโ๏ธ global infrastructure
- AWS Cloudโ๏ธ architectural principles
- AWS Cloudโ๏ธ value proposition
- AWS Cloudโ๏ธ overview of security๐ and compliance
- AWS Cloudโ๏ธ overview of billing, account management, and pricing ๐ถ models
The course beings with introduction to the concept of โCloudโ๏ธ Computingโ which of course is the on-demand availability of computing system resources, data Storage ๐ and computing powerโก๏ธ, without direct active management by the user. Instead of having to design and build traditional data centers, Cloudโ๏ธ computing enables us to access a data center and all of its resources, via the Internet or Cloudโ๏ธ.
Amazon Web Services (AWS) is a secure๐ Cloudโ๏ธ services platform, offering compute powerโก๏ธ, database Storage ๐, content delivery and other functionality to help businesses to scaleโ๏ธ up or scaleโ๏ธ down based on actual needs. There are 5 main areas that AWS Cloudโ๏ธ emphases Scalability โ๏ธ, Agility, Elasticity๐งโโ๏ธ, Reliability and Security๐.
- Scalability โ๏ธ is the ability to resize your resources as necessary. AWS Cloudโ๏ธ provides a scalable computing platform designed for high availability and dependability through tools and solutions.
- Agility is the ability to increase speed๐๐ป, offer an ease of experimentation and promoting innovation. AWS empowers the user to seamlessly spin up servers in minutes, shut down servers when not needed or allow unused resources to be allocated for other purposes
- Elasticity๐งโโ๏ธ is the ability to scale โ๏ธ computing resources up or down easily. AWS makes it easy to quickly deploy new applications, scaleโ๏ธ up as the workloads increase and shut down resources that are no longer required
- Reliability is the ability of a system to recover from infrastructure or service failure. AWS provides reliability by hosting your instances and resources across multiple locations utilizing regions, availability zones and edge locations.
- Security ๐ is the ability to retain complete control and ownership over your data and meet regional compliance and data residency requirements. AWS provides highly secure ๐ data centers, continuous monitoring ๐ and industry-leading capabilities across facilities, networks, software, and business processes
There are three methods in which you can access AWS resources:
- AWS management console which provides a graphical user interface (GUI) to access AWS services
- AWS command line interface (CLI) which allows you to control AWS services from the command line
- AWS Software Development kits (SDK) enables you to access AWS using a variety of programming languages
Next the course provides us with some brief vignettes covering the AWS core services, AWS Global Infrastructure, and AWS Integrated Services.
AWS Core Services
Elastic Compute Cloudโ๏ธ (EC2) is a web service that provides secure, resizable compute capacity in the Cloudโ๏ธ. EC2 instances are “pay as go”. You only pay for the capacity you use, and you have the ability to have different Storage ๐ requirements.
Key๐ components of EC2 are:
- Amazon machine image (AMI) which is an OS image used to build an instance
- Instance Type refers to hardware capabilities (CPU, Memory)
- Network โ Public and Private IP addresses
- Storage ๐ โ SSDs, Provisioned IOPs SSD, Magnetic disks
- Keypairs๐ (Secure) allow you to connect to instances after they are launched
- Tags ๐ท provide a friendly name to identify resources in an AWS.
Elastic block store (EBS) provides persistent block level Storage๐ volumes for your EC2 instances
- EBS volumes are designed for being durable and available volumes that are automatically replicated across multiple servers running in the availability zones.
- EBS Volumes must be in the same AZ as the instances they are attached to
- EBS gives you the ability to create point in timeโฐ snapshots of your volumes and allows AWS to create a new volumes from a snapshot at any timeโฐ.
- EBS volumes have the ability to increase capacity and change to different types
- Multiple EBS volumes can be attached to an instance
Simple Storage๐ Service (S3) is a fully managed Storage๐ service that provides a simple API for storing and retrieving data. S3 uses buckets๐ to store data. S3 buckets๐ are associated with a particular AWS region When you store data in a bucket๐ it’s redundantly stored across multiple AWS availability zones within a given region
- Data stored in S3 is serverless. So, you do not need to manage any infrastructure.
- S3 supports objects as large as several terabytes.
- S3 also provides low latency access to data over HTTP or HTTPS
AWS Global Infrastructure
The AWS Global Infrastructure consists of Regions, Availability Zones, and Edge locations providing highly available, fault tolerant, and scalable infrastructures.
AWS regions are multiple geographical ๐ areas that host two or more availability zones and are the organizing level for AWS services.
Availability zones are a collection of data centers within a specific region. Each availability zone is physically isolated from one another but connected together through low latency, high throughput, and highly redundant networking. AWS recommends provisioning your data across multiple availability zones.
As of April 2020, AWS spans 70 Availability Zones within 22 Regions around the globe ๐.
Edge locations are where end users access services located at AWS. They are located in most of the major cities ๐ around the world ๐ and are specifically used by Amazon CloudFront๐ฉ which is a content delivery network (CDN) that distributes content to end user to reduce latency.
Amazon Virtual Private Cloudโ
๏ธ (VPC) is a private network within the AWS Cloudโ๏ธ that adheres to networking best practices as well as regulatory and organizational requirements. VPC is an AWS foundational service that integrates with many of the AWS services. VPC leverages the AWS global infrastructure of regions and availability zones. So, it easily takes advantage of high availability provided by AWS. VPC exists within regions and can span across multiple availability zones. You can create multiple subnets in a VPC. Although fewer is recommended to limit the complexity of the network.
Security๐ Groups acts as a virtual ๐ฅ firewall for your virtual servers to control incoming and outgoing traffic๐ฆ. It’s another method to filter traffic๐ฆ to your instances. It provides you control on what traffic๐ฆ to allow or to deny. To determine who has access to your instances you would configure a Security๐ group rule.
AWS CloudFormation๐จ โInfrastructure as Codeโ allows you to use programming languages, JSON files, or simple text files; to model and provision, in an automated and secure manner, all the resources needed for your applications across all regions and accounts.
โEvery AWS service that you learned about is another tool ๐ to build solutions. The more toolsโ you can bring to the table, the more powerful ๐ช you become.โ -Andy Cummings
AWS Integrated Services
AWS offers a variety of services from A-Z. So, it would impossible to review every service in a six-hour course. Below are some of the services highlighted in the course:
Elastic Load Balancing ๐๐ปโโ๏ธ distributes incoming application traffic๐ฆacross multiple AWS services like EC2 instances, containers, IP addresses, and Lambda functions automatically. There are 3 kinds of load balancers Network Load Balancer๐๐ปโโ๏ธ, Classic Load Balancer ๐๐ปโโ๏ธ (ELB) and Application Load Balancer๐๐ปโโ๏ธ(ALB).
- Network Load Balancer ๐๐ปโโ๏ธ is best suited for load balancing of TCP, UDP and TLS traffic๐ฆ where extreme performance is required.
- Classic Load Balancer ๐๐ปโโ๏ธ provides basic load balancing across multiple Amazon EC2 instances and operates at both the request level and connection level.
- Application Load Balancer ๐๐ปโโ๏ธ offers most of the features provided by the classic load Balancer ๐๐ปโโ๏ธ and adds some important features and enhancements. Its best suited for load balancing of HTTP and HTTPS traffic๐ฆ
AWS Autoscalingโ๏ธ monitors ๐ your applications and automatically adjusts capacity to maintain steady, predictable performance at the lowest possible cost. Autoscalingโ๏ธ removes the guesswork of how many EC2 instances you need at a point in timeโฐ to meet your workload requirements. Their are three core components that are need at launch configuration, “the what to deploy”; An Autoscalingโ๏ธ group (“the where to deploy”) and an Autoscalingโ๏ธ policy (“when to deploy”).
- Dynamic auto scalingโ๏ธ is a common configuration used with AWS CloudWatchโ๏ธalarms based on performance information from your EC2 instance or load balancer๐๐ปโโ๏ธ.
Autoscalingโ๏ธ and Elastic load balancing ๐๐ปโโ๏ธ automatically scaleโ๏ธ up or down based on demands backed by Amazonโs massive infrastructure you have access to compute and Storage ๐ resources whenever you need them
Amazon route 53๐ฎis a global, highly available DNS service that allows you to easily register and resolve DNS names, providing a managed service of reliable and highly scalable โ๏ธ way to route ๐ฎโโ๏ธ end users to Internet applications. Route 53 offers multiple ways to route๐ฎโโ๏ธ your traffic๐ฆ enabling you to optimize latency for your applications and users.
Amazon Relational Database Service (RDS๐ข) is a database as a service (DBaaS) that makes provisioning, operating and scalingโ๏ธ either up or out seamless. In addition, RDS๐ขmakes other time-consuming administrative tasks such as patching, and backups a thing of the past. Amazon RDS๐ขprovides high availability and durability through the use of Multi-AZ deployments. It also lets you run your database instances an Amazon VPC, which provides you the control and security๐.
AWS Lambda is a compute service that lets you run code without provisioning or managing servers. AWS Lambda executes your code only when needed and scalesโ๏ธ automatically to thousands of requests per second.
AWS Elastic Beanstalk๐ฑ is an easy-to-use service for deploying and scaling web applications and services developed with Javaโ๏ธ , NET, PHP, Node.js, Python๐, Ruby๐, Go, and Docker๐ณ on familiar servers such as Apache, Nginx, Passenger, and IIS. Elastic Beanstalk๐ฑ employs Auto Scalingโ๏ธ and Elastic Load Balancing๐๐ปโโ๏ธ to scaleโ๏ธ and balance workloads. It provides tools๐ in the form of Amazon CloudWatchโ๏ธ to monitor ๐ the healthโค๏ธ of deployed applications. It also provides capacity provisioning due to its reliance on AWS S3 and EC2.
Amazon Simple Notification Service (SNS) ๐จ is a highly available, durable, secure๐, fully managed pub/sub messaging service like Googleโs pub/sub that enables you to decouple microservices, distributed systems, and serverless applications. Additionally, SNS๐จ can be used to fan out notifications to end users using mobile push, SMS, and emailโ๏ธ.
Amazon CloudWatchโ๏ธ is a monitoring ๐ service that allows you to monitor ๐ AWS resources and the applications you run ๐๐ป on them in real time. Amazon CloudWatchโ๏ธ features include collecting and tracking metrics like CPU utilization, data transfer, as well as disk I/O and utilization. Some of the components that make up Amazon CloudWatchโ๏ธ include metrics, alarms, events, logs and dashboards
Amazon CloudFront๐ฉ uses a global ๐network of more than 80 locations and more than 10 regional edge caches for content delivery (CDN). It’s integrated with the AWS services such as AWS web application๐ฅ firewall, certificate manager, route 53, and S3 as well as other AWS services.
AWS CloudFormation๐จ is a fully managed service which acts as an engine ๐ to automate the provisioning of AWS resources. CloudFormation๐จ reads template files which specify the resources to deploy. Provision resources are known as the stack. Stacks ๐ can be created updated or deleted through CloudFormation๐จ.
AWS Architecture
When one refers to AWS Architecture one need to refer to no further than to the AWS Well-Architected Framework. The AWS Well-Architected Framework originally began as a single whitepaper but expanded into more of a doctrine focused on Key๐ concepts, design principles, and architectural best practices for designing secure, high-performing, resilient, and efficient infrastructure and running ๐๐ป workloads in the AWS Cloudโ๏ธ .
The AWS Well-Architected Framework is based on five pillars; operational excellence, security๐ , reliability, performance efficiency, and cost optimization.
- Operational excellence focuses on running ๐๐ป and monitoring ๐ systems and continually improving processes and procedures.
- Security๐ centers on protecting information and systems.
- Reliability highlights that workload performs consistently as intended and could quickly recover from failure
- Performance efficiency concentrates on efficiently using computing resources.
- Cost optimization emphasis on cost avoidance.
Reference Architecture – Fault Tolerance and High Availability
Both Fault Tolerance and High Availability are cornerstones of infrastructure design strategies to keep critical applications and data up and running ๐๐ป
Fault Tolerance refers to the ability of a system (computer, network, Cloudโ๏ธ cluster, etc.) to continue operating without interruption when one or more of its components fail.
High availability refers to systems that are durable and likely to operate continuously functioning and accessible and that downtime is minimized as much as possible, without the need for human intervention.
AWS provides services and infrastructure to build reliable, fault-tolerant, and highly available systems in the Cloudโ๏ธ.
Some AWS services that can assist in providing high availability:
- Elastic load balancers๐๐ปโโ๏ธ
- Elastic IP addresses
- Route 53 ๐ฎโโ๏ธ
- Auto scalingโ๏ธ
- CloudWatchโ๏ธ
Some AWS services that provide fault tolerant tools are:
Amazon Web Services offers Cloudโ๏ธ web ๐ธ hosting solutions that provide businesses, non-profits, and governmental organizations with low-cost ways to deliver their websites and web ๐ธ applications.
Security๐
When it comes to security๐ AWS doesnโt take this lightly. So much so that when you are a newbie to AWS it could be quite challenging just to connect to your Cloudโ๏ธ environment. AWS global infrastructure is built with the highest standards to ensure privacy๐คซ and data security๐. AWS infrastructure has strong ๐ช safeguards in place to protect customers privacy ๐คซ. AWS continuously improves and innovates security๐ incorporating customer feedback and changing requirements. AWS provides security๐ specific tools๐ and features across network security๐, configuration management, access control, and data security๐. AWS provides monitoring ๐ and logging tools๐ to provide full visibility๐ into what is happening in your environment. AWS provides several security๐ capabilities and services like built-in firewalls๐ฅ to increase privacy๐คซ and control network access. In addition, AWS offers Encryption of data both in transit and data at rest in the Cloudโ๏ธ. AWS offers you capabilities to define, enforce, and manage user๐ค access policies across AWS services.
The shared๐ซresponsibility model
AWS believes Security๐ and Compliance is a shared๐ซresponsibility between AWS and the customer. The shared๐ซresponsibility model alleviates the operational burden as AWS operates, manages and controls the components from the host operating system and virtualization layer down to the physical security๐ of the facilities in which the service operates. The customer assumes responsibility and management of the guest operating system (including updates and security๐ patches), other associated application software as well as the configuration of the AWS provided security๐ group๐ฅ firewalls.
Security๐ โofโ the Cloudโ๏ธ vs Security๐ โinโ the Cloudโ๏ธ
- โSecurity๐ of the Cloudโ๏ธโ – AWS is responsible for protecting the infrastructure that runs all of the services offered in the AWS Cloudโ๏ธ.
- โSecurity๐ in the Cloudโ๏ธโ โ Customer responsibility will be determined by the AWS Cloudโ๏ธ services that a customer selects.
Inherited Controls are controls that the customer fully inherits from AWS.
Shared๐ซControls are controls which apply to both the infrastructure layer and the customer layers, but in completely separate contexts or perspectives. Examples include:
- Patch Management โ AWS is responsible for patching and fixing flaws within the infrastructure, but customers are responsible for patching their guest OS and applications.
- Configuration Management โ AWS maintains the configuration of its infrastructure devices, but a customer is responsible for configuring their own guest operating systems, databases, and applications.
- Awareness & Training – AWS trains AWS employees, but a customer must train their own employees.
Customer Specific โ Controls which are solely the responsibility of the customer based on the application they are deploying within AWS services. Examples include:
AWS Cloudโ๏ธ Security๐ Infrastructure and services
AWS Identity and Access Management (IAM) is one of the core secure services (at no additional charge) to enforce security๐ across all AWS Service offerings. IAM provides Authentication, Authorization, User Management and Central User Repository. In IAM, you can create and manage users, groups, and roles to either allow or deny access to specific AWS resources.
- Users๐ค are permanent named Operator (can be either human or machine)
- Groups ๐ฅ are collections of users (can be either human or machine)
- Roles โ are an authentication method. The Key๐ part is the credentials with the role are temporary.
As for permissions, it is enforced by a separate object known as a policy document ๐.
A Policy document๐ is JSON document๐ that attaches either directly to a user๐ค or a group๐ฅ or it can be attached directly to a role.
AWS CloudTrail ๐จ is a service that enables governance, compliance, operational auditing, and risk auditing CloudTrail๐จ records all successful or declined authentication and authorization.
Amazon Inspector ๐ต๏ธโโ๏ธ is an automated security๐ and vulnerability assessment service that assesses applications for exposure, vulnerabilities, and deviations from best practices. Amazon Inspector produces a detailed list of security๐ findings prioritized by level of severity in the following areas:
- Identify Application Security๐ Issues
- Integrate Security๐ into DevOps
- Increase Development Agility
- Leverage AWS Security๐ Expertise
- Streamline Security๐ Compliance
- Enforce Security๐ Standards
AWS Shield๐ก is a managed Distributed Denial of Service (DDoS) protection service. There are two tiers of AWS Shield๐ก Standard and Advanced.
- AWS Shield๐กStandard defends against most common, frequently occurring network and transport layer DDoS attacks that target your web site or applications.
- AWS Shield๐กAdvanced provides additional detection against large and sophisticated DDoS attacks, near real-time visibility into attacks, and integration with AWS web ๐ธapplication ๐ฅ firewall (WAF).
Pricing and Support
AWS offers a wide range of Cloudโ๏ธ computing services. For each service, you pay for exactly the amount of resources you actually use.
- Pay as you go.
- Payless then when you reserve.
- Pay even less per unit by using more
- Pay even less as your AWS Cloudโ๏ธ grows
There are three fundamental characteristics you pay for with AWS:
- Compute ๐ป
- Storage ๐
- Data transfer out โก๏ธ
Although you are charged for data transfer out, there is no charge for inbound data transfer or for data transfer between other services with the same region.
AWS Trusted Advisor is an online tool๐ง that optimizes your AWS infrastructure, increase reliability, security๐ and performance, reduce your overall costs, and monitoring ๐. AWS Trusted Advisor enforces AWS best practices in five categories:
- Cost optimization
- Performance
- Security๐
- Fault tolerance
- Service limits
AWS offers 4 levels of Support
- Basic support plan (Included with all AWS Services)
- Developer support plan
- Business support plan
- Enterprise support plan
Obviously, there was a lot to digest๐ but now we have a great overall understanding of the AWS Cloudโ๏ธ concepts, some of the AWS services, security๐, architecture, pricing ๐ถ, and support and feel confident to continue our journey in the AWS Cloudโ๏ธ. ๐
โThis is the end, Beautiful friend.. This is the end, My only friend, the endโ?
Below are some areas I am considering for my travels next week:
- Neo4J and Cypher
- More with Google Cloud Path
- ONTAP Cluster Fundamentals
- Data Visualization Tools (i.e. Looker)
- Additional ETL Solutions (Stitch, FiveTran)
- Process and Transforming data/Explore data through ML (i.e. Databricks)
Thanks –
–MCS