Posts

Showing posts from December, 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...