Az AWS rugalmas fájlrendszere (EFS) egy megosztott tárolómeghajtó, amely sok különálló szerverhez csatlakoztatható. Tökéletes pár az AWS Elastic Container Service-jével (ECS), amely kiszolgáló nélküli Docker-tárolókat futtat fürtbeállítások során, és élvezheti az egyszerű megosztott állapot előnyeit.
Miért hasznos ez?
Az EFS egy teljesen felügyelt tárolási szolgáltatás az Amazon-tól. Szerver nélküli, megosztott blokktároló, amely több szerverhez csatlakoztatható. Ez különösen hasznossá teszi az általában hontalan Dockerrel együtt.
Például használhatja ezt a webhely statikus tartalmának és kódjának tárolására, majd futtathatja az összes dolgozói csomópontot az ECS-en, hogy kezelje a tartalom tényleges megjelenítését. Ez kiküszöböli az adatok lemezen történő tárolásának korlátozását, mert a kötetcsatlakozás egy külső meghajtóhoz van kötve, amely az ECS-telepítések során is fennáll.
Míg a Docker-tárolókat futtathatja az ECS-en helyi kötetekkel, az egyetlen, megosztott kötet az egész telepítéshez nagyon hasznos eszköz lehet sok telepítéshez.
EFS-kötet létrehozása
Ennek beállításához létre kell hoznia egy EFS fájlrendszert. Ez meglehetősen egyértelmű, és a EFS Management Console, de érdemes megjegyeznie a kötet azonosítóját, mivel erre szüksége lesz a kötet működtetéséhez.
Hozzon létre egy új fájlrendszert:
Írjon be egy nevet, majd válassza ki azt a VPC-t, ahol az ECS-fürt található.
Ezután megjegyezheti a fájlrendszer azonosítóját, amire később szüksége lesz.
Ha elő kell töltenie az adatokat erre a fájlrendszerre, vagy csak manuálisan kell hozzáadnia vagy módosítania a fájlokat az EFS-kötetben, akkor bármely EC2 példányhoz csatlakoztathatja. Telepítenie kell amazon-efs-utils
:
sudo yum install -y amazon-efs-utils
Ezután csatlakoztassa a következő paranccsal, az azonosító használatával:
sudo mount -t efs fs-12345678:/ /mnt/efs
Így közvetlenül megtekintheti és szerkesztheti EFS-kötetének tartalmát, mintha egy másik HDD lenne a szerverén. Győződjön meg róla, hogy van-e nfs-utils telepítve van, hogy mindez megfelelően működjön.
Csatlakozás ECS-telepítéshez
Ezután össze kell kötnie az ECS-t ehhez a kötethez. Hozzon létre egy új feladatdefiníciót a ECS Management Console. Görgessen az aljára, és válassza a „Konfigurálás a JSON-on keresztül” lehetőséget. Ezután cserélje ki az üres „kötetek” kulcsot a következő JSON-ra, a végén adva hozzá a „család” kulcsot:
"volumes": [ { "name": "efs-demo", "host": null, "dockerVolumeConfiguration": { "autoprovision": true, "labels": null, "scope": "shared", "driver": "local", "driverOpts": { "type": "nfs", "device": ":/", "o": "addr=fs-XXXXXX.efs.us-east-1.amazonaws.com,nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport" } } } ], "family":"nginx",
Természetesen ki kell cserélni fs-XXXXXX.efs.us-east-1.amazonaws.com
az EFS-kötet aktuális címével. Új kötetet kell látnia:
Ezt a tároló definíciójában használhatja csatlakoztatási pontként. Válassza a „Tároló hozzáadása” lehetőséget (vagy szerkesszen egy meglévőet), majd a „Tárolás és naplózás” részben válassza ki az újonnan létrehozott kötetet, és adja meg a tároló elérési útját.
Mentse el a feladatdefiníciót, és amikor egy fürtöt indít ezzel az új definícióval, akkor az összes tároló hozzáférhet a megosztott fájlrendszerhez.