Monday, December 9, 2024

AWS Region

 AWS Region je geografska lokacija koja sadrži nekoliko Availability Zones (AZ), i predstavlja osnovnu jedinicu geografske raspodele u AWS infrastrukturi. AWS regioni su dizajnirani da pruže korisnicima opciju da biraju gde će smeštati svoje podatke i aplikacije, uzimajući u obzir faktore kao što su latencija, usklađenost sa zakonima, troškovna efikasnost i sigurnost.

Glavne karakteristike AWS Region uključuju:

  1. Geografska podela: Svaki AWS region se nalazi u određenoj geografskoj oblasti, kao što su Severna Amerika, Evropa, Azija, itd. AWS ima regiona širom sveta, omogućavajući korisnicima da biraju najbliže regije u odnosu na svoje krajnje korisnike, čime se poboljšavaju performanse i smanjuje latencija.

  2. Sastav od Availability Zones: Svaki region sadrži najmanje dve Availability Zones (AZ). Veći regioni mogu imati i više AZ. Svaka AZ je fizički izolovana i sadrži više data centara, što omogućava visoku dostupnost, redundanciju i otpornost na greške.

  3. Nezavisnost i autonomija: AWS regioni su dizajnirani da budu autonomni, što znači da su operacije i podaci u jednom regionu izolovani od drugih regiona. Ova izolacija omogućava bolju sigurnost, privatnost i usklađenost sa lokalnim zakonodavstvom, kao i minimiziranje rizika od istovremenih problema u više regiona.

  4. Regulatorna usklađenost: AWS regioni omogućavaju korisnicima da izaberu region koji ispunjava specifične regulatorne zahteve, kao što su GDPR u EU ili HIPAA u SAD-u. Svaka regija ima svoje specifične uslove vezane za privatnost podataka, sigurnost i druge regulatorne aspekte.

  5. Izbor regije za postavljanje resursa: Korisnici mogu birati AWS region u kojem žele da postave svoje resurse, kao što su EC2 instance, S3 skladište, baze podataka i drugi servisi. Ovo omogućava optimalnu raspodelu resursa, smanjenje latencije i optimizaciju troškova.

  6. Visoka dostupnost i Disaster Recovery (DR): Korišćenjem više AWS regiona, korisnici mogu implementirati strategije za visoku dostupnost i disaster recovery. Na primer, aplikacije mogu biti postavljene u dva ili više regiona kako bi se obezbedio kontinuitet poslovanja čak i u slučaju problema u jednom regionu.

  7. Globalna infrastruktura: AWS ima desetine regiona širom sveta, što znači da korisnici mogu pokrenuti aplikacije na različitim geografskim lokacijama, što im omogućava da postignu globalnu dostupnost i efikasnost.

Na primer, neki od najpoznatijih AWS regiona uključuju:

  • US East (N. Virginia) – Jedan od najstarijih i najraširenijih AWS regiona.
  • EU (Frankfurt) – Region u Evropi, koristan za korisnike u EU koji moraju da se pridržavaju lokalnih zakona o zaštiti podataka.
  • Asia Pacific (Mumbai) – Region koji služi korisnicima u Indiji i okolnim područjima.

Izbor AWS regiona je važan za optimalnu raspodelu resursa, smanjenje latencije, postizanje usklađenosti sa zakonima, i smanjenje troškova.

Availability Zone

 Availability Zone (AZ) je fizička lokacija unutar AWS regiona, koja se sastoji od jednog ili više data centara koji su fizički izolovani, ali međusobno povezani visokopouzdanim mrežama. Svaki AWS region se sastoji od najmanje dve Availability Zone, a u većim regionima može biti i više, čime se omogućava visoka dostupnost, redundancija i otpornost aplikacija i podataka.

