sql >> Database teknologi >  >> RDS >> Database

Sådan kommer du i gang med Amazon ECS og Amazon Fargate

Docker kan installeres på de mest almindeligt anvendte OS-platforme. CoreOS har Docker forudinstalleret og er designet specifikt til at køre Docker-containere. Docker til AWS leverer en out-of-the-box Docker-sværmtilstand, hvor en klynge af noder, kaldet en sværm, giver en distribueret platform til at køre Docker-containerapplikationer.

Problem: Alle de førnævnte Docker-platforme er kun forskellige typer Docker-installationer og kræver, at Docker-containere kører og administreres på kommandolinjen.

Løsning: Amazon ECS (Elastic Container Service ) er en administreret service til Docker-containere med indbygget understøttelse af skalering, belastningsbalancering, netværk, opbevaring, logning og andre Docker-containeradministrationsopgaver. Amazon ECS understøtter to lanceringstyper:EC2 og Fargate.

Med EC2-lanceringstypen startes EC2-instanser til at køre Docker-containere. Fargate-lanceringstypen, som blev introduceret for nylig (november 2017), er vært for opgaver, der indkapsler Docker-containere. Opgaverne gøres direkte tilgængelige for brugeren via en elastisk netværksgrænseflade (ENI ). De EC2-instanser, som Fargate er klargjort på, er ikke eksponeret for brugeren og er ikke direkte tilgængelige.

I dette kapitel vil vi lære om følgende:Hvad Amazon Fargate er

  • Fordele ved Fargate Amazon ECS-objekter
  • Beregn ressourcer i Amazon ECS Fargate
  • Hvad er nyt i Amazon Fargate-lanceringstilstanden?

Hvad Amazon Fargate er

Amazon Fargate er en ny lanceringstype til Amazon ECS og Amazon EKS (Elastic Kubernetes Service )-administrerede orkestreringstjenester for Docker-containere på AWS. Med Fargate-lanceringstypen er infrastrukturen fuldt klargjort af Fargate. Det er serverløst, og ingen EC2-instanser eksponeres for brugeren. Docker-containere er defineret som containerdefinitioner i en opgavedefinition. En tjeneste implementerer opgavedefinitionen til at køre en eller flere opgaver. Hver opgave er knyttet til en ENI. Hvis automatisk tildeling af den offentlige IP på opgaveniveau er aktiveret, tildeles en offentlig IP, hvorpå en ekstern klient kan få adgang til en opgave, automatisk til en opgave. Opgaver kommunikerer med hinanden over en privat IP.

Fordele ved Fargate

Fordelene i ECS er som følger:

  • En administreret tjeneste til containeriserede applikationer, der ikke kræver meget brugerinput for at køre Docker-applikationer
  • Mikrotjenester, der består af flere applikationer, der kører i isolerede containere, skalerer automatisk opgaver baseret på applikationsbelastning
  • Integrerer med andre AWS-tjenester, herunder IAM, CloudWatch-logfiler, Elastic Load Balancing, CloudFormation-skabeloner, EBS-volumener, Batch-, ECR- og CloudTrail-logfiler
  • En virtuel privat sky (VPC ) uden ressourcer delt med andre brugere Giver support til at køre en CodePipeline med ECS som implementeringsplatform
  • Understøtter den seneste Docker-version 17.0

Fargate giver følgende yderligere fordele:

  • Med en Fargate-lanceringstype opretter eller administrerer en bruger ikke nogen EC2-instanser, da ingen er eksponeret på klyngen.
  • Opgaver eksponeres direkte for brugeren via en ENI.
  • Den underliggende infrastruktur leveres af Fargate. EC2-forekomster skal ikke administreres med Fargate-lanceringstypen.
  • CodePipeline understøtter Fargate som en implementeringsplatform.
  • Mikrotjenester baseret på containerdefinitioner, der er indkapslet i en opgavedefinition, er eksplicit forbundet og må ikke forbindes med yderligere muligheder, såsom links.
  • CloudWatch-logfiler kan automatisk konfigureres.

Amazon ECS-objekter

Amazon ECS-objekter med Fargate er de samme som for EC2-lanceringstypen. En ECS-klynge er den yderste indkapsling, og den består af en eller flere tjenester. En klynge kan fordeles over flere tilgængelighedszoner. En service er en implementering af en opgavedefinition og kører en eller flere opgaver. En opgavedefinition kan have en eller flere opgaverevisioner. En opgaverevision er en særskilt opgavedefinition med et sæt opgaver og en service tilknyttet. Én Fargate-instans er knyttet til et sæt opgaver i en tjeneste. En opgavedefinition består af nul eller flere containerdefinitioner. Typisk vil en opgavedefinition være knyttet til en eller flere containerdefinitioner, og en opgavedefinition, der ikke består af nogen containerdefinition, vil ikke køre nogen opgavecontainere. Et diagram over ECS-objekter er vist som følger:

En Opgavedefinition er en ansøgningsskabelon og beskriver en eller flere containere. Mens nogle attributter eller indstillinger er konfigureret på opgaveniveau, er de fleste af dem konfigureret på containerniveau. Flere revisioner kan være knyttet til en opgavedefinition.

