Hej, Habr!
I den hÀr artikeln kommer jag att berÀtta hur enkelt och smidigt du kan publicera en statisk webbplats med hjÀlp av Yandex-teknologier, nÀmligen Object Storage.
I slutet kommer du att ha en webbplats som Àr publicerad pÄ nÀtet och som kommer att vara tillgÀnglig via en extern lÀnk.
Denna artikel kommer att vara anvÀndbar om du Àr
- En nybörjande utvecklare som just lÀr sig programmering;
- En utvecklare som har gjort en portfolio och vill publicera den offentligt för att visa sina vÀnner och arbetsgivare.
Om mig
Nyligen arbetade jag pÄ en SaaS-tjÀnst, en typ av marknadsplats dÀr mÀnniskor kan hitta sporttrÀnare för personliga trÀningar. Jag anvÀnde Amazon Web Services (AWS). Men ju mer jag fördjupade mig i projektet, desto fler nyanser lÀrde jag mig om olika processer i att organisera en startup.
Jag stötte pÄ följande problem:
- AWS kostade mycket pengar. Efter att ha arbetat i tre Är pÄ företag i Enterprise-sektorn var jag van vid sÄdana fördelar som Docker, Kubernetes, CI/CD, blue-green deployment, och som en nybörjande programmerare och startup-grundare ville jag ocksÄ implementera samma sak. Till slut kom jag fram till att AWS kostade mig mellan 300-400 dollar varje mÄnad. Den dyraste kostnaden var Kubernetes, omkring 100 dollar, med en minimal setup med en kluster och en nod.
P.S. I början behöver man inte göra sÄ. - Sedan, nÀr jag tÀnkte pÄ de juridiska aspekterna, fick jag veta om lag 152-FZ, som ungefÀr sa följande: "Personuppgifter för medborgare i Ryssland ska lagras inom Rysslands territorium", annars kan det bli böter, vilket jag ville undvika. Jag bestÀmde mig för att hantera dessa frÄgor innan "det kom nerifrÄn". :)
Inspirerad av att migrera infrastrukturen frÄn Amazon Web Services till Yandex.Cloud, bestÀmde jag mig för att studera Yandex-stacken mer ingÄende.
För mig var de nyckelfunktioner som Yandex.Cloud erbjöd följande:
- Billigare med 2-3 gÄnger (enligt ovanstÄende artikel och offentliga prissÀttningar)
- , vilket stora Amazon Àn sÄ lÀnge inte kan genomföra.
Jag undersökte andra konkurrenter till denna tjÀnst, men dÄ vann Yandex.
Nu nÀr jag har pratat om mig sjÀlv, lÄt oss gÄ vidare till sakfrÄgan.
Steg 0. Förbered webbplatsen
För att börja behöver vi en webbplats som vi vill publicera pÄ internet. Eftersom jag Àr Angular-utvecklare kommer jag att skapa en enkel mall för en SPA-applikation som jag senare kommer att publicera pÄ nÀtet.
P.S. Den som förstÄr sig pÄ Angular eller kÀnner till dess dokumentation , kan gÄ till .
Installera Angular-CLI för att skapa SPA-webbplatser i Angular:
npm install -g @angular/cliVi skapar en Angular-applikation med följande kommando:
ng new angular-habr-object-storageDÀrefter gÄr vi till applikationens mapp och startar den för att kontrollera dess funktionalitet:
cd angular-habr-object-storage
ng serve --open
Applikationen har skapats, men Àr Ànnu inte redo att publiceras pÄ en webbhotell. Vi ska bygga applikationen till en liten produktionsversion för att ta bort överflödiga filer och spara enbart de nödvÀndiga.
I Angular kan detta göras med följande kommando:
ng build --prodSom ett resultat av detta kommando skapades en mapp i roten av applikationen dist med vÄr webbplats.
Det fungerar. Nu gÄr vi vidare till webbhotell.
Step 1.
GÄ till webbplatsen och klickar pÄ knappen "Anslut".
AnmÀrkning:
- För att anvÀnda Yandex-tjÀnsten kan det behövas ett Yandex-e-postkonto (men det Àr inte sÀkert)
- För vissa funktioner mÄste vi sÀtta in pengar pÄ kontot i det personliga omrÄdet (minst 500 rubel).
Efter framgÄngsrik registrering och inloggning Àr vi i det personliga omrÄdet.

DÀrefter mÄste vi i menyn till vÀnster hitta tjÀnsten "Object Storage", som vi precis kommer att anvÀnda för att hosta webbplatsen.
Kort om termer:
- Object Storage Àr en fil lagringslösning som Àr kompatibel med Amazons AWS S3-teknologi, vilken ocksÄ har sitt eget API för att hantera lagringen frÄn koden och som, precis som AWS S3, kan anvÀndas för att hosta en statisk webbplats.
- I Object Storage skapar vi "buckets" (bucket / Korv), som Àr separata lagringsenheter för vÄra filer.

Vi ska skapa en av dem. För detta klickar vi pÄ knappen "Skapa bucket" i tjÀnstens konsol.

I formulÀret för att skapa en bucket finns följande fÀlt, lÄt oss gÄ igenom dem:
- Bucketnamn. För enkelhetens skull, namnge den samma som Angular-projektet â
angular-habr-object-storage - Max. storlek. Vi anger det belopp som vÄr webbplats vÀger, eftersom webbplatsen inte lagras gratis och för varje tilldelad gigabyte kommer vi att betala Yandex en liten summa.
- à tkomst för att lÀsa objekt. Vi stÀller in det som "Offentlig", eftersom anvÀndaren mÄste kunna hÀmta varje fil frÄn vÄr statiska webbplats för att layouten ska Äterges korrekt och skripten fungerar osv.
- à tkomst till objektlistan och à tkomst för att lÀsa instÀllningar. Vi lÀmnar det som "BegrÀnsad". Detta Àr nödvÀndigt för att kunna anvÀnda bucketen som intern lagring för filer för applikationer.
- Lagringsklass. Vi lÀmnar "Standard". Det betyder att vÄr webbplats kommer att besökas ofta, och dÀrmed laddas ner filer som utgör webbplatsen. Dessutom pÄverkar detta punkt prestanda och kostnad (infoga lÀnk).
Vi trycker pÄ "Skapa bÀdd" och bÀdden Àr skapad.

Nu behöver vi ladda upp vÄr webbplats till bÀdden. Det enklaste sÀttet Àr att öppna en mapp vid sidan av dist vÄr webbplats och helt enkelt dra och slÀppa direkt pÄ sidan. Det Àr lÀttare Àn att trycka pÄ knappen "Ladda upp objekt", eftersom mappar inte flyttas pÄ det sÀttet och de mÄste skapas manuellt i rÀtt ordning.

SÄ, webbplatsen har laddats upp till lagringen, nu kan vi ge anvÀndarna möjlighet att komma Ät lagringen som en webbplats.
För detta klickar vi pÄ fliken "Webbplats" till vÀnster i menyn.

PÄ sidan för att stÀlla in bÀdden som webbplats, vÀljer vi fliken "Hosting". HÀr anger vi startsidan för webbplatsen, vanligtvis index.html. Om du har en SPA-applikation, sÄ hanteras alla fel sannolikt ocksÄ pÄ startsidan, sÄ vi anger Àven index.html pÄ fel sidan.
Vi ser direkt vilken lÀnk som kommer att vara tillgÀnglig för vÄr webbplats. Vi klickar pÄ spara.
Efter ungefÀr 5 minuter, nÀr vi gÄr till lÀnken, ser vi att vÄr webbplats nu Àr tillgÀnglig för alla som vill.

Tack till alla som lÀste till slut! Det hÀr Àr min första artikel, jag planerar att beskriva andra Yandex-tjÀnster och deras integration med frontend- och backend-teknologier.
Skriv i kommentarerna hur intressant det Àr för er att veta mer om andra Yandex-tjÀnster eller om anvÀndningen av Angular i modern utveckling.
KĂ€lla: habr.com
