Kezdő útmutató az Amazon Elastic Container Service szolgáltatásához

Ez a cikk a kezdők magas szintű áttekintése az Amazon ECS-ről. Kitérünk az alapfogalmakra, kifejezésekre, egyszerű architektúra-diagramokra és kivont példákra. Tehát kezdjük!

Dokkmunkás

Az Amazon ECS értékeléséhez először meg kell értened a Dockert.

A Docker egy kliens-szerver alkalmazás, amely Linuxra, Windowsra és MacOS-ra telepíthető, és amely lehetővé teszi a Docker-tárolók futtatását. A konténerek olyan könnyű környezetek, amelyek mindent tartalmaznak egy adott alkalmazás vagy egy alkalmazás futtatásához. Több különböző tároló futtatható egy gépen, amennyiben telepítve van a Docker szoftver.

Ha érdekel, hogyanműködnek, és hogy a Docker miben különbözik a virtuális gépektől, akkor ez a Docker bevezetője remek kiindulópont.

A Docker konténerek használata lehetővé teszi a csapatok számára, hogy konzisztens fejlesztési környezetet alakítsanak ki a szoftver, az operációs rendszer és a hardver konfigurációjának elválasztásával egy szabványos építőelemként, amelyet bármilyen gépen futtathatnak.

Minden tároló pontosan megvan, amire szüksége van - például egy nyelv vagy könyvtár bizonyos verziói - és nem több, mint amire szüksége van. Több tároló is használható az alkalmazás különböző részeihez, ha akarja, és beállíthatják, hogy szükség esetén kommunikáljanak egymással.

Ha meghatározott Docker-tárolókat használ a gyártási kód futtatásához, biztos lehet abban, hogy a fejlesztői környezete pontosan megegyezik a gyártási környezettel.

Az alkalmazás növekedésével a tárolók telepítésének, felépítésének, ütemezésének és méretezésének kezelése gyorsan bonyolulttá válik. Itt jön létre egy „konténerkezelési szolgáltatás”. Célja az egyszerű konfigurációs lehetőségek lehetővé tétele és a nehéz emelések kezelése, miközben visszatér az alkalmazás megírásához.

Bevezetés az Amazon ECS-be

Az Amazon Elastic Container Service (ECS) az Amazon szerint

… Rendkívül skálázható, gyors tárolókezelési szolgáltatás, amely megkönnyíti a Docker-tárolók futtatását, leállítását és kezelését egy fürtön.

Összehasonlítható a Kubernetes, a Docker Swarm és az Azure Container Service szolgáltatásokkal.

Az ECS a tárolókat az Amazon EC2 (Elastic Compute Cloud) virtuális géppéldányok fürtjén futtatja, amelyek előre telepítve vannak a Dockerrel. A tárolók telepítését, méretezését, megfigyelését és kezelését kezeli mind az API-n, mind az AWS Management Console-on keresztül. Ez lehetővé teszi az EC2-példányok egyszerűsítését az erőforrások, például a CPU és a memória számára. Az adott példányt, amelyen egy tároló fut, és az összes példány karbantartását a platform kezeli. Nem kell ezen gondolkodni.

Érdemes megjegyezni, hogy az Amazon infrastruktúrájához van kötve, ellentétben néhány más, nagyobb rugalmasságot lehetővé tevő szolgáltatóval. Ez azonban azt jelenti, hogy kiválóan integrálódik más AWS szolgáltatásokkal.

Feltételek és architektúra

Adjunk néhány elképzelt kontextust azokhoz a definíciókhoz, amelyeket megnézünk. Tegyük fel, hogy két Docker-tárolón futó alkalmazást épít, talán egyet a fő alkalmazáshoz, egyet pedig a mutatók kezeléséhez. Mindkettőre szükség van az alkalmazás rendeltetésszerű futtatásához. Ha nagy mennyiségű forgalmat bonyolított le, akkor több tárolót kell futtatnia.

Itt két új kifejezésre jutunk:

  • egy feladatmeghatározás , feladat és szolgáltatás , és
  • aKlaszter ,ECS konténerpéldány ,ésECS Container Agent .

Feladat meghatározása