En tjeneste implementerer en opgavedefinition og definerer et ønsket antal for opgaver, der skal køres for en opgavedefinition. Valgfrie funktioner såsom automatisk skalering og belastningsbalancering er konfigureret i tjenesten.

En klynge i en ECS-tjeneste er en gruppering af en eller flere containertjenester. Et klyngenavn skal være unikt i en konto. En klynge kaldet standard er klargjort som standard.

Beregningsressourcer i Amazon ECS Fargate

Opgavestørrelse består af Opgavehukommelse (GB) og Task CPU (vCPU) . Selvom det er valgfrit i EC2-lanceringstypen, kræves opgavestørrelsen med Fargate-lanceringstypen. Docker container niveau hukommelse og CPU indstillinger kan valgfrit defineres, men tilsidesættes af opgave definition niveau indstillinger. Kun specifikke kombinationer af opgavehukommelse og opgave-CPU understøttes, og ECS-guiden angiver med en meddelelse den understøttede værdi (eller værdiområde) for en valgt værdi. Som et eksempel er det gyldige CPU-område for 1 GB hukommelse 0,25 vCPU til 0,5 vCPU. De samlede ressourcer (hukommelse eller CPU), der er konfigureret på containerniveau, må ikke overstige ressourceindstillingerne på opgaveniveau. For eksempel, hvis en opgavedefinition består af to containere (MySQL og WordPress) med en hukommelsesgrænse på 128 MB for hver container, skal opgaveniveauhukommelsen være mindst 256 MB. Desuden må den samlede hukommelse på beholderniveau ikke overstige 256 MB. Tilsvarende for CPU'en. To hukommelsesgrænser kan defineres på beholderniveau:Blød grænse og Hård grænse . Den bløde grænse svarer til memoryReservation attribut på opgaveniveau, og den hårde grænse svarer til hukommelsen egenskab på opgaveniveau. Summen af ​​containerhukommelsesreservationer (bløde grænser) må ikke overstige opgavehukommelsen. Den hårde grænse for hver container må ikke overstige den hukommelse, der er konfigureret på opgaveniveau. Et minimum på 4 GB skal angives som standard for en container.

Et eksempel på opgavestørrelse er vist i det følgende skærmbillede, hvor Opgavehukommelsen (hukommelse attribut) er indstillet til 0,5 GB (512 GB) og Task CPU er indstillet til 0,25 vCPU . På containerniveau, som konfigureret i de to containerdefinitioner, er hukommelsesreservationen 128 MB for hver container, hvilket giver den samlede hukommelsesreservation på 256 MB godt inden for 512 GB fordelt på opgaveniveau. Opgavestørrelsen allokeres til en opgave, uanset om den bruges eller ej. På samme måde er antallet af CPU-enheder konfigureret for hver container er 10 , hvilket gør de samlede CPU-enheder 20 for containere inden for CPU-enhederne, 25 tildeles på opgaveniveau. Se følgende skærmbillede:

Konfiguration og tildeling af opgavestørrelse for containere

Hvad er nyt i Amazon Fargate-lanceringstilstanden?

Ud over og sideløbende med Fargate-fordele, der er diskuteret tidligere, understøtter Fargate følgende nye funktioner:

  • Netværkstilstand, awsvpc , er den eneste understøttede tilstand
  • Mapping af værtsport er ikke gyldige med Fargate-lanceringstypen netværkstilstand (awsvpc ), og værtsporte, hvor en applikation er eksponeret, er de samme som containerportene
  • ecsTaskExecutionRole er tilføjet til Fargate-lanceringstypen for at give mulighed for at trække Docker-billeder og sende logfiler til CloudWatch-logfiler
  • Kun awslogs logkonfiguration og awslogs logdrivere understøttes med CloudWatch-logfiler
  • Opgaveplacering understøttes ikke, da der ikke er klargjort nogen ECS-instanser til at definere placeringsbegrænsninger for
  • Kun Docker-billeder på Docker Hub og Amazon ECR understøttes Privilegerede Windows-containere understøttes ikke for Fargate-lanceringstypen. Værtsenheder kan ikke udsættes for en container
  • værten og sourcePath parametre for volumener understøttes ikke med Fargate-lanceringstypen

Oversigt

I dette indledende kapitel diskuterede vi fordelene ved at bruge Fargate-lanceringstypen, hvordan computerressourcer distribueres og konfigureres med Fargate-lanceringstypen, hvordan ECS-objekterne med Fargate er de samme som for EC2-lanceringstypen, og de nye funktioner i Fargate. I det næste kapitel vil vi diskutere netværk, som det bruges med Fargate.

Det foregående materiale er et uddrag fra Amazon Fargate Quick Start Guide , af Deepak Vohra, udgivet af Pact Publishing.

Denne artikel blev bidraget. ©Developer.com. Alle rettigheder forbeholdes


  1. TRANSLATE() Funktion i Oracle

  2. Ignorerer MySQL null-værdier på unikke begrænsninger?

  3. Min MySQL-database er beskadiget... Hvad gør jeg nu?

  4. Generisk Ruby-løsning til SQLite3 LIKE eller PostgreSQL ILIKE?