AWS begrippen - conceptueel model

Aws is 'de' cloud van Amazon - een veelzijdige alleskunner op het gebied van cloud-servers, services, netwerk-structuren, verbindingen en ook kant en klare software. De omvangrijke aws-cloud biedt bij uitstek 'infrastructure-as-a-service' (IAAS), 'software-as-a-service' (SAAS) en 'platform-as-a-service' (PAAS). Omdat aws zoveel bevat, is het voor iedere softwareontwikkelaar wel een uitdaging om de eerste stappen te zetten met de cloud- services en servers.

EC2 - bouwsteen

Enkele basisbegrippen zijn goed om te leren kennen. Als eerste de basis-bouwsteen van de aws-cloud EC-2 - deze term is een afkorting voor Elastic Compute Cloud, waarbij het cijfer '2' de twee keer 'C' vertegenwoordigt.

Een EC2 cloud computer lijkt op een PC zoals we die kennen. Je kan softwareapplicaties installeren, en draaien op je PC. Dit kan je ook Je PC en een EC2 hebben beiden CPUs, geheugen, en een 'harddisk'
doen op een EC2 computer van aws. Beiden - je PC en een EC2 - hebben CPUs, geheugen, en een 'harddisk'. Elke EC2 cloud computer wordt ergens 'gehost', in een datacenter in Europa, de Verenigede Staten of in Azië.
Overeenkomsten en verschillen tussen een gewone PC en een EC2 cloud image.
Vanuit de 'EC2 cloud computer' hebben de cloud engineers jaren ontwikkeld aan een steeds groeinde ecosysteem van cloud computers, cloud-diensten, database-services, queues, disk-storage met uiteenlopende retentietijden, en allerlei gateway-systemen. Later is een steeds uitgebreidere machine-learning suite ontwikkeld, en tegenwoordig ook state-of-the-art artificiële intelligentie.

De rest van dit blog-artikel gaat over EC2 en enkele centrale services. Wanneer je een Docker-image op je PC hebt ontwikkeld, laten deze centrale services zo'n Docker-image op aws cloud-servers installeren, en starten.

AWS-concepten

We hebben al het concept EC2 geïntroduceerd. Historisch is Amazon daarmee begonnen - de server computers. Het is makkelijk om een webapplicatie te installeren op de harddisk van een EC2 computer, deze webapplicatie opstarten, en een extern-toegankelijk IP-adres toekennen aan deze EC2 computer.

Naarmate de tijd verstrijkt ontstaan steeds meer vragen. Hoe - en hoe vaak - update ik de Linux OS op mijn EC2? Mijn webapplicatie krijgt steeds meer bezoeken tegelijk, hoe kan ik makkelijk meer EC2 computers naast elkaar zetten, om deze groei aan te kunnen? Waar staan de log-files? Hoe kan ik makkelijk de gedeelde relationele database configureren voor drie EC2 computers? Dit zijn zo enkele vragen, die hebben geleid tot de ontwikkeling van ECS en EKS.

ECS staat voor Elastric Cloud Service, en EKS staat voor Elastic Kubernetes Service. Zowel ECS als EKS gebruiken EC2 cloud computers om een Docker-container te draaien. Die Docker-container bevat je Spring-Boot, Quarkus of Python image. Je ontwikkelt eerst lokaal de applicatie op je PC - en je test je 'Docker-container' ook lookaal. Daarna kan je deze uploaden in ECR (Elastic Container Registry), van AWS.
Conceptueel model van AWS, EC2, Fargate, ECS en EKS. Ook is de ECR aangegeven voor opslag van je Docker-images. De VPC - de virtual private cloud - omvat je EC2 computers, en een heel aantal configuraties van deze.
Het conceptueel model - een mind-map - laat relaties zien tussen AWS, ECR, ECS, Fargate en EKS. Ook is te zien dat EC2 de essentiële bouwsteen is van aws. ECR gebruik je voor opslag van je Docker-image. Wanneer je met ECS een cloud-service configureert, dan wordt je Docker-image geïnstalleerd op EC2 computers, of op een Fargate computer, of hetzelfde Docker-image wordt geïnstalleerd op de 'Pods' van je (Kubernetes) cluster.

Speciaal in het conceptueel model is de VPC (Virtual Private Cloud). Zo hoort elke EC2 computer bij een specifieke VPC. Een VPC kan ook een subnet bevatten, een Elastic IP-adres - verbonden aan een EC2, en een VPC kan ook een security group hebben. De 'Task' wordt vanuit ECS (Fargate) aangemaakt, maar draait binnen een specifieke VPC.

Een VPC staat logisch gezien volledig los van andere cloud netwerken. Je kan meerdere subnets maken: Public subnet - bereikbaar vanaf internet via een Internet Gateway. Private subnet - geen directe internettoegang, gebruikt NAT Gateway of is volledig intern. Security Group: firewall per resource (EC2, ECS, RDS, etc.).

Eks staat voor Elastic Kubernetes Service. In tegenstelling tot ECS, waar je in de web-schermen alles kan configureren en draaiend krijgen - EKS moet je via aws cli aanroepen doen, vanuit je terminal. Als je onder Windows draait, dan kan je Cygwin installeren - en Linux-aanroepen inzetten. Kubernetes is meteen zwaarder om op te zetten, en gebruikt een zwaardere server-configuratie, bestaande uit minimaal twee EC2 cloud servers - een cluster. Daar draaien dan Kubernetes-pods op, elk met een Docker-image.

In EKS moet je ook aws cli aanroepen gebruiken om je VPC te configureren. Specifiek het toekennen van een Elastic IP-adres, en het zetten van de poort-mappings.



Javaka Professionals BV