Glavne karakteristike Availability Zones uključuju:

  1. Fizička izolacija: Svaka AZ je dizajnirana tako da bude fizički odvojena od drugih AZ u istom regionu, smanjujući rizik od istovremenih prekida usluge usled prirodnih nepogoda, kvara infrastrukture ili drugih problema u jednoj lokaciji. Iako su izolovane, AZ su povezane visoko pouzdanim i brzih mrežama, što omogućava međusobnu komunikaciju i replikaciju podataka.

  2. Visoka dostupnost: AZ omogućavaju korisnicima da distribuiraju svoje aplikacije i podatke preko više lokacija, čime se minimizira rizik od prekida rada. Ako jedan data centar ili AZ postane nedostupan, usluga može da pređe na drugu AZ u istom regionu, što osigurava visoku dostupnost i kontinuitet poslovanja.

  3. Redundancija i failover: Preporučuje se da korisnici postavljaju svoje aplikacije, servere i baze podataka u više AZ-ova, čime se omogućava automatsko prebacivanje (failover) u slučaju problema u jednoj od AZ. Na primer, baze podataka mogu koristiti replikaciju između AZ, čime se osigurava zaštita podataka.

  4. Povezanost sa AWS servisima: Sve AWS usluge koje zahtevaju visoku dostupnost i redundanciju, kao što su Amazon EC2, Amazon S3, i Amazon RDS, obično koriste više AZ, što omogućava korisnicima da lakše implementiraju visoko dostupna rešenja.

  5. Geografska raspodela: Iako su AZ fizički odvojene, sve su deo istog regiona, što znači da se nalaze u istoj geografskoj oblasti i mogu imati slične vremenske uslove i regulatorne zahteve. Ova raspodela omogućava balans između geografskih prednosti (kao što je niža latencija) i visoke dostupnosti.

  6. Nisko kašnjenje: Mrežna povezanost između AZ u istom regionu je dizajnirana za vrlo nisku latenciju, obično manje od 1 milisekunde, što omogućava brzo sinhronizovanje podataka i visoke performanse za aplikacije koje koriste više AZ.

Upotrebom Availability Zones, AWS korisnici mogu kreirati infrastrukturu koja je otpornija na kvarove i nepredvidljive događaje, dok istovremeno obezbeđuju visoku dostupnost i performanse za svoje aplikacije i usluge.

AWS Data Centers

 AWS data centri (ili AWS Data Centers) predstavljaju fizičke lokacije gde AWS postavlja, upravlja i održava infrastrukturu potrebnu za pružanje svojih cloud usluga. Ovi centri su temelj AWS-ove globalne infrastrukture koja omogućava korisnicima da pokreću aplikacije, čuvaju podatke, i koriste brojne servise koji čine AWS ekosistem.

Glavne karakteristike AWS data centara uključuju:

  1. Fizička infrastruktura: Data centri sadrže servere, skladište podataka, mrežne komponente, i druge uređaje koji omogućavaju AWS uslugama da rade. Svaki AWS region je sastavljen od više Availability Zone (AZ), a svaka AZ se sastoji od nekoliko data centara.

  2. Visoka dostupnost i redundancija: AWS data centri dizajnirani su sa visokim nivoom dostupnosti. Svaki region je podeljen na najmanje dve AZ, koje su fizički odvojene i pružaju redundanciju. Ovo omogućava da aplikacije i podaci budu sigurni i dostupni čak i u slučaju kvara jednog data centra ili AZ-a.

  3. Sigurnost: AWS data centri koriste fizičke i logičke sigurnosne mere kako bi osigurali podatke i resurse korisnika. To uključuje 24/7 nadzor, biometrijsku autentifikaciju, kontrole pristupa, video nadzor, kao i stroge fizičke i elektronske sigurnosne protokole.

  4. Globalna mreža: AWS ima podatkovne centre širom sveta, organizovane u različite AWS regione. Svaki region ima najmanje jednu AZ, ali obično tri ili više AZ-a, sa ciljem pružanja globalne distribucije, niske latencije i visokih performansi.

  5. Skalabilnost i fleksibilnost: AWS data centri omogućavaju skaliranje infrastrukture u skladu sa potrebama korisnika, bez potrebe za fizičkim postavljanjem novih servera ili infrastrukture. Korisnici mogu automatski dodavati ili smanjivati resurse prema svojim potrebama.

  6. Ekološka održivost: AWS ulaže u energetski efikasne i ekološki prihvatljive tehnologije. Mnogi AWS data centri koriste obnovljive izvore energije (kao što su solarni paneli i vetroturbine) za smanjenje emisije ugljen-dioksida i smanjenje uticaja na životnu sredinu.

  7. Poverljivost i privatnost podataka: AWS se pridržava brojnih industrijskih standarda i sertifikacija za zaštitu podataka, kao što su GDPR, HIPAA, SOC 1, 2 i 3, ISO 27001, i drugi, kako bi osigurali zaštitu poverljivih podataka korisnika.