Ez a terv írja le, hogy mely Docker-tárolókat futtassa, és ez képviseli az alkalmazást. Példánkban két konténerről lenne szó. részletesen leírja a felhasználandó képeket, a kiosztandó CPU-t és memóriát, a környezeti változókat, a kiszolgáltatandó portokat és a tárolók interakcióját.

Feladat

A Task Definition egy példánya, amely a benne tárolt tárolókat futtatja. Több Feladatot is létrehozhat egy Feladatdefinícióval, igény szerint.

Szolgáltatás

Meghatározza a minimális és maximális feladatot egy adott időpontban lefuttatott feladatmeghatározásból, automatikus skálázásból és terheléselosztásból. Példánkban, ha a CPU-t maximálisan kihasználtuk az egyetlen futó feladatunkból, akkor érdemes további feladatot hozzáadni.

Előfordulhat azonban, hogy korlátozni szeretnénk a futtatható feladatok maximális számát, mivel tudjuk, hogy az extra Tasks futtatása további pénzforrásba kerül.

Most, hogy megvan a Szolgáltatásunk, annak Feladatait el kell futtatni valahol, hogy hozzáférhetőek legyenek. Fürtre kell tenni , és a tárolókezelő szolgáltatás egy vagy több ECS konténerpéldányon futva kezeli .

ECS konténer példányok és ECS konténer ügynökök

Ez egy olyan EC2 példány, amelyen Docker és egy ECS Container Agent fut. A tárolópéldány sok feladatot futtathat, ugyanazon vagy különböző szolgáltatásokból.

Az ügynök gondoskodik az ECS és a példány közötti kommunikációról, biztosítja a futó tárolók állapotát és az újak futtatását.

Fürt

Mint fent látható, a Klaszter az ECS Container Instances csoportja. Az Amazon ECS kezeli a méretezési kérelmek ütemezésének, karbantartásának és kezelésének logikáját ezekre az esetekre. Emellett elveszíti az egyes feladatok optimális elhelyezésének megkeresését a CPU és a memóriaigény alapján.

Egy fürt számos szolgáltatást futtathat. Ha a termék részeként több alkalmazás van, akkor érdemes többet elhelyezni egy Klaszterben. Ez hatékonyabban kihasználja a rendelkezésre álló erőforrásokat és minimalizálja a beállítási időt.

Következtetés

Láttuk, hogyan reprezentálható egy Dockerized alkalmazás egy FeladattalMeghatározás , amely egy-egy kapcsolatban áll egy szolgáltatással, amely viszont sokféle Feladat- példány létrehozására használja .

Ez a szolgáltatásfürtbe van telepítvenak,-nekECS konténerpéldányokamelyek biztosítják az alkalmazás futtatásához és méretezéséhez szükséges erőforrások készletét. További szolgáltatások telepíthetők ugyanabba a fürtbe.

Az Amazon ECS, vagy bármelyik konténerkezelő szolgáltatás célja, hogy ezt a lehető legegyszerűbbé tegye, elvonva a futó infrastruktúra sokféle összetettségét.

Az Ön igényeinek összetettebbé válásával a tárolókezelési szolgáltatás biztosítja, hogy ez továbbra is kezelhető maradjon. Az API vagy a Kezelői konzol használatával definíciókat helyezhet el az új Tárolópéldányok hozzáadásához, amire szüksége van. Ez biztosítja, hogy a feladatok száma mindig egészséges legyen, és intelligensen osztja el az erőforrásokat a szolgáltatások között.

Köszönöm, hogy elolvasta!

Erőforrások

  • Kímélő bevezetés az AWS ECS működéséhez a bemutató példa segítségével
  • Fürtözött Akka alkalmazások telepítése az Amazon ECS-re
  • Az Amazon ECS építőelemei
  • Bevezetés az Amazon EC2 Container Service (ECS) - Docker Management on AWS
  • Amazon ECS: Alapfogalmak
  • AWS EC2 kezdőknek
  • Jobb fejlesztési / tesztelési tapasztalat: Docker és AWS
  • Fürtalapú architektúrák a Docker és az Amazon EC2 Container Service használatával