Week of August 28th

Taking care of business (every way)

Happy National Bow Tie ๐ŸŽ€Day!

So last week, we dusted ourselves off, climbed ๐Ÿง—โ€โ™‚๏ธ back up on our horse ๐ŸŽ, and reconvened with our continuous learning adventures. To get ourselves warmed๐Ÿ”ฅ up we decided to renew our knowledge with PowerShell โšก๏ธ๐Ÿš but we still had some unfinished business to attend too. If you have been following our travels ๐Ÿš€, you might remember earlier this month we hit a bump in the road. But just like the armless Black Knight ๐Ÿ›ก๐Ÿ—ก from Monty Python and the Holy Grail  it was just a mere โ€œflesh woundโ€. Ok, perhaps not. Actually, at the time ๐Ÿ•ฐ๏ธ it stung ๐Ÿ pretty bad ๐Ÿ˜ž  but after a two-week investigation by the good folks at AWS โ˜๏ธ it was deemed that my test on the 4th of August had indeed got corrupted. They offered their sincere apology for the inconvenience and more importantly provided me a voucher so I can reschedule the AWS Cloud Practitioner Exam at no cost. Well, this week I decided to re-take the exam ๐Ÿ“ and I am happy ๐Ÿ˜Š to report I passed the exam ๐Ÿ“ without issue.

To help prepare for the exam๐Ÿ“  I purchased the Udemy – AWS Certified Cloud Practitioner 500 Practice Exam Questions. There were some similar questions taken from this course’s practice tests but it seems AWSโ˜๏ธ likes to keep their certified professionals honest. So there were quite a few questions I have never seen before.

So itโ€™s highly recommend that in addition to gaining practical experience working with AWS that you also review there courseware and fully understand the core concepts like the AWS Well-Architected Framework and have a good basic understanding of many of the AWS Products and services 

Despite the obstacle earlier this month, it was good experience preparing for the exam and ultimately passing and getting the certification. Now, we are even more well reversed in the cloud โ˜๏ธ and have street cloud โ˜๏ธ credit to back it up. ๐Ÿ˜Ž

โ€œAnd I’m on my wayโ€ฆ I don’t know where I’m going ๐Ÿคท๐Ÿปโ€โ™‚๏ธ… I’m on my way… I’m taking my time โณ… But I don’t know where?โ€

Below are some areas I am considering for my travels next week:

  • Azure Fundamentals Courseware

Thanks โ€“

โ€“MCS

Week of July 31st

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๐Ÿ”.

  1. 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:

  1. AWS management console which provides a graphical user interface (GUI) to access AWS services
  2. AWS command line interface (CLI) which allows you to control AWS services from the command line
  3. 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 RegionsAvailability 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).

  1. Network Load Balancer ๐Ÿ‹๐Ÿปโ€โ™€๏ธ is best suited for load balancing of TCP, UDP and TLS traffic๐Ÿšฆ where extreme performance is required.
  2. Classic Load Balancer ๐Ÿ‹๐Ÿปโ€โ™€๏ธ provides basic load balancing across multiple Amazon EC2 instances and operates at both the request level and connection level.
  3. 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 excellencesecurity๐Ÿ” , reliabilityperformance efficiency, and cost optimization.

  1. Operational excellence focuses on running ๐Ÿƒ๐Ÿป and monitoring ๐ŸŽ› systems and continually improving processes and procedures.
  2. Security๐Ÿ” centers on protecting information and systems.
  3. Reliability highlights that workload performs consistently as intended and could quickly recover from failure
  4. Performance efficiency concentrates on efficiently using computing resources.
  5. 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:

  • SQS
  • S3 ๐Ÿ—„
  • RDS๐Ÿ›ข

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:

  1. Compute ๐Ÿ’ป
  2. Storage ๐Ÿ—„
  3. 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 reliabilitysecurity๐Ÿ” and performance, reduce your overall costs, and monitoring ๐ŸŽ›. AWS Trusted Advisor enforces AWS best practices in five categories:

  1. Cost optimization
  2. Performance
  3. Security๐Ÿ”
  4. Fault tolerance
  5. Service limits

AWS offers 4 levels of Support

  1. Basic support plan (Included with all AWS Services)
  2. Developer support plan
  3. Business support plan
  4. 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

Week of July 24th

