Hur att Montera en S3 Bucket Lokalt på Linux

0
193

På många sätt, S3 hinkar agera som gillar moln hårddiskar, men är bara “föremål nivå lagring,” inte blockera nivå lagring som EBS eller EFS. Det är dock möjligt att montera en hink som ett filsystem, och öppna dem direkt genom att läsa och skriva filer.

Fördelar och Begränsningar S3 som Filsystem

Den magiska som gör att hela denna setup arbete är ett verktyg som heter s3fs-säkring. SÄKRING står för Filsystem i Användarrymden, och det skapar ett virtuellt filsystem monteras. s3fs gränssnitt med S3, och stöder en stor delmängd av POSIX, bland annat att läsa, skriva, skapa kataloger, och ange filens metadata.

En av de stora fördelarna med att använda S3 över traditionell lagring är att det är mycket effektiv på att lagra enskilda objekt lång sikt, med ingen gräns alls på totalt hink storlek. Du kan lagra 10 foton eller 10 miljoner bilder i S3, och att det kommer att fungera i stort sett densamma. I applikationer där man behöver en stor (och billiga) disk, S3 vettigt, och om du integrerar vill ha tillgång till filen, detta är ett bra sätt att överbrygga de två.

Naturligtvis, det är inte utan begränsningar. Även om det fungerar ganska jämförelsevis till en S3 API i form av prestanda vid lagring och hämtning av hela filer, det är naturligtvis inte ersätta den mycket snabbare network attached block storage helt och hållet. Det finns en anledning till att den här konfigurationen stöds inte officiellt av AWS—du kör in i frågor samtidighet med flera klienter med hjälp av filer, särskilt om du har kunder i olika regioner använda samma hink. Naturligtvis, S3 har också denna begränsning, och det hindrar dig inte från att ha flera klienter anslutna, men det är mer uppenbart när SÄKRINGEN verkar ge dig direkt tillgång. Det är inte, och du har att hålla denna begränsningar i åtanke.

AWS har en tjänst som liknar detta—Lagring Gateway, som kan agera som en lokal NAS och erbjuder lokal block lagring som stöds av S3. Detta är dock mer av en enterprise-lösning, och det kräver en hel fysisk server att använda en VMWare-avbildningen till. s3fs, å andra sidan, är en enkel server-lösning, även om det inte gör så mycket caching.

Så, om du kan konvertera program till att använda S3 API snarare än en SÄKRING, bör du göra det istället. Men, om du är okej med en bit av en hacky lösning, s3fs kan vara användbara.

Att sätta Upp s3fs-säkring

Jämfört med hur hacky det är, det är förvånansvärt lätt att ställa upp. s3fs-säkring är tillgängliga från de flesta chefer paket, men det kan bara kallas s3fs på vissa system. För Debian-baserade system som Ubuntu, som skulle vara:

sudo apt att installera s3fs

Du kommer att behöva skapa en IAM användaren och ge den tillstånd att komma åt den hink som du vill montera. I slutet kommer du att få en hemlig nyckel:

Du kan klistra in dessa i standard AWS referenser filen ~/.aws/referenser, men om du vill använda en annan nyckel, s3fs stöder en anpassad lösenord fil. Klistra in både access-nyckel-ID och hemlighet i /etc/passwd-s3fs , i följande format:

echo ACCESS_KEY_ID:SECRET_ACCESS_KEY > /etc/passwd-s3fs

Och se till att behörigheterna på den här keyfile är inställd på rätt sätt, eller att det kommer att klaga:

chmod 600 /etc/passwd-s3fs

Sedan kan du montera hink med följande kommando:

s3fs hink-namn /mnt/hink-namn

Om det inte fungerar, kan du aktivera debug utdata med ett par extra flaggor:

-o dbglevel=info -f -o curldbg

Om du vill att detta ska montera vid systemstart behöver du lägga till följande till din /etc/fstab:

s3fs#hink-namn /mnt/hink-namn säkring _netdev,allow_other,umask=227,uid=33,gid=33,use_cache=/root/cache 0 0