AWS-i praktika: globaalsest arhitektuurist Serverless rakendusteni, täiustage oma pilveoskusi igakülgselt
AWS-i praktika: globaalsest arhitektuurist Serverless rakendusteni, täiustage oma pilveoskusi igakülgselt
AWS (Amazon Web Services) on kujunenud pilvandmetöötluse valdkonna liidriks, kus nii suured ettevõtted kui ka idufirmad kasutavad AWS-i pakutavaid erinevaid teenuseid rakenduste loomiseks ja juurutamiseks. X/Twitteri aruteludest näeme, et AWS hõlmab väga laia valikut valdkondi, sealhulgas infrastruktuuri, turvalisust, AI/ML-i, DevOps-i ja Serverless rakendusi. See artikkel ühendab need arutelud, et pakkuda teile põhjalikumat AWS-i praktilist juhendit, mis aitab teil oma pilveoskusi täiustada ja AWS-i platvormi paremini ära kasutada.
1. AWS-i globaalse infrastruktuuri mõistmine: kõrge kättesaadavuse ja veakindluse võti
AWS-i globaalse infrastruktuuri valdamine on kõrge kättesaadavuse ja veakindlate rakenduste loomise alus. AWS-i globaalne infrastruktuur koosneb järgmistest põhikomponentidest:
- Region (piirkond): Geograafiliselt sõltumatu piirkond, mis sisaldab mitut Availability Zone'i. Piirkonna valimisel tuleb arvestada latentsuse, vastavusnõuete ja kuludega.
- Availability Zone (kättesaadavustsoon): Piirkonna isoleeritud asukoht, millest igaüks koosneb ühest või mitmest andmekeskusest. Rakenduste juurutamine erinevatesse kättesaadavustsoonidesse võib suurendada veakindlust.
- Edge Location (äärmuspunkt): Ülemaailmselt hajutatud vahemäluserverid, mida kasutatakse sisu levitamise kiirendamiseks. AWS CloudFront kasutab äärmuspunkte staatilise ja dünaamilise sisu vahemällu salvestamiseks, parandades kasutajakogemust.
Praktilised näpunäited:
- Mitme kättesaadavustsooni juurutamine: Rakenduse koopiate juurutamine erinevatesse kättesaadavustsoonidesse võib vältida rakenduse kättesaamatust ühe kättesaadavustsooni rikke korral.
- Sobiva piirkonna valimine: Valige sobiv piirkond vastavalt kasutaja asukohale ja vastavusnõuetele.
- CloudFronti kasutamine sisu levitamise kiirendamiseks: Kasutage CloudFronti staatilise ja dünaamilise sisu vahemällu salvestamiseks, et parandada kasutajakogemust.
2. IAM-i parimad praktikad: minimaalsete õiguste põhimõte
Identity and Access Management (IAM) on AWS-i turvalisuse tuum. IAM võimaldab teil kontrollida, kellel on juurdepääs teie AWS-i ressurssidele ja milliseid toiminguid nad saavad teha. IAM-i põhimõisted on järgmised:
- Users (kasutajad): Esindavad üksikisikuid või rakendusi, mida kasutatakse AWS-i ressurssidele juurdepääsuks.
- Roles (rollid): Saab määrata AWS-i teenustele või EC2 eksemplaridele, võimaldades neil pääseda juurde teistele AWS-i ressurssidele.
- Groups (grupid): Kasutatakse kasutajate korraldamiseks, et hõlbustada õiguste haldamist.
- Policies (poliitikad): Määratlevad kasutajate, rollide või gruppide õigused.
Parimad praktikad:
- Minimaalsete õiguste põhimõte (Least Privilege): Andke kasutajale või rollile ainult minimaalsed vajalikud õigused. Vältige
AdministratorAccesspoliitika kasutamist, vaid looge kohandatud poliitika vastavalt tegelikele vajadustele. - Kasutage IAM-i kasutajate asemel rolle: Proovige kasutada rolle, et anda EC2 eksemplaridele või Lambda funktsioonidele õigus pääseda juurde teistele AWS-i ressurssidele, vältides Access Key ID ja Secret Access Key salvestamist koodi.
- Luba MFA (Multi-Factor Authentication): Luba MFA kõigi IAM-i kasutajate jaoks, et suurendada konto turvalisust.
- Regulaarselt auditeerige IAM-i õigusi: Regulaarselt auditeerige IAM-i õigusi, et tagada, et ülemääraseid volitusi ei ole.
Näidispoliitika:
Järgmine poliitika võimaldab kasutajatel teostada GetObject ja PutObject toiminguid us-east-1 piirkonna S3 salves my-bucket.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:PutObject"
],
"Resource": "arn:aws:s3:::my-bucket/*",
"Condition": {
"StringEquals": {
"aws:RequestedRegion": "us-east-1"
}
}
}
]
}
3. DevOps automatiseerimine: Bash skriptide ja GitHub Actions'i kasutamine
X/Twitteri aruteludes mainiti DevOps Bash skriptide hoidlaid ja GitHub Actions'it, mis on olulised tööriistad DevOps automatiseerimiseks.
- Bash skriptid: Bash skripte saab kasutada mitmesuguste DevOps ülesannete automatiseerimiseks, nagu rakenduste juurutamine, serverite konfigureerimine, süsteemide jälgimine jne.
- GitHub Actions: GitHub Actions on CI/CD tööriist, mis suudab automaatselt rakendusi ehitada, testida ja juurutada.
Praktilised näpunäited:
- Kasutage Bash skripte tavaliste ülesannete automatiseerimiseks: Näiteks saate Bash skripti abil automaatselt juurutada Lambda funktsiooni või EC2 instantsi.
- Kasutage GitHub Actions'it CI/CD torujuhtme ehitamiseks: GitHub Actions'i abil saate automaatselt rakendusi ehitada, testida ja juurutada.
- Versioonikontroll: Salvestage Bash skriptid ja GitHub Actions'i konfiguratsioon versioonikontrollisüsteemi, näiteks Git.
Näide GitHub Actions'i töövoost:
Järgmine GitHub Actions'i töövoog ehitab, testib ja juurutab automaatselt Lambda funktsiooni iga kord, kui kood esitatakse main harule.
name: Deploy Lambda Function
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 16
- run: npm install
- run: npm run build
- uses: actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: us-east-1
- run: aws lambda update-function-code --function-name my-lambda-function --zip-file fileb://dist/lambda.zip
4. Serverless rakendus: AWS Lambda + S3 + DynamoDBX/Twitteris toimunud arutelus mainiti näidet Serverless X (Twitter) Quote Boti ehitamisest, kasutades AWS Lambda, S3 ja DynamoDB. See näitab Serverless arhitektuuri võimsust.
- AWS Lambda: Serverless arvutusteenus, mis võimaldab koodi käivitada ilma servereid haldamata.
- Amazon S3: Objektide salvestusteenus, mida kasutatakse erinevat tüüpi andmete salvestamiseks.
- Amazon DynamoDB: NoSQL andmebaasiteenus, mida kasutatakse struktureeritud ja poolstruktureeritud andmete salvestamiseks.
Serverless rakenduse ehitamise sammud:
- Vali sobiv päästik: Vali sündmus, mis käivitab Lambda funktsiooni, näiteks HTTP päring, S3 objekti üleslaadimine, DynamoDB andmete uuendamine jne.
- Kirjuta Lambda funktsiooni kood: Kirjuta Lambda funktsiooni kood, et töödelda päästikusündmust ja teostada vastavaid toiminguid.
- Konfigureeri IAM roll: Konfigureeri IAM roll, et anda Lambda funktsioonile juurdepääs teistele AWS ressurssidele, näiteks S3 ja DynamoDB.
- Juuruta Lambda funktsioon: Juuruta Lambda funktsioon AWS-i.
- Testi Lambda funktsioon: Testi Lambda funktsiooni, et veenduda selle korrektses töös.
Serverless rakenduse eelised:
- Pole vaja servereid hallata: Pole vaja servereid hallata, mis vähendab operatiivset koormust.
- Automaatne skaleerimine: Skaleerub automaatselt vastavalt päringute mahule, ilma et oleks vaja käsitsi konfigureerida.
- Maksa vastavalt vajadusele: Maksa ainult tegelikult kasutatud arvutusressursside eest, mis vähendab kulusid.
5. AI/ML rakendused: Bedrock ja LLM praktika
X/Twitteris toimunud arutelus mainiti ka AWS AI Labi LLM (Large Language Model) uurimispraktika võimalusi ja Bedrocki rakendusi. AWS pakub rikkalikke AI/ML teenuseid, mis aitavad sul ehitada erinevaid AI/ML rakendusi.
- Amazon Bedrock: Pakub teenuseid, mis sisaldavad mitmeid juhtivate AI ettevõtete suure jõudlusega alusmudeleid.
- AWS AI Lab: Keskendub AI/ML uuringutele ja pakub õpilastele praktikavõimalusi.
Praktika suunad:
- Kasuta Bedrocki AI rakenduste ehitamiseks: Saad kasutada Bedrocki pakutavaid alusmudeleid erinevate AI rakenduste ehitamiseks, näiteks teksti genereerimine, pildituvastus, kõnetuvastus jne.
- Pööra tähelepanu LLM mälule ja pidevõppele: Pööra tähelepanu LLM-i uusimatele uurimistulemustele, näiteks LLM mälu ja pidevõpe, mis aitavad sul ehitada intelligentsemaid AI rakendusi.
6. Turvalisus ja vastavus: Pööra tähelepanu AWS teenuse katkestustele
X/Twitteris toimunud arutelus mainiti AWS teenuse katkestuse juhtumeid, mis tuletab meelde, et peaksime pöörama tähelepanu AWS-i turvalisusele ja vastavusele.
- Mitme piirkonna juurutamine: Rakenduste juurutamine erinevates AWS piirkondades aitab vältida rakenduse kättesaamatust üksiku piirkonna rikke korral.
- Monitooring ja hoiatused: Seadista monitooring ja hoiatused, et õigeaegselt probleeme avastada ja meetmeid võtta.
- Varundamine ja taastamine: Regulaarselt varunda andmeid ja testi taastamisprotsesse.
- Vastavus: Mõista ja järgi asjakohaseid vastavusnõudeid, näiteks GDPR, HIPAA jne.





