Posts

Showing posts from 2023

A brief introduction to Databases on AWS

Image
One of the crucial services AWS provides is databases. Of course you could run a database server on your own EC2 instance and depending on the particular circumstances, that might be optimal. At the time of writing AWS provides 15 purpose-built database engines for high-performance relational, key-value, document, in-memory, graph, time series, and ledger databases. These are fully managed with continuous monitoring which ensure business-critical workloads with high availability, reliability, and security. Now really the infographics do most of the heavy lifting as they most succinctly outline the purposes of most of the databases. However, I'm not very satisfied with the above SQL/noSQL breakdown, so have included another below. A relational database (SQL) organizes data into tables, establishing relationships between them based on key pairs, ensuring efficient data management and retrieval. A standard keypair might be a customer ID, for example that links all kinds of activities ...

A brief introduction to AWS ECR and Step Functions

Image
Amazon Elastic Container Registry (ECR) is a fully managed Docker container registry integrated with Amazon ECS. It facilitates easy storage, management, and deployment of Docker container images. ECR supports API V2 which means we can easily access it via the CLI. All container images are stored in Amazon S3 ensuring high availability and durability. Access control is managed through IAM, ensuring defined policies for image access. Containers hold everything that the software needs to run, such as libraries, system tools, code, and the runtime. Docker is a software platform that packages software (such as applications) into units that are called containers. A single application can span multiple containers. Kubernetes is open-source software for container orchestration. It enables you to deploy and manage containerized applications at scale. Kubernetes is an open-source container orchestration tool which allows us to deploy and manage containerized applications at scale, providing a c...

A brief introduction to AWS Lamba and Application Programming Interface (API)

Image
AWS Lambda lets us deploy code without provisioning or managing any servers. This makes it an incredible useful tool. All we need to do is upload our code and Lambda takes care of execution and scaling, ensuring high availability. Cost is only incurred for the compute time used, with no idle charges. Lambda also supports popular languages like Java, Node.js, C#, Python, and Ruby, allowing seamless integration with other AWS services or direct invocation from web and mobile applications. Imagine you aim to minimize your Amazon EC2 service usage by halting instances during low-demand hours. For instance, you plan to stop EC2 instances at night when less capacity is required and restart them in the morning before the workday begins. You can use Lambda functions and Amazon CloudWatch Events to do this for you like so: An Amazon CloudWatch Events event is scheduled to run a Lambda function that stops your EC2 instances at (for example) 22:00 Universal Coordinated Time (UTC). T...

A brief introduction to AWS Route 53 and CloudFront

Image
Route 53 is an Domain Name Server (DNS) service provided by AWS. A DNS is essentially what transforms a URL into an IP address when a network - as you can set local addresses if your on the Intranet, for example. Route 53 is able to deliver seven different routing policies. But it's most basic service includes registering or transferring domain names. Simple routing policy : Use for a single resource that performs a given function for your domain—for example, a web server that serves content for the example.com website. Weighted routing policy : Use to route traffic to multiple resources in proportions that you specify. Latency routing policy : Use when you have resources in multiple AWS Regions and you want to route traffic to the Region that provides the lowest latency. Failover routing policy : Use when you want to configure active-passive failover. Geolocation routing policy : Use when you want to route traffic based on the location of your users. Geoproxi...

A brief introduction to Systems Manager and EC2 instances + EC2 Auto Scaling

Image
AWS Systems Manager is in essence an ITOM tool. It lets us automate lots of operational tasks across our AWS resources. Below #2 features a selection of tools AWS provide - such as patch or session manager. EC2 instances in AWS is where, as a cloud newbie, you'll do lots of your learning. The above diagram shows us several of the prerequisites we need in place when summoning an instance, along with some additional options such as user data (aka bootstrapping). With many different instance profiles available, it's also worth bearing in mind what is the best fit for your needs.    As EC2 instances can be in several different states, it's important we understand what properties persist and which are merely ephemeral. It is best practice that EC2 instances are considered to be ephemeral resources as this allows many of the core tenants of the Well Architected Framework (WAF) to be achieved. There are several reasons for this; Automatic scaling - you can add new instances a...

A brief introduction to AWS Identity and Access Management (IAM)

Image
 IAM is the name that AWS gives to user-permission controls. The management of privileges are split into three; Users Groups Roles The following infographic around IAM roles also breaks down how the user/groups permissions work on the 'User-based permissions' side of the slide. However the most important concept in relation to IAM is simply the following; Always provide as little access as possible to ensure infrastructure safety! As well as following some of the best practices outlined below;

A brief introduction to AWS Cloud Adoption Framework (CAF) and Well-Architected Framework (WAF)

Image
To aid in moving more businesses into the cloud AWS have developed the Cloud Adoption Framework (CAF). There are also competitors’ models, but in the broadest sense they tend to follow the same principles and categories. I’ll start with showing broad categories, then the Azure model and the AWS model.  So now we've familiarised ourselves with the broad categories, we can see the two major cloud providers high-level frameworks presented; Now the 2nd infographic of the AWS CAF begins to show more detail, exposing us to the genuine complexity behind the considerations required during the CAF process. If a business is consequently adopting a cloud, well, it also makes sense to have a structure to think about how the future architecture will be designed and if it matches cloud best practice, in other words AWS's Well-Architected Framework (WAF). Thankfully like many of my posts, there are infographics that excellently and succinctly summaries these ideas for us; It is very likely th...

A brief introduction to Databases and MySQL

Image
Thanks to completing an IT GNVQ during my secondary school days, databases aren’t all that new to me. I had experience querying a relational database in Microsoft Access already. But for the purpose of this post, I’ll revisit some core principles. The first to example is the types of database, which I’ll use an infographic to explain; Now what we’ll be looking this post is the relational model. This works by having a series of tables linked by public and foreign keys. Each of these keys has to be completely unique. When we update our database, we term this as a transaction. This means one or more changes are performed to a database. To commit a change we need to ensure transactions follow the four standard principles of atomicity, consistency, isolation, and durability. Before we go into talking about querying our relational database, let’s get into the NULL value. When searching we can use IS NULL and IS NOT NULL, but beyond this, there are several useful things to know about this v...