Cloud Computing

Cloud computing is running a computing system not in premise you can access or on computer hardware that you exclusively own but remotely accessible over the Internet. The reason it’s called cloud computing is that when the Internet is represented in network diagrams it is represented as a cloud is signify an unknown network of computers. So when the ability to connect to a remote computer service based in the Internet it was termed ‘cloud’ computing’

Cloud computing is provided by three main companies:

There are many suppliers of cloud computing technology.

All three do the same thing: provide compute, networking and storage. They provide lots of different types of these things at different price points but in essence it’s access to computing power over the Internet so you don’t have to own any physical hardware. As the computing is provided as a service terms such as infrastructure-as-a-service (IaaS). This is very handy as if you need computer processing (which is all of them) do not have to pay out for physical servers, store, power and manage them. You do still have to sort out the software but here you can buy that all ready to go as well in a form of computing called Software-as-a-service (SaaS). On the downside you do lose the unboxing experience of new toys.

Amazon Web Services

Certification – https://d1.awsstatic.com/training-and-certification/docs/AWS_certification_paths.pdf

Cloud Data Engineer: Cloud Practitioner > Solution Architect > Data Analytics | Security

Cloud Practitioner

AWS Cloud Practitioner Essentials

11 Modules

1. Introduction to Amazon Web Services (AWS)

Introduction to the AWS and the course

2. Compute in the Cloud

What is EC2? Elastic Compute Cloud – it’s scalable remote virtual computing.

EC2 Instance Types

There are lots of different computers you can get depending on what you are trying to do in the same way that you would buy a standard computer or one that is good at graphics or storage. There are five categories of EC2

  1. General purpose – like it says a computer that has processor and memory
  2. Compute optimised – machines that need more compute power than general
  3. Memory optimised – machines working on large datasets
  4. Accelerated Computing – mega processing to do super complicated sums (graphic processing, bit coin mining, etc).
  5. Storage optimised – compute set up to work with high, sequential read /write access to large datasets. Good for filing systems and high-frequency online transaction processing (OLTP)

AWS has loads of different chip sets and technical stuff that lets you pick the computer that suits your needs. You will probably find that you’ll start with General purpose and then look to specialise once you know the load needed.

Talking of load the next subject is the important but rather boring subject of …

EC2 Pricing

We have covered off the cloud compute bit so now the elastic bit and that comes in two parts: 1) pricing – how to pay for your computer, and 2) scaling – how much compute you want. We’ll get to scaling in a second.

On the pricing from there are 5 options ranging from pay as you go (PAYG) to total ownership with 3 options in the middle. The range of pricing reflects the availability and the size of computing used – if you want to have the computer available all the time and lots of it then that’s expensive in the short term but should work out cheaper if it’s all being used. Here are the 5 options on EC2 pricing which are very similar to other parts of AWS pricing.

  1. On demand – you pay for what you use when you use it (PAYG). This seems the only option at first glance but there are a few things to consider. It’s relatively expensive if you do have the machine on for a long time either to process big things or high availability. On the other hand it’s awesome if you just want to do a quick bit of computing before handing it off to something else. On demand is very helpful when scaling as it can be brought online at times of high demand but then shut down when it passes. Again, like General compute probably one of the best places to start but there is another option which I’ll cover in a minute.
  2. Reserved Instances – reserved gives you more predictability as you basically take On Demand but agree up front to pay a certain amount. This allows Amazon to plan for demand and also gives more predictability on costs as it is cheaper than On demand. There are two types or forms of reserved: Standard Reserved and Convertible Reserved. Standard is straight forward – you agree what and where you want your compute. This guarantees compute. Convertible Reserved is a little more complicated as it covers off more complicated setups to allow you to change or convert a setup. For now reserved instances are ones you agree to use over a period of time.
  3. Instance Saving plans – the instance saving plan highlights how agreeing to paying up front is a big cost saver when compared to On Demand. Committing to a spend can create a discount of 72 % and, unlike Reserved, you don’t need to define what you will use but that you will use it (Amazon needs to know what money they will be getting). Think of it like buying AWS EC2 credits
  4. Spot Instances – if reserved and instant savings are about committing to the long term then Spot Instances are the opposite – Spots are about taking up spare capacity when it’s available. So it’s super cheap (90% off the On Demand) but it’s not always available and can drop out if more important people turn up (like On Demand people turning up). Due to this unreliability Spot instances are good for testing stuff or stuff that can be started and stopped as short notice. It’s not practical for a production environment.
  5. Dedicated Hosts – dedicated hosts are the opposite of Spot Instances – you get the whole thing to yourself. As you can imagine this is not cheap but you can cut down the cost by having it On Demand or reserved.