AWS data centri su ključni za pružanje fleksibilnosti, skalabilnosti, sigurnosti i visoke dostupnosti usluga, što je omogućilo AWS-u da postane jedan od vodećih pružalaca cloud usluga na globalnom tržištu.

AWS Edge Locations

 AWS Edge Locations su fizičke lokacije širom sveta koje omogućavaju distribuciju sadržaja sa vrlo niskim kašnjenjem prema krajnjim korisnicima. One su deo Amazon CloudFront (AWS-ova mreža za isporuku sadržaja - CDN) i drugih AWS servisa koji se baziraju na edge tehnologiji, kao što su AWS Global Accelerator i AWS Lambda@Edge.

Glavne karakteristike AWS Edge Locations uključuju:

  1. Distribucija sadržaja: Edge Locations se koriste za keširanje sadržaja, što omogućava korisnicima brži pristup dinamičkom i statičkom sadržaju, kao što su slike, video, API odgovori i drugi podaci.

  2. Nisko kašnjenje: Edge Locations omogućavaju smanjenje kašnjenja jer sadržaj bude fizički bliži krajnjim korisnicima. Na ovaj način, korisnici mogu brzo preuzimati podatke bez potrebe za udaljenim pristupom centralnim AWS regionima.

  3. Podrška za AWS servise: Iako su u glavnom povezane sa CloudFront-om, AWS Edge Locations omogućavaju rad sa mnogim AWS servisima kao što su Lambda@Edge (pokretanje funkcija blizu korisnika), Global Accelerator (optimizacija mrežnog saobraćaja), kao i za Amazon Route 53 (DNS usluge).

  4. Globalna mreža: AWS Edge Locations se nalaze u većim gradovima i važnim mrežnim čvorištima širom sveta. Trenutno postoji na stotine ovih lokacija, čime se osigurava da AWS može pružiti globalnu uslugu sa minimalnim kašnjenjem.

  5. Optimizacija performansi: Pored smanjenja latencije, Edge Locations omogućavaju bolju skalabilnost i sigurnost, jer se saobraćaj može distribuirati na više lokacija, čime se poboljšava iskustvo krajnjih korisnika i olakšava upravljanje velikim količinama podataka.

AWS Edge Locations su ključne za aplikacije i servise koji zahtevaju brzu distribuciju sadržaja i bolju korisničku uslugu širom sveta.

AWS Local Zones

 AWS Local Zones su geografski specifična proširenja AWS infrastrukture koja omogućavaju korisnicima da pokreću aplikacije sa latencijom koja je vrlo bliska krajnjim korisnicima i uređajima. Lokalne zone se nalaze u velikim urbanim područjima i povezuju se sa glavnim AWS regionima, omogućavajući korisnicima da koriste AWS resurse u blizini krajnjih korisnika ili uređaja, čime se smanjuje kašnjenje i poboljšava performanse aplikacija.

Glavne karakteristike AWS Local Zones uključuju:

  1. Niska latencija: Omogućavaju nizak latencijski pristup za aplikacije koje zahtevaju brzo reagovanje.
  2. Proširena infrastruktura: Korisnici mogu koristiti lokalnu infrastrukturu za pokretanje aplikacija i resursa, dok i dalje imaju koristi od globalne AWS infrastrukture i servisa.
  3. Podrška za različite AWS servise: Local Zones podržavaju razne AWS usluge poput EC2 (Elastic Compute Cloud), EBS (Elastic Block Store), i drugih usluga kao što su baze podataka i mrežni servisi.
  4. Specifičnost prema regionima: AWS Local Zones su implementirane u specifičnim geografskim lokacijama koje su odabrane zbog velike potražnje za niskim kašnjenjem u industrijama kao što su gaming, mediji, streaming, i IoT.

AWS Local Zones su korisne za aplikacije koje zahtevaju veliku brzinu obrade podataka ili za korisnike koji žele da smanje latenciju i unaprede korisničko iskustvo.

Tuesday, October 24, 2023

squid cache

 Konfigurisanje veličine keša (cache) u Squid proxy serveru uključuje postavljanje parametara kao što su cache_dir, cache_mem, i maximum_object_size kako bi se upravljalo prostorom na disku i RAM-u koji će se koristiti za keširanje web sadržaja. Evo koraka za konfigurisanje veličine keša u Squid proxy serveru:


Konfigurisanje cache_dir za diskovni keš:

Koristite cache_dir opciju kako biste postavili lokaciju i parametre za fizičko skladištenje keširanih objekata na disku. Ovaj korak omogućava Squid-u da čuva keširane resurse na disku.

Primer konfiguracije za cache_dir:

cache_dir aufs /putanja/do/keša 10000 16 256

/putanja/do/keša je putanja na disku gde će keširani sadržaji biti smešteni.

10000 je ukupan dostupan prostor u megabajtima za keširanje.

16 je broj poddirektorijuma za keširanje (ovisno o tipu keš sistema).

256 je maksimalna veličina objekta u kilobajtima.


Konfigurisanje cache_mem za keširanje u RAM-u:

Koristite cache_mem opciju kako biste postavili koliko RAM-a Squid može koristiti za keširanje u memoriji. Ovo omogućava brže keširanje za često korišćene objekte.

Primer konfiguracije za cache_mem:

cache_mem 512 MB

Ovde se postavlja da Squid može koristiti 512 megabajta RAM-a za keširanje u memoriji.


Konfigurisanje maximum_object_size:

Upotrebite maximum_object_size kako biste postavili maksimalnu veličinu objekta koji će biti keširan na disku. Ovo omogućava kontrolu veličine keširanih objekata.

Primer konfiguracije za maximum_object_size:

maximum_object_size 10 MB

Ovom konfiguracijom Squid će odbaciti keširane objekte koji premašuju 10 megabajta.


Restartovanje Squid-a:

Nakon što ste konfigurisali veličinu keša, sačuvajte konfiguracioni fajl i ponovo pokrenite Squid kako biste primenili promene.

Prilagodite vrednosti cache_dir, cache_mem i maximum_object_size u skladu sa raspoloživim resursima na serveru i specifičnim zahtevima vaše mreže kako biste postigli optimalnu konfiguraciju keša za vaš Squid proxy server.

squid refresh_pattern

refresh_pattern je ključna komponenta u konfiguraciji Squid proxy servera koja se koristi za upravljanje vremenom zadržavanja (cache) web resursa i načinom na koji se osvježavaju, tj. obnavljaju. Pomoću refresh_pattern možete kontrolisati koliko dugo će Squid čuvati kopije web stranica i kako će ih ažurirati ili osvježiti iz izvornog izvora (web servera).


Sintaksa refresh_pattern je obično sledeća:

refresh_pattern REGEX min percent max [options]

Evo šta ovi parametri znače:


REGEX: Ovo je regularni izraz (regular expression) koji se koristi za određivanje koje URL-ove ili resurse treba tretirati određenim vremenom osvježavanja. Na primjer, možete koristiti \.jpg$ kako biste odredili sve slike u JPG formatu.

min: Minimalno vreme (u minutima) koje Squid čuva kopiju resursa u kešu pre nego što se osvježi.

percent: Ovaj parametar određuje koliko će vremena od minimalnog vremena osvježenja (min) biti dodato kako bi se dobilo vreme osvježenja. Na primer, ako postavite percent na 50, to znači da će se vreme osvježenja računati kao 150% od minimalnog vremena.

max: Maksimalno vreme (u minutima) koje Squid može čuvati kopiju resursa u kešu pre nego što se mora osvježiti.

options (opcionalno): Dodatne opcije koje možete koristiti da biste prilagodili ponašanje refresh_pattern. Na primer, možete koristiti "ignore-reload" kako biste ignorisali zahtjeve za osvježavanje generisane od strane korisnika koji pritisnu "Refresh" u svom web pregledaču.


Primer upotrebe refresh_pattern može izgledati ovako:

refresh_pattern ^ftp:           1440    20%     10080

refresh_pattern -i \.(gif|jpg|png)$  10080  90%  43200 ignore-no-store override-expire override-lastmod ignore-reload

Ovaj primer kaže Squid-u da čuva FTP resurse 1440 minuta pre nego što razmotri osvježenje, a web slike u formatima GIF, JPG i PNG 10080 minuta pre nego što se osvježe. Takođe su navedene neke dodatne opcije za obradu ovih resursa.

Kako se osvežavaju resursi?

Squid proxy server osvežava (refresh) svoj keš tako što proverava vreme zadržavanja (refresh_pattern) za svaki keširani resurs i odlučuje kada treba da ažurira ili ponovo preuzme taj resurs sa izvornog servera. Proces osvežavanja u Squid-u ima sledeće karakteristike:


Provera vremena zadržavanja: Squid redovno proverava vreme zadržavanja koje je konfigurisano putem refresh_pattern za svaki keširani resurs. Ovo se radi kako bi se utvrdilo kada je resurs treba ažurirati.


Minimalno i maksimalno vreme zadržavanja: Squid koristi minimalno i maksimalno vreme zadržavanja (navedeno u refresh_pattern) kao smernice za odlučivanje kada ažurirati resurs. Minimalno vreme predstavlja minimalno vreme koje resurs mora biti u kešu pre nego što se osveži, dok maksimalno vreme ograničava koliko dugo resurs može ostati u kešu.


Ažuriranje resursa: Kada prođe minimalno vreme zadržavanja, Squid će proveriti da li je resurs istekao ili je bliži isteku od maksimalnog vremena zadržavanja. Ako je resurs istekao ili se približava isteku, Squid će ga smatrati "zastarelim" i zatražiti novo ažuriranje tog resursa sa izvornog servera.


Zahtev serveru: Squid šalje HTTP zahtev izvornom serveru kako bi osvežio zastareli resurs. Ovaj zahtev može sadržavati uslove kao što su "If-Modified-Since" kako bi se izbeglo nepotrebno ažuriranje ako se resurs nije promenio od poslednjeg keširanja.


Odgovor od izvornog servera: Izvorni server vraća odgovor Squid-u, koji sadrži ažurirani resurs ili informaciju da resurs nije promenjen (HTTP statusni kod 304 - Not Modified).


Ažuriranje keša: Ako je izvorni server poslao ažurirani resurs, Squid će ažurirati keširanu kopiju tog resursa sa novim podacima. Ako je izvorni server vratio HTTP 304 odgovor, Squid će zadržati postojeći keširani resurs i označiti ga kao važeći za buduće zahteve.


Ovaj proces osvežavanja omogućava Squid-u da održava aktuelne resurse u kešu, osigurava da se keširani sadržaj ne zastareva i da se ažurira prema zadatim pravilima konfiguracije. Kroz konfiguraciju refresh_pattern, administrator Squid proxy servera može prilagoditi kako se različiti tipovi resursa i URL-ova tretiraju u smislu osvežavanja i zadržavanja u kešu.

OPTIONS

Opcije (options) u konfiguraciji refresh_pattern u Squid proxy serveru omogućavaju dodatne prilagodbe za to kako se Squid ponaša prilikom osvežavanja (refreshing) keširanih resursa. Evo nekoliko čestih opcija koje se mogu koristiti:

ignore-reload: Ova opcija govori Squid-u da ignorira osvežavanje keširanog resursa ako korisnik pritisne dugme "Refresh" u svom web pregledaču. Ovo je korisno kada želite da korisnicima omogućite da ručno osveže stranicu, ali ne želite da Squid automatski osvežava resurse nakon korisničkog zahteva za osvežavanje.


ignore-no-store: Kada se ova opcija koristi, Squid će osvežiti resurse čak i ako je izvorni server poslao HTTP zaglavlje "Cache-Control: no-store" koje zabranjuje keširanje resursa. Ovo može biti korisno ako želite da Squid ignoriše takva HTTP zaglavlja i kešira resurse bez obzira na njihove politike o keširanju.


override-expire: Ova opcija omogućava Squid-u da ignoriše vreme isteka koje je postavio izvorni server i da osveži resurse prema refresh_pattern konfiguraciji. To znači da Squid neće čekati da resurs istekne pre nego što ga ažurira, već će se osvežiti prema svojim pravilima.


override-lastmod: Kada se ova opcija koristi, Squid će ignorisati HTTP zaglavlje "Last-Modified" koje izvorni server šalje za resurs. To znači da Squid neće koristiti "Last-Modified" za određivanje kada je resurs osvežen, već će se osvežavati prema refresh_pattern konfiguraciji.


ignore-must-revalidate: Ova opcija se koristi da bi Squid ignorisao HTTP zaglavlje "must-revalidate" koje može biti poslato od strane izvornog servera. "must-revalidate" zahteva da se svaki zahtjev za resursom pošalje iznova iz izvornog servera, ali korišćenjem ove opcije, Squid će ga ignorisati.

NAT Gateway

  NAT Gateway je potpuno upravljani AWS servis koji omogućava instancama u privatnim subnetima u Amazon VPC -u da uspostave izlazne veze ka...