โ€œAnd you may ask yourself ๐Ÿค”, well, how did I get here?โ€ ๐Ÿ˜ฒ

Happy Openingโšพ๏ธ Day!

Last week, we hit a milestone of sorts with our 20th submission๐ŸŽ–since we started our journey way back in March.๐Ÿ˜Š To commemorate the occasion, we made a return back to AWS by gleefully ๐Ÿ˜Š exploring their data ecosystem. Of course, trying to cover all the data services that are made available in AWS in such a short duration ๐Ÿ•ฐ would be a daunting task.

So last week, we concentrated our travels to three of their main offerings in the Relational Database, NoSQL, and Data warehouse realms. This being of course RDS๐Ÿ›ข, DynamoDB๐Ÿงจ, and Redshift๐ŸŽ†. We felt rather content ๐Ÿค— and enlighten๐Ÿ’กwith AWSโ€™s Relational Database and Data warehouse offerings, but we were still feeling a little less satisfied ๐Ÿค” with NoSQL as we really just scratched the surface on what AWS had to offer.

To recap, we had explored ๐Ÿ”ฆ DynamoDB๐Ÿงจ AWSโ€™s multi-model NoSQL service which offers support for a key-value๐Ÿ”‘and their propriety document๐Ÿ“œ database. But we were still curious to learn more about a Document๐Ÿ“œ database that offers MongoDB๐Ÿƒsupport as well in AWS. In addition, an answer to the hottest๐Ÿ”ฅ trendย in โ€œNot Just SQL Solutionsโ€, Graph๐Ÿ“ˆ Database.

Well of course being the Cloudโ˜๏ธ Provider that offers every Cloudโ˜๏ธnative service from A-Z, AWS delivered with many great options. So we began our voyage heading straight over to DocumentDB๐Ÿ“œ. AWSโ€™s fully managed database service with MongoDB๐Ÿƒcompatibility. As with all AWS services, Document DB๐Ÿ“œ was designed from the ground up to give the most optimal performance, scalabilityโš–๏ธ, and availability. DocumentDB๐Ÿ“œ like the Cosmo DB๐Ÿช MongoDB๐ŸƒAPI makes it easy to set up, operate, and scale MongoDB-compatible databases. In other words, no code changes are required, and all the same drivers can be utilized by existing legacy MongoDB๐Ÿƒapplications.

In addition, Document DB๐Ÿ“œ solves the friction and complications of when an application tries to map JSON to a relational model. DocumentDB๐Ÿ“œ solves this problem by making JSON documents a first-class object of the database. Data is stored in the form of documents๐Ÿ“œ. These documents๐Ÿ“œ are stored into collections. Each document๐Ÿ“œcan have a unique combination and nesting of fields or key-value๐Ÿ”‘ pairs. Thus, making querying the database fasterโšก๏ธ, indexing more flexible, and repetitions easier.

Similar to other AWS Data offerings, the core unit that makes up DocumentDB๐Ÿ“œย is the cluster. A cluster consists of one or more instances and cluster storage volume that manages the data for those instances. All writes๐Ÿ“ are done through the primary instance. All instances (primary and replicas) support readย ๐Ÿ“– operations. ย The cluster’s data stores six copies of your data across three different Availability Zones. AWS easily allows you to create or modify clusters. When you modify a cluster, AWS is really just spinning up a new cluster behind the curtains and then migrates the data taking what is an otherwise complex task and making itย seamless.

As prerequisite, you first must create and configure a virtual private cloudโ˜๏ธย (VPC) to place DocumentDB๐Ÿ“œย in. You can leverage an existing one or you can create a dedicated one just for DocumentDB๐Ÿ“œ. Next, you need to configure security๐Ÿ”’ย groups for your VPC. Security๐Ÿ”’ย groups are what controls who has access to your Document๐Ÿ“œ Databases . As for credentials๐Ÿ”ย and entitlements in DocumentDB๐Ÿ“œ, it is managed through AWS Identity and Access Management (IAM).By default, the cluster Document DB๐Ÿ“œaccepts secure connections using Transport Layer Security (TLS). So, all traffic in transit is encrypted and Amazon DocumentDB๐Ÿ“œ uses the 256-bit Advanced Encryption Standard (AES-256) to encrypt your data or allows you to encrypt your clusters using keys๐Ÿ”‘ you manage through AWS Key๐Ÿ”‘Management Service (AWS KMS) so data at rest is always encrypted.ย 

โ€œSuch wonderful things surround youโ€ฆWhat more is you lookin’ for?โ€

Lately, we have been really digging Graph๐Ÿ“ˆ Databases. We had our first visit with Graph๐Ÿ“ˆย Databases when we were exposed to the Graph๐Ÿ“ˆย API throughย Cosmos DB๐Ÿชย earlier this month and then furthered our curiosity throughย Neo4J.ย Well, now armed with a plethora of knowledge in the Graph๐Ÿ“ˆย Database space we wanted to see what AWS had to offer and once again they did not disappoint.๐Ÿ˜Š

First let me start by writing, Itโ€™s a little difficult to compare AWS Neptune๐Ÿ”ฑ to Neo4J although Nous Populi fromย Leapgraphย does an admirable job.ย Obviously, both are graph๐Ÿ“ˆ databases but architecturally there some major differences in their graph storage model and query languages. Neo4J uses Cypher and Neptune๐Ÿ”ฑ uses Apache TinkerPop or Gremlin๐Ÿ‘นย same asย Cosmos DB๐Ÿช as well as SPARQL. Where Neptune๐Ÿ”ฑ really shinesโ˜€๏ธ is that itโ€™s not just another graph database but a great service offering within the AWS portfolio. So, it leverages all the great bells๐Ÿ””ย and whistles like fastโšก๏ธ performance, scalabilityโš–๏ธ, High availability and durability. ย As well as being a fully managed service that we have come accustomed too like handling hardware provisioning, software patching, backup, recovery, failure detection, and repair. Neptune๐Ÿ”ฑ ย is an optimized for storing billions of relationships and querying the graph with milliseconds latency.

Neptune๐Ÿ”ฑ uses database instances. The primary database instance supports both read๐Ÿ“– and write๐Ÿ“ operations and performs all the data modifications to the cluster. Neptune๐Ÿ”ฑย  also uses replicas which connects to the same cloud-nativeโ˜๏ธย storage service as the primary database instance but only supports read-only operations. There can be up to 15 of these replicas across multiple AZs. In addition, Neptune๐Ÿ”ฑย ย supports encryption at rest.

As prerequisite, you first must create and configure a virtual private cloudโ˜๏ธ (VPC) to place Neptune๐Ÿ”ฑย  in. You can leverage an existing one or you can create a dedicated one just for Neptune๐Ÿ”ฑย  Next, you need to configure security๐Ÿ”’ย groups for your VPC. Security๐Ÿ”’ย groups are what controls who has access to your Neptune๐Ÿ”ฑ. As for credentials๐Ÿ”ย and entitlements in Neptune๐Ÿ”ฑย  is managed through AWS Identity and Access Management (IAM). Your data at rest in the Neptune๐Ÿ”ฑย  is encrypted using the industry standard AES-256-bit encryption algorithm on the server that hosts your Neptune๐Ÿ”ฑย  instance. ย Keys๐Ÿ”‘ย can also be used, which are managed through AWS Key๐Ÿ”‘ Management Service (AWS KMS).

โ€œLife moves pretty fastโšก๏ธ. If you don’t stop ๐Ÿ›‘ and look ๐Ÿ‘€ around once in a while, you could miss it.โ€

So now feeling pretty good ๐Ÿ˜Š about NoSQL on AWS, where do we go now? 

Well, as mentioned we have been learning so much over the last 5 months it could be very easy to forget somethings especially with limited storage capacity. So we decided to take a pause for the rest of the week and go back and review all that we have learned by re-reading all our previous blog posts as well as engaging in some Google Data Engineered solution Quests๐Ÿ›กto help reinforce our previous learnings

Currently, the fine folks at qwiklabs.com are offering anyone who wants to learn Google Cloud โ˜๏ธ skills an opportunity for unlimited access for 30 days.  So with an offer too good to be true as well as an opportunity to add some flare to our linked in profile and who doesnโ€™t like flare?  We dove right in head first!

โ€œWhere do we go? Oh, where do we go now? Now, now, now, now, now, now, nowโ€

Below are some topics I am considering for my travels next week:

  • OKTA SSO
  • 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

Week of July 17th

โ€œAny time โฐ of year… You can find it hereโ€

Happy World๐ŸŒŽ Emoji ๐Ÿ˜Š๐Ÿ˜œ Day! 

The Last few weeks we have been enjoying our time in Microsoft’s Cloudโ˜๏ธ Data Ecosystem and It was just last month that we found ourselves hanging out with the GCPโ˜๏ธ gang and their awesome Data offerings. All seemed well and good๐Ÿ˜Š except that we had been missing out on excursion to the one cloudโ˜๏ธ provider where it all began literally and figuratively.

Back when we first began our journey on a cold ๐Ÿฅถ and rainyโ˜”๏ธ day in March just as Covid-19๐Ÿฆ  occupied Wall Street ๐Ÿฆ and the rest of the planet ๐ŸŒŽ we started at the one place that disrupted how infrastructure and operations would be implemented and supported going forward.

Thatโ€™s right Amazon Web Services or more endearingly known to humanity as AWS. AWS was released just two decades ago by the its parent company that offers everything from A to Z.

AWS like its parent company has a similar mantra in the cloud โ˜๏ธ computing world as they offer 200+ Cloudโ˜๏ธ Services. So how the heck with so some many months passed that we havenโ€™t been back since? The question is quite perplexing? But like they say “all Cloudsโ˜๏ธโ˜๏ธ lead to AWS. So, here we are back in the AWS groove ๐ŸŽถ and eager ๐Ÿ˜† to explore ๐Ÿ”ฆthe wondrous world๐ŸŒŽ of AWS Data solutions. Guiding us through this vast journey would be Richard Seroter (who ironically recently joined the team at Google). In 2015, Richard authored an amazing Pluralsight course covering Amazon RDS๐Ÿ›ข, Amazon DynamoDB ๐Ÿงจ and Amazonโ€™s Redshift ๐ŸŽ†. It was like getting 3 courses for the price of 1! ๐Ÿ˜Š

Although the course was several years old, for the most part it still out lasted the test of timeย โฐย  by providing a strongย foundational knowledgeย for Amazonโ€™s relational, NoSQL, and Data warehousing solutions. But unfortunately in technology years, it’s kind of like dog๐Ÿ•ย  years. So obviously, there have been many innovations to all three of these incredible solutions including UI enhancements, architectural improvements and additional features to these great AWS offerings making them even more awesome!

So for a grand finale to our marvelous week of learning and to help us fill in the gaps on some of these major enhancements as well as offering some additional insights were the team from AWS Training and certification which includesย the talented fashionistaย Michelle Metzger, the always effervescent and insightfulย Blaine Sundrudย and on demos the man with a quirky naming convention for database objects the always wittyย Stephen Coleย 

Back in ourย Amazon Web Services Databases in Depthย course and in effort to make our journey that more captivating, Richard provided us with a nifty mobile sportsย ๐Ÿ€ย โšพ๏ธย ๐Ÿˆย  app solution written in Node.js which leverages the Amazon data offerings covered in the course as components for an end to end solution. As the solution, was written several years back it did require some updating on some deprecated libraries๐Ÿ“š and some code changes in order to make the solution work which made our learning that more fulfilling. So, after a great introduction from Richard where he compares and contrasts RDS๐Ÿ›ข, DynamoDB๐Ÿงจ, and Redshift๐ŸŽ†, we began our journey with Amazonโ€™s Relational Database Service (RDS๐Ÿ›ข).ย 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. In other words, AWS creates multiple instances of the databases in different Availability Zones making recovery from infrastructure failure automatic and almost transparent to the application. Of course like with all AWS offerings there always a heavy emphasis on security๐Ÿ”ย which itโ€™s certainly reassuring when you putting your mission critical data in their handsย ๐Ÿคฒ but it could also be a bit challenging at first to get things up and running when you are simply just trying connect to from your home computerย ๐Ÿ’ปย  back to the AWS infrastructure

As prerequisite, you first must create and configure a virtual private cloudโ˜๏ธ (VPC) to put to your RDS๐Ÿ›ขinstance(s) in. You can leverage an existing one or you can create a dedicated one for RDS๐Ÿ›ขinstance(s).

It is required that your VPC have at least two subnets in order to support the Availability Zones for high availability. If direct internet access is needed that you will need to add an internet gateway to your VPC.  

Next, you need to configure security๐Ÿ”’ย groups for your VPC. Security๐Ÿ”’ groups are what controls who has access to the RDS๐Ÿ›ข. RDS๐Ÿ›ข leverages three types of security groups (database, VPC, and EC2).ย As for credentials๐Ÿ”ย and entitlements in RDS๐Ÿ›ข, it is managed through AWS Identity and Access Management (IAM).ย At the time of the release of Richardโ€™sย course,ย Amazon Auroraย was new in the game and was not covered in depth in the course. In addition, at the same time only MySQL, Postgres, Oracle, MS SQL Server and the aforementioned Aurora were only supported at this time. AWS has since added support for MariaDB to their relational database service portfolio.ย ย 

Fortunately, our friends from the AWS Training and Certification group gave us the insights that we would require on Amazonโ€™s innovation behind their relational database built for the cloudโ˜๏ธ better known as Aurora.

So, with six familiar database engines (licensing costs apply) to choose from you have quite a few options. Another key๐Ÿ”‘ decision is to determines the resources you want your database to have. RDS๐Ÿ›ขoffers multiple options for optimized for memory, performance, or I/O.

I would be remised if we didnโ€™t briefly touch on Amazonโ€™s Aurora. As mentioned, itโ€™s one of Amazonโ€™s 6 database options with RDS๐Ÿ›ข. Aurora is fully managed by RDS๐Ÿ›ข. So it leverages the same great infrastructure and has all the same bellsย ๐Ÿ””ย and whistles.ย Aurora comes in two different flavors๐Ÿฆ MySQL and PostgreSQL. Although, I didnโ€™t benchmark Aurora performance in my evaluation AWS claims that Aurora is 5x faster than the standard MySQL databases. However, itโ€™s probably more likeย 3x faster.ย But the bottom line it is that it is faster and more cost-effectiveness for MySQL or PostgreSQL databases that require optimal performances, availability, and reliability. The secret sauce behind Aurora is that automatically maintains 6 copies of your data (which can be increased up to 15 replicas) that is spanned across 3 AZs making data highly available and ultimately providing laserโšก๏ธ fast performance for your database instances.

Please note: There is an option that allows a single Aurora database to span multiple AWS Regionsย ๐ŸŒŽย for an additional cost

In addition, Aurora uses an innovative and significantly faster log structured distributed storage layer than other RDS๐Ÿ›ขofferings.

โ€œWelcome my son, welcome to the machine๐Ÿค–โ€

Next on our plateย ๐Ÿฝย was to take a deep dive into Amazonโ€™s fast and flexible NoSQL database service a.k.a DynamoDB๐Ÿงจ.. DynamoDB๐Ÿงจ like Cosmo DB๐Ÿชย is a multi-model NoSQL solution.

DynamoDB๐Ÿงจ combines the best of those twoย ACIDย compliantย non-relational databases in a key-value๐Ÿ”‘ย and document database. It is a proprietary engine, so canโ€™t just take your MongoDB๐Ÿƒย database and convert it to DynamoDB๐Ÿงจ. But donโ€™t worry if you looking to move your MongoDB๐Ÿƒ works loads to Amazon,ย AWS offers Amazon DocumentDB (with MongoDB compatibility)ย but thatโ€™s for a later discussionย ๐Ÿ˜‰

As for DynamoDB๐Ÿงจ, it delivers a blazingโšก๏ธ single-digit millisecond guaranteed performance at any scaleโš–๏ธ. It’s a fully managed, multi-Region, multi-master database with built-in security๐Ÿ”, backup and restore options, and in-memory caching for internet-scale applications. DynamoDB๐Ÿงจย automatically scalesโš–๏ธย  up and down to adjust for the capacity and maintain performance of your systems. Availability and fault tolerance are built in, eliminating the need to architect your applications for these capabilities. An important concept to grasp while working with DynamoDB๐Ÿงจย  is that the databases are comprised ofย tables, items, and attributes.ย Again, there has been some major architectural design changes to DynamoDB๐Ÿงจย since Richardโ€™sย courseย was released.ย Not to go into too many details as its kind or irrelevant but at timeโฐย theย courseย was released DynamoDB๐Ÿงจย used to offer the option to either useย a Hash Primary Key๐Ÿ”‘ or Hash and Range Primary Key๐Ÿ”‘ to organize or partition data and of course as you would imagine choosing the right combination was rather confusing. Intuitively, AWS scrapped this architectural design and the good folks at the AWS Training and Certification group were so kind to offer clarity here as wellย ๐Ÿ˜Š

Today, DynamoDB๐Ÿงจย uses partition keys๐Ÿ”‘ย  to find each item in the database similar to Cosmo DB๐Ÿช. Data is distributed on physical storage nodes. DynamoDB๐Ÿงจย uses the partition key๐Ÿ”‘ย  to determine which of the nodes the item is located on. Itโ€™s very important to choice the right partition keyย ๐Ÿ”‘ย to avoid the dreadedย hotย ๐Ÿ”ฅpartitions. Again โ€œAs rule of thumbย ๐Ÿ‘, an ideal Partition key๐Ÿ”‘ย should have a wide range of values, so your data is evenly spread across logical partitions. Also in DynamoDB๐Ÿงจ items can have an optional sort key๐Ÿ”‘ to store related attributes in a sorted order.

One major difference to Cosmos DB๐Ÿช is that DynamoDB๐Ÿงจ utilizes a primary key๐Ÿ”‘ on each table. If there is no sort key๐Ÿ”‘, the primary and partition keys๐Ÿ”‘ are the same. If there is a sort key๐Ÿ”‘, the primary key๐Ÿ”‘ is a combination of the partition and sort key ๐Ÿ”‘ which is called a composite primary key๐Ÿ”‘ .

DynamoDB๐Ÿงจ allows for secondary indexes for faster searches. It supports two types indexes local (up to 5 per table) and global (up to 20 per table). These indexes can help improve the application’s ability to access data quickly and efficiently.

Differences Between Global and Local Secondary Indexes

GSILSI
Hash or hash and range keyHash and range key
No size limitFor each key, 10GB max
Add during table create, or laterAdd during table create
Query all partitions in a tableQuery single partition
Eventually consistent queriesEventually/strong consistent queries
Dedicated throughput unitsUser table throughput units
Only access projected itemsAccess all attributes from table

DynamoDB๐Ÿงจ like Cosmo DB๐Ÿช offers multiple Data Consistency Levels. DynamoDB๐Ÿงจ Offers both Eventually and Strongly consistent Reads but like I said previously “it’s like life itself there is always tradeoffs. So, depending on your application needs. You will need to determine whatโ€™s the most important need for your application latency or availability.”

As a prerequisite, you first must create and configure a virtual private cloudโ˜๏ธ (VPC) to put DynamoDB๐Ÿงจย  in. You can leverage an existing one or you can create a dedicated one for DynamoDB๐Ÿงจย  Next, you need to configure security๐Ÿ”’ย groups for your VPC. Security๐Ÿ”’ย  groups are what controls who has access to DynamoDB๐Ÿงจ.ย As for authentication๐Ÿ”ย  and permission to access a table, it is managed through Identity and Access Management (IAM). DynamoDB๐Ÿงจย provides end-to-end enterprise-grade encryption for data that is both in transit and at rest. All DynamoDB tables have encryption at rest enabled by default. This provides enhanced security by encrypting all your data using encryption keys๐Ÿ”‘stored in the AWS Key๐Ÿ”‘Management System, or AWS KMS.

โ€œQuicker than a ray of light I’m flyingโ€

Making our final destination for this weekโ€™s explorations would be to Amazonโ€™s fully managed, fast, scalable data warehouse known as Redshift๐ŸŽ† . A โ€œRed Shift๐ŸŽ†โ€ is when a wavelength of the light is stretched, so the light is seen as ‘shifted’ towards the red part of the spectrum but according to anonymousย sources “RedShift๐ŸŽ† was apparently named very deliberately as a nod to Oracleโ€™ trademark red branding, and Salesforce is calling its effort to move onto a new database โ€œSayonara,โ€” Be that what it may, this would be the thirdย Data Warehouseย cloudโ˜๏ธ solution we would have the pleasure of be aquatinted with. ๐Ÿ˜Š

AWS claims Redshift๐ŸŽ† delivers 10x faster performance than other data warehouses.ย We didnโ€™t have a chance to benchmark RedShiftโ€™sย ๐ŸŽ†ย  performance but based someย TPC tests vs some of their top competitorsย there might be some discrepancies with these claims but either case itโ€™s still pretty darn on fast.

Redshift๐ŸŽ†ย uses Massively parallel processing (MPP) and columnar storage architecture.ย The core unit that makes up Redshift๐ŸŽ†ย  is the cluster. The Cluster is made up of one or more compute nodes. There is a single leader node and several compute nodes. Clients access to Redshift๐ŸŽ† isย via a SQL endpoint on the leader node. The client sends a query to the endpoint.ย The leader node creates jobs based on the query logic and sends them in parallel to the compute nodes. The compute nodes contain the actual data the queries need. The compute nodes find the required data, perform operations, and return results to the leader node. The leader node then aggregates the results from all of the compute nodes and sends a report back to the client.

The compute nodes themselves are individual servers, they have their own dedicated memory, CPU, and attached disks. An individual compute node is actually split up into slices๐Ÿ•, one slice๐Ÿ• for every core of that node’s processor. Each slice๐Ÿ• is given a piece of memory, disk, and so forth, where it processes whatever part of the workflow that’s been assigned to it by the leader node.

The way the columnar database storage works data is stored by columns rather than by rows. This allows for fast retrieval of columns of data. An additional advantage is that, since each block holds the same type of data, block data can use a compression scheme selected specifically for the column data type, further reducing disk space and I/O. Again, there have been several architectural changes to RedShift๐ŸŽ† as well since Richardโ€™s course was released.

In the past you needed to pick aย distribution style.ย Today, you still have the option to choose a distribution style but if don’t specify a distribution style, Redshift๐ŸŽ† willย usesย AUTOย distribution making it little easier not to make the wrong choiceย ๐Ÿ˜Š.ย Another recent innovation to Redshift๐ŸŽ†ย that didnโ€™t exist when the Richardโ€™sย courseย was released is the ability to build a unified data platform. Amazonย Redshift๐ŸŽ† Spectrum allows you to run queries across your data warehouse and Amazon S3 buckets simultaneously. Allowing you to save timeย โฐย  and money๐Ÿ’ฐย as you donโ€™t need to load all your data into the data warehouse.

As prerequisite, you first must create and configure a virtual private cloudโ˜๏ธ (VPC) to place Redshift๐ŸŽ† in. You can leverage an existing one or you can create a dedicated one just for Redshift๐ŸŽ†.ย In addition, you will need to create an Amazon Simple Storage Service (S3) bucket and S3 Endpoint to be used with Redshift๐ŸŽ†.ย Next, you need to configure security๐Ÿ”’ย groups for your VPC. Security๐Ÿ”’ย groups are what controls who has access to your data warehouse. As for credentials ๐Ÿ”ย  and entitlements in Redshift๐ŸŽ†, it is managed through AWS Identity and Access Management (IAM).

One last pointย worth mentioning is that AWS Cloudย โ˜๏ธย  Watchย โŒš๏ธย is included with all the tremendous Cloudโ˜๏ธย Services offered by AWS. So you get great monitoringย ๐Ÿ“‰right of the box!ย ๐Ÿ˜Šย We enjoyedย ๐Ÿ˜Šย our timeโฐย this week in AWS exploringย ๐Ÿ”ฆย some of their data offerings, but we merely just scratched the service.

So much to do, so much to seeโ€ฆ So, what’s wrong with taking the backstreets? You’ll never know if you don’t go. Youโ€™ll never shine if you don’t glow

Below are some topics I am considering for my travels next week:

  • More with AWS Data Solutions
  • OKTA SSO
  • 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

Week of March 20th

Hey, you, get off of my cloud”! (that includes you Corona)

So after taking a brief victory lap for getting my virtual Windows Domain Sandbox up and running last week in AWS EC2. This week I attempted to get SQL Server AlwaysOn running with multiple Availability Groups and multiple Replicas (Async w/Read, Async w/ No read, Sync with Automatic Failover and Sync with Read Automatic Failover options)

After spendingย multiple days and countless attempts, I was left with numerous disappointments for most of the week as I fruitlessly chased numerous red herrings with non-useful Windows Cluster Log errors.

However, I refusedย to accept defeat! So I am happy to report thatย I finally persevered for this week’s mission

Here is what I did:

  • Removed my flaky implementation of AlwaysOn AGs and Listener with some lame hacks that had my AlwaysOn Implementation sudo running earlier in the week
  • Destroyed Windows Failover Cluster

Began the recovery mission:

  • Allocated 5 new class C subsets to existing VPC
  • Added additional Policies to Security Group in VPC
    • Added UDP port for SQL Browser Service
    • Added TCP ports used with AlwaysOn
  • Added a second virtual NIC to designated 5 SQL Severs EC2 instances
  • Configured 2nd IP for 2nd NIC using unique IP from designated Class C subnet
  • Designated DC/DNS Server as my Jump Server as all SQL EC2 instances are no longer routable from internet thru RDP
  •  Recreated Windows Failover Cluster with 5 SQL Servers 
  •  Added 5 virtual Network IPs (1 for each Class C subnet) to be used with Windows Cluster.
  • Recreated Always On with 2 AGs with ASync w/Read, ASync w/ No read, Sync with AF and Sync with Read AF
  • Configured SQL Listener to use 5 IPs in each subnet that hosts SQL Servers.
  • Added 5 Network IP under AG resources in Windows Cluster to be used with SQL Listener
  •  Enabled SQL Browsing Service on all 5 SQL EC2 instances (As I tried to be cute and make all SQL instances a Named Instances instead using default)
  •  Removed all SQL Aliases previously created as they are no longer needed
  •  Resolved “nslookup” issues that were plaguing name resolution on my Network
  •  Added 5 new Class C subnets to Reverse Lookup Zones in DNS
  •  Added Windows Cluster and SQL Listener Names for each subnet to DNS Forward Lookup Zones
  •  Successfully Tested failover scenarios w/ SQL AlwaysOn
  •  Installed and configured Redgate SQL Data Generator software on Jump Server
  •   Successfully Tested various scenarios with pumping millions of records to the SQL Listener while initiating AlwaysOn failover

Next Steps.. 

  • Play around a little bit more with SQL AlwaysOn
  • Maybe take on Snakes and Bears (Start by watching some videos)…
  • Stayed Tuned.

Peace Out –
–MCS

Week of March 13

Forget Corona! Take me to the cloud

Creating and Configuring a SQL Server AlwaysOn Configuration in AWS EC2

  • Created VPC in AWS
    • Designated Private Subnet address
    • Specified proper routes
  • Created Security Groups
    • Specified specific Protocols, Ports, Source/destination 
  • Created 6 micro AWS Instances of Windows 2016 DC Edition
    • 1 Domain Controller
    • 1 Primary Database Server
    • 4 Replica Database Servers
  • Configured Windows Active Directory, DNS
    • Joined Windows Domain
    • Created FID to be used with SQL Server Services
  • Established connectivity between “MCSSYSTEMS” AWS Instances
    • Configured virtual NICs to point internal DNS and use static IP
  • Configured additional storage volumes
    • 15 (300 GB) Volumes  – 3 volumes (Data, Log, TempDB ) to be assigned to 5 designated SQL Servers)
    • Attached storage to AWS Instances to be used with SQL Server
    • Brought Disks online as Dynamic disks
    • Formatted Disks (64K)
  • Migrated 5 AWS micros instances to medium t-shirt size Instance so to be used with SQL Server
    •  re-configured virtual NICs to point internal DNS and use static IP (as all settings were lost during migration)
  • Installed SQL Server 2016 w/ SP2 and SSMS 2018 on 5 Instances
    • Disabled Windows FW
    • enforced best practices (separation of Data, Log, Temp)
    • Created multiple Temp DB files to match v CPUs
    • Put SQL FID in Lock Pages in Memory Policy, instant file initialization
    • Configured static port # to be used with SQL Server instances
    • Configured SQL Server alias on instances can connect to friendly name (DNS is flaky)
  • Began SQL Server AlwaysOn Prep work
    • Install/Configured Windows Fail Over Cluster Services on 5 SQL Server AWS Instances
    • Enable each SQL Server for Always on availability groups
    • verified all SQL Servers are running properly and prepped for Always 

Next Steps.. 

  • Download and attach AdventureWorks database (Sample)
  • Configure AlwaysOn, Availability Group(s), Listener
  • Create Primary, Secondary, and Read Only Replicas, etc
  • Consult with the Big Guns