Ok – that deals with the availability options for elastic compute. The next part is scaling.

EC2 Scalability

If you want your computing to automatically scale for EC2 – use Amazon EC2 Auto Scaling (no prizes for what it does). There are two auto scaling approaches: 1) Dynamic scaling – responds to current load and 2) Predictive scaling on predicted load. Which ever may you want to set it up there are 3 levels of EC2 usage: 1) Minimum number – this is the baseline, 2) Desired – the number you think is needed on average load and 3) Maximum – the number of EC2 to not go above or the elastic limit.

EC2 Load Balancing

Load balancing is a way to try and make sure all the EC2 instances share the load equally otherwise there is no point having the extra capacity. Elastic Load Balancing is a different service so has to be paid for separately. There are two types: Low demand and High demand. For now just think of load balancing as like an super market worker directing shoppers to the next available till.

Messaging and Queuing

What is messaging and queuing? This is where we see one of the key differences between hosting a computer system and one that’s remote (on the cloud) and very flexible when it comes to resources and services.

Messaging is exactly as it seems – it’s about sending information from the sender to the receiver. Why is this important in a cloud setup? Well it’s all about timings. To get a better understanding let’s compare to a computer on your desk and one where you are playing a game. In this scenario as you are playing the game the computer has to take instructions from your control device and then reflect that on the screen. This is a complicated system but at a simple level electrical signals are created which propagate through the system. Using electrical signals is an incredible fast way to move data around. The reason why it’s so fast is that distance the signals have to move is small as it’s all in the same electrical box (for reference we see at roughly 60 frames a second which is often the frequency of a monitor – higher frame rates tend to be better quality). For online gaming it’s pretty much the same except there is a central server that is keeping score with the online players sharing the same screen and fast network between them. The information is only useful for a very short period of time. As you can hopefully expect for slower games (ones that involve taking a turn) then more complicated data can be moved around. Either way it’s all messaging.

For cloud computing (where you can do online games) a lot of time it’s about processing either small amounts of information very quickly (like taking orders) or processing very large amounts of data slowly (like complicated processing of your tax return). If you want to do local compute you can do that on a local IT system like file storage or email.

Let’s have a look at a non technical environment – my one stop coffee shop. To keep things simple my coffee shop only serves black coffee and it’s £1 (this place won’t make a lot of money). To get a coffee you need to give your name and pay. On the terminal the cashier will take the money and the name. They will then give the customer a receipt and a copy to the barista – this is the message (coffee: 1, name: Adam). The barista takes the order and creates a coffee of cup and marks the cup with the customer name: Adam. This completes the order (at this stage we don’t care if the customer picks it up).

This is an example of a messaging system where one component passes information to another. Now, if the barista always has time to take the orders as the cashier is always slower then we don’t have a problem assuming customers are willing to wait. If the cashier is quicker than the barista then we will have a problem as the messages between the cashier and the barista will become a problem as they may get lost, mixed up (there could be two Adams), or incorrect orders (maybe Adam wanted two coffees). In order to stop the chaos and create order we need to create an ordering system or a queuing system. The queuing system takes the orders and puts them into a queue for the sake of simplicity first in first out (FIFO) (there are other queuing systems). For our simple coffee shop when an order it taken it comes with an order number. Our barista simply works through the orders in increasing numbers (there are a few problems with this but it’s ok for this example. Messaging and queuing systems are used together to reduce the risk of stuff getting messed up.

To take our coffee shop example back a little let’s assume it’s just one person doing all the work – cashier and barista – ordering and making. With all the functions in one person or block both operations are tightly coupled. Tightly coupled systems or architectures are great when things have to work with a high degree of precision. This may make them slow but very reliable – think the brakes on a wheel of a car – a pedal, brake cable, brake discs, wheel.

With only one person taking orders and making coffee the information flow is fast and mistakes are minimised. However it doesn’t scale. The cashier/barista can get a little better but there will still only be one pair of arms, eyes and ears. We could hire a faster person or someone taller with better reach. We could scale by having another person taking orders and making coffee but that would be cumbersome as they would clash when trying to both jobs (you could double everything but that’s expensive). What we need to do is split the jobs up. We need to decouple the jobs or make them loosely coupled.

When systems don’t have to be absolutely perfect and/or take a little time between action and reaction then we can have parts loosely coupled. As each component is a little looser then we can have more options for how it works – it can be more elastic!. In the car example the radio system may have different component to allow you to have a standard output (speakers), standard wirings, even standard inputs (radio, bluetooth, etc), but it could have different components like a CD player, or MP3 player, hey maybe a record player. Systems where there can be multiple components doing the same job or where components can do different jobs these are loosely-coupled architectures.

In computing terms tightly coupled systems are called monolithic applications which sounds bad but when precision and security are important keeping things tight can be the best architecture. The problem is when one part fails the whole thing fails and it can be difficult to know which bit is broken and why (computer says no).

With loosely coupled systems there is more flexibility. The flexibility is created by smaller components that do smaller jobs – in computing terms these are microservices with the idea that is one thing fails or can’t keep up another one can take over – like minions. This all sounds groovy – let’s all get microservices! The problem with micro services is that you need to have something that holds the services running smoothly. And those somethings are the ability to handle communications between services (messages) and the work between the services (queuing).

AWS has two services that handle these two things:

  1. Simple Notification [of messages] Service – SNS
    With SNS you publish messages to subscribers in the same way that a magazine publishes its magazines to its subscribers. In computing terms a service needs to be subscribed to the notification so they can do something. Note: a notification is a message but not all messages are notifications.
  2. Simple Queue Service – SQS
    We’ve covered this already but here’s the detail. SQS is a queuing service that allows one service to drop messages for other services to pick them up.

Additional Compute Services

We’ve talked about Elastic Cloud Compute (EC2) as stand alone computers that you access via the internet – cloud computing. But there are further ways in which computing resources can be made available to do some number crunching.

Introducting serverless – all the benefits of having a server without the hassle of keeping the underlying stuff running. With EC2 you buy a virtual computer when you need it. AWS creates the virtual machine with all the underlying services for it to work such as the operating system and any specific software that may come with it. You can install your own applications which are available until the EC2 instance is shut down. For serverless all you get is the ability to run a program in a specific space. All the underlying OS, networking etc is not your problem. This is great if you don’t care about the underlying OS as you just want it to run but it does mean you will have to design your system to run without any say on the underlying OS but cloud is all about compromise.

Here’s a list of computer setups:

Bare metal (BM) – everything from electricity to licensing

Virtual Machines (VM) – responsible for OS and patching

Containers – packaging all dependencies into one package which then runs on a server (it doesn’t matter which one). Popular container software are Docker and Open Shift Container Platform. To add to the complexity there is a software that handles all the containers – Kubernetes but let’s not worry about that – for now.

Serverless – the bare information to run the program. These program are small as they only do one thing – one function. This creates a Function-as-a-Service – FaaS. Functions are a single use of code. Events call the functions. Event driven architecture (EDA). This all sounds good – again, what to like but there are disadvantages especially speed and security. The details can wait but just remember serverless is designed to be expandable and contractable. Big computers (monoliths) are still very useful but for specific things. And there’s also a question on the cost of cloud which is another topic we will get to.

Example: uploading an image to a store

User has an app (or web page). Click the upload image > select image to upload > click “Upload” > click launches the “Upload_image_function” > image is copied to storage > message “Image uploaded” > function shuts down. This is an example of Function as a service.

Lambda AWS

Lambda is a form of function as described that AWS provides. With Lambda there are no servers (it’s serverless) so only runs when the code is called. From our coffee shop example it’s like having the cashier or barista only there when someone wants coffee rather than having the store open and staffed all the time.

Containers

We have covered these already. Containers are like packaged computers that run on top of operating system. They can be seen like shipping containers which are standard size and shapes to put things (code) in. As with shipping containers to keep track off all the containers you need management or “orchestration“. Orchestration of containers can be done by Amazon Elastic Container Service (ECS) and Amazon Elastic Kubernetes Service (EKS).

Elastic Container Service (ECS) is one way of managing containers on AWS. It can support Docker both open source and subscription. Elastic Kubernetes Service (EKS) is setup to run Kubernetes is open-source software that manages containers.

AWS Fargate is another option as runs a serverless compute engine for containers. It manages the containers for you.

That is all there is on AWS compute.

3. Global Infrastructure and Reliability

AWS global infrastructure

Regions – you can pick a region of the world where is best to run your computer business. There are lots of options but best to keep it local.

Availability zones – these are data centres in regions. You can have your setup running in one availability zone or multiple ones in the same region. To be super chilled you can have multiple EC2 instances across the region in different availability zones so if one has trouble the other can work (don’t ask about load balancing at this point or any networking stuff as I don’t know).

Edge Locations – these are not real data centres but smaller more local stores of data that can be served faster. The data is stored in Amazon CloudFront which is like a local store of information – like a local grocer to keep things fast on static content that doesn’t need processing power e.g. images, video, etc.

Elastic Beanstalk

We know that AWS has compute power and that power is in availability zones in physical regions across the world. This can lead to a complicated situation trying to manage all the stuff. Elastic Beanstalk provides a service to manage capacity, load balancing, scaling and overall health. If you are wondering why beanstalk it’s reference to a Jack and the Beanstalk where the beanstalk starts in the ground but then grows into the clouds – clever huh?

CloudFormation

Talking of clouds CloudFormation allows for AWS resources to be built not be pointing and clicking and setting stuff up but executable code so that resources can be built very quickly and consistently.

Outposts – extend AWS infrastructure and services to different locations including your on premises data centre.

That is it for Infrastructure

4. Networking

One of the big advantages of cloud is that it’s easily accessed for any internet connection. The big disadvantage of cloud is that it’s easily accessed from the internet. This is not just the obvious login pages but connections between components as they are simply connected via the internet so it’s possible to get hold of resource (see the conversation about tightly coupled and loosely coupled architectures). In order to protect AWS resources from becoming completely uncoupled the network infrastructure takes care of it. It does this through Virtual Private Cloud (VPCs) which are defined closed off areas of the cloud instance.

Connectivity to AWS

It helps to have a little understanding of computer networking. To cut a very long story short computers are identified on a network through two addresses. The lowest, electronic level is the Media Access Card (MAC) which is the physical card that the cable (ethernet) clicks into. Above this level is where all the real work is done through Internet Protocol (IP) address. The IP address can be seen as the location of the computer on the Internet. As you can imagine there are a lot of computers so the addresses are divided into public and private IP addresses. Public addresses are for machines that pass traffic across the internet and provide public addresses for private networks. As private networks are private the IP addresses can be used again and again. They are called subnets to highlight they are another type of network different from the Inter-network. So to make it from one computer to another the client request comes from a private IP address through a gateway which has a public IP address over the resource and then back to the client.

The key components are:

  1. Internet (Default) Gateway – move traffic from public to private addresses. It’s the door to the building. To make your way to a private area then you need a virtual private gateway.
  2. Key and Lock – To make sure people (internet traffic) can’t simply rock up and try and get in there is a level of security required. In the real world this is a key and a lock. In the internet the security is via a username and password and maybe additional security. The connection to the gateway from a client is via a virtual private network (VPN – don’t confuse VPC and VPN).
  3. Dedicated connection – A VPN creates a dedicated connection between one private network to another so you need to be able to log into a computer with certain physical security policies which lets you then connect to to the VPC via the VPN.

AWS Direct Connect establish a dedicated private connection between a data centre and a Virtual Private Cloud by only accepting connections from defined IP Public addresses. For example your business may have a network IP address of 100.100.100.x (the x is for a specific host). AWS Direct Connect will accept this connection and then route that traffic to the VPC. This way the VPC is protected from internet traffic directly. This is how a Firewall works.

Subnets and Network Access Control Lists

The Virtual Private Cloud is just like a physical private so needs to be looked after. In physical private (or local) networks with real machines with cables and electricity the control of access to resources we can control access physically and digitally. AWS takes care of the wires so we can concentrate on the digital security and that is through two methods:

  1. Subnets – Public and Private
    Computer networks which are made up of computing, storage, and routing machines can be divided into different sub-networks to secure and manage those networks. Assuming the network will be accessed by the public then we can create two sub networks: 1) public access, 2) private access. By dividing these networks we can secure in big blocks where people can go in the same way we secure the front of an office for the public from the back for staff.
  2. network Access Control List (ACL)
    The subnets give area or section security. We also need detailed security / access to certain places and even files. To secure specific resources we use Access Control Lists (ACLs – nothing to do with knees). Permission to do something can be used in two ways: a list of people who can use a resource (allow list or permitted list) or a list of people that can not (deny list or blocked list). These can be used in a variety of ways to control access.
    If we use the example of a night club and it’s door policy – who it lets in and who it does not. It can have a pre-arranged list of people that are allowed in called out by individual or by group – Beyoncé (individual), entourage (group) (there is also a list of people that the nightclub has to let in through legal authority like the police). This is an allow list. The club can have the opposite which is not allow access by an individual or group – Drake (individual), entourage (group). This leaves a middle where there is no policy to either allow or deny. For this group we could allow them all or deny them all or something in-between that gives them temporary access.

    Stateless Packet Filtering

    ACLs perform stateless packet filtering. This sounds complicated but it simply means the ACLs filters (allow/deny) packets (blocks of traffic) being sent in and out with no memory (stateless) of the packet. Packets sent across the internet have some standard information with a letter sent in the post – sender IP address, destination IP address, payload. Normally when a packet goes through a network various different routers and switches can remember the packet and store information to speed up the transmission. Here when a request is made for a resource the ACL checks who’s asking (the sender) and then checks who’s answering (the destination) or vice versa.

    Security Groups

    Once the packet has got into sub net and near the EC2 instances it will be checked again through security groups. This is like getting into the nightclub but then being checked before going to the VIP area. To highlight this metaphor the default position for an EC2 security group is let everyone out but let no one in.

    Unlike the ACL the security groups are stateful – they remember who has been let in and who has gone out. This is called stateful packet filtering and speeds thinks up (remember the ACL is going to check it on the way out).

    Which ever way you want to secure things make sure all cases are covered. There are some bad people out there.

Global Networking

Two things for the global networking and that is 1)Domain Name System (DNS) and 2) Amazon Route 53 which is the Amazon service for organising your DNS settings. It’s called Route 53 after the USA road network e.g. Route 66 the road from Chicago to Los Angeles (fun fact – even numbers go West to East, odd numbers North to South).

Recap – EC2 gives us compute power, infrastructure gives us a place to run our services by region and availability zone, and networking. Awesome for work that does need to be stored. For that we need …

5. Storage

Storage you would think would be quite straight forward. From our coffee shop example it’s a store room, or a container, or a warehouse. With AWS it is also straight forward but you do need to appreciate the different offerings and what that means – close, local, far.

There are two main ways to store information: files or databases (although strictly databases store files. Files are single blocks or objects of data like a piece of paper or a book. Files are anything the computer can read and we can divide these things into text and binary. Text as you can imagine is a file with just text in it and that includes letters, symbols, and numbers – text files can be read very easily and doesn’t require a specific program (in theory you could work out the file from the binary 0s and 1s. Binary objects are files that need a special program to read them such images, videos, Word documents – general anything that is generated by a software package with it’s own file extension. All files can have further changes made to them from their original format with compression and encryption being the most common. They become binaries at this point as they will need a specific piece of software to make readable.

Databases are a specific piece of software that organises data. There are many ways to organise data which we may cover here. Databases on the cloud are a little different to on premise as the idea is speed and loosely coupled architecture that can automatically expand to demand.

For file storage The main options from AWS are Amazon Elastic Block Store (EBS), Simple Storage Service (S3), and Elastic File System. On the database side there is Amazon Relational Database Service (RDS) and DynamoDB.

Block Level Storage – think of these like boxes to store papers in. You can define the size of the boxes and what goes in them in the same way the hard drive on a computer is a box to store things in. We just call them blocks not boxes in the digital world.

Virtual computers don’t have storage – EC2 instances are virtual machines (VMs). VMs are created by taking the resources of a computer: Central Processing Unit (CPU), Memory and Hard Drive and split them up so multiple computers are generated. The CPU and memory are only needed for processing and so when the machine is on. In the old, old days storage wasn’t even electrical but cards with holes in them (punch cards), then magnetic tapes, and now solid storage. In a PC on your desk the storage is directly connected to the CPU so even when the machine is turned back on it can find the local storage. In cloud computing it’s not as easy as the compute part is not directly connected to the storage – it only has whatever it’s working on – and there can be compute instances spinning up and down depending on load. We need a way of storing things permanently that the EC2s can find.

This is where Elastic Block Store (EBS) comes in as it acts just like local storage to a computer. EBS blocks come in volumes with volumes being defined in terms of size and type (EC2 have a local storage called instance store). Volume information are stored as snapshots that track the change in a drive over time in effect an incremental backup so you have to run the backups in order to restore

Next up is Simple Storage Service (S3). S3 differs from EBS as it is more of a general store of information rather than as ordered volumes. S3 stores data as objects in buckets. There are different storage classes just like you would get in the physical world.

  1. Short term storage – Quick access / High fidelity – S3 standard. Everyday storage for everyday files.
  2. Long term storage – Medium access / Very high fidelity – S3 Standard-Infrequent (S3 Standard-IA). Every other day storage for backups and stuff.
  3. Long term storage – Low access / Very, Very high fidelity – S3 Glacier Flexible Retrieval – those files you have to keep – audit. WORM – Write Once Read Many (Annual Reports)

You can have clever policies between these storage to move things from short to long term.

So which storage should you choose between Elastic Block Storage (EBS) and Simple Storage Service (S3)? The general rule is if you want something you are building – use blocks, if it’s something built use S3. Blocks allow for changes to be saved only to the bit that has been changed (the block) not the whole thing (S3). For example my autobiography – EBS. My holiday snaps – S3.

Amazon Elastic File System (EFS)

EBS gives hard drive like access and S3 gives unlimited access what else do we need. For the most part nothing. But for some special instances a file system is needed that can be accessed from different areas. Elastic File System gives greater flexibility on access to stored data – big data that multiple EC2 instances can reach from outside an availability zone but inside a region. This is large services needing access to files (not blocks or object) so they can be worked on the same time – like google docs?

Next – databases

RDS – relational database service

You will get lots of data from running the business: repeat customers, suppliers, staff etc. This data can be simplified into relationships between data so that you don’t need to store all the information in duplicates and see relationships (the best time to order coffee is the the morning not the evening, what the most popular coffee is, when invoices need paying, etc).

There are six options for databases:

  1. Amazon Aurora – enterprise-class relational database that Amazon sells that is the same nature MySQL and PostgreSQL.
  2. PostgreSQL (Postgres) (the version after the original Ingres database project).
  3. MySQL – another RD
  4. MariaDB
  5. Oracle Database
  6. Microsoft SQL Server –

The above are all relational database. Not all databases are relational, some are non-relational! What does that mean?

Both relational and nonrelational databases use tables but they use tables differently. Relational databases separated out data into a class or type of data so that data is unique. For example the following table is of client contact info

Key_ClientNameCompanyPhone
1AnnABC0712 345 678
2BobABC0787 654 321
3CarolBBCNULL

We can “normalise” this table to that the company name is held in another table. Now I can have a table of clients and companies that are linked via the key of the table row.

Key_CompanyCompany_Name
1ABC
2BBC

With relational databases we link all the tables together via the database schema. It is different with nonrelational databases in the way that the data is related to each other. First off there isn’t just one type of NoSQL database architecture but at least 4:

  1. Document database – stores data in documents or text files similar to a format called JavaScript Object Notation or JSON “JaSON”). Each document contains pairs of fields and values.
  2. Key-value database – non documents stored in key-value pairs
  3. Wide-column stores – data is stored in tables, rows and dynamic columns
  4. Graph databases – data is stored in nodes and edges. Nodes are things like people or places whilst edges are the relationship between the nodes. For example I, J, would be a node (let’s call me an author) and you would be a node (let’s call you a reader) so the edge would be reading.

If we took our example of a client list and the company they work for we wouldn’t put them in separate tables but a single table that had key-value pairs.

KeyValue
1Name: Ann
Company: ABC
Phone: 0712 345 678
2Name: Bob
Company: ABC
Phone: 0787 654 321
3Name: Carol
Company: BBC

You can see that all the data is in two columns and the data is held in the same row. This makes it a lot faster to find things however it does take up more storage. But storage is super cheap now – the cheapest part of computing when compared to processing or memory. Today it is all about speed.

Amazon DynamoDB

Amazon DynamoDB is a NoSQL, key-value database service and is built for speed (I guess dynamos are fast?). Like many Amazon offerings it is serverless so no server – no admin, and it auto-scales and shrinks.

Amazon Redshift

Speed is what DynamoDB is all about – access information on the fly from multiple systems. Redshift is all about the past and is Amazon’s offer for data warehousing. Not just for storage but for analysis to see what the next steps are.

AWS Database Migration Service (AWS DMS)

Database Migration Service does exactly what it says it does. It moves from a database source to a database target. This is good for setting up test data that is not using production data. Collimating databases into one. Replication to other sites.

Additional Database Services

Amazon is not short on services for storing data in an ordered way. Lets go through them (I’ll drop the Amazon at the front):

  1. DocumentDB – document database service that supports MongoDB workloads
  2. Neptune – graph database service. Good for understanding relationships between things – search engines, fraud detection, knowledge graphs
  3. Quantum Ledger Database (AQLDB) – review a complete history of all changes that have been made to your application data.
  4. Managed Block chain – a service that you can use to create and manage blockchain networks with open-source frameworks.
  5. ElastiCache – a service that adds caching layers on top of your databases to improve the read times of common requests. Two types of data stores: Redis and Memcached.
  6. DynamoDB Accelerator – an accelerator for DynamoDB (obviously)

OK that covers it of storage and databases.

5. Security

Another recap as we move into module 5. 1) Intro to cloud, 2) EC2, 3) Global Infrastructure, 4) Networking, 5) Storage and Databases. All this is great and we touched on it in the networking module when we talked about Virtual Private Clouds (VPCs), Virtual Private Networks (VPNs) and

7. Monitoring and Analytics

8. Pricing and Support

9. Migration and Innovation

10. The Cloud Journey

11. AWS Certified Cloud Practitioner Basics – Exam