AWS prakse: no globālās arhitektūras līdz Serverless lietotnēm, vispusīgi uzlabojiet savas mākoņprasmju
AWS prakse: no globālās arhitektūras līdz Serverless lietotnēm, vispusīgi uzlabojiet savas mākoņprasmju
AWS (Amazon Web Services) ir kļuvis par līderi mākoņdatošanas jomā, un gan lielie uzņēmumi, gan jaunuzņēmumi izmanto dažādus AWS piedāvātos pakalpojumus, lai izveidotu un izvietotu lietojumprogrammas. No diskusijām X/Twitter var redzēt, ka AWS aptver ļoti plašu jomu, tostarp infrastruktūru, drošību, AI/ML, DevOps un Serverless lietotnes. Šis raksts apvienos šīs diskusijas, lai sniegtu jums visaptverošāku AWS prakses rokasgrāmatu, kas palīdzēs jums uzlabot savas mākoņprasmju un labāk izmantot AWS platformu.
1. AWS globālās infrastruktūras izpratne: augstas pieejamības un kļūdu noturības atslēga
AWS globālās infrastruktūras apgūšana ir pamats augstas pieejamības un kļūdu noturības lietojumprogrammu izveidei. AWS globālā infrastruktūra sastāv no šādiem galvenajiem komponentiem:
- Region (Reģions): Ģeogrāfiski neatkarīgs reģions, katrs reģions ietver vairākas Availability Zone. Izvēloties reģionu, jāņem vērā latentums, atbilstības prasības un izmaksas.
- Availability Zone (Pieejamības zona): Izolēta atrašanās vieta reģionā, katra pieejamības zona sastāv no viena vai vairākiem datu centriem. Izvietojot lietojumprogrammas dažādās pieejamības zonās, var uzlabot kļūdu noturību.
- Edge Location (Malas atrašanās vieta): Kešatmiņas serveri, kas izplatīti visā pasaulē, lai paātrinātu satura piegādi. AWS CloudFront izmanto malas atrašanās vietas, lai kešētu statisko un dinamisko saturu, uzlabojot lietotāju pieredzi.
Praktiski padomi:
- Vairāku pieejamības zonu izvietošana: Izvietojot lietojumprogrammas kopijas dažādās pieejamības zonās, var izvairīties no situācijas, kad atsevišķas pieejamības zonas kļūme padara lietojumprogrammu nepieejamu.
- Atbilstoša reģiona izvēle: Izvēlieties atbilstošu reģionu atkarībā no lietotāju atrašanās vietas un atbilstības prasībām.
- Izmantojiet CloudFront, lai paātrinātu satura piegādi: Izmantojiet CloudFront, lai kešētu statisko un dinamisko saturu, uzlabojot lietotāju pieredzi.
2. IAM labākā prakse: minimālo tiesību princips
Identity and Access Management (IAM) ir AWS drošības pamats. IAM ļauj kontrolēt, kas var piekļūt jūsu AWS resursiem un kādas darbības viņi var veikt. IAM pamatjēdzieni ietver:
- Users (Lietotāji): Pārstāv personas vai lietojumprogrammas, ko izmanto, lai piekļūtu AWS resursiem.
- Roles (Lomas): Var piešķirt AWS pakalpojumiem vai EC2 instancēm, ļaujot tām piekļūt citiem AWS resursiem.
- Groups (Grupas): Izmanto lietotāju organizēšanai, lai atvieglotu tiesību pārvaldību.
- Policies (Politikas): Definē lietotāju, lomu vai grupu tiesības.
Labākā prakse:
- Minimālo tiesību princips (Least Privilege): Piešķiriet lietotājam vai lomai tikai minimālās nepieciešamās tiesības. Izvairieties no
AdministratorAccesspolitikas izmantošanas, jums jāizveido pielāgota politika atbilstoši faktiskajām vajadzībām. - Izmantojiet Roles IAM lietotāju vietā: Centieties izmantot Roles, lai piešķirtu EC2 instancei vai Lambda funkcijai tiesības piekļūt citiem AWS resursiem, izvairoties no Access Key ID un Secret Access Key glabāšanas kodā.
- Iespējojiet MFA (Multi-Factor Authentication): Iespējojiet MFA visiem IAM lietotājiem, lai uzlabotu konta drošību.
- Regulāri auditējiet IAM tiesības: Regulāri auditējiet IAM tiesības, lai pārliecinātos, ka nav pārmērīgas autorizācijas.
Politikas piemērs:
Šī politika ļauj lietotājiem veikt GetObject un PutObject darbības S3 krātuvē my-bucket us-east-1 reģionā.
{
"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 automatizācija: Bash skriptu un GitHub Actions izmantošana
X/Twitter diskusijās tika minēti DevOps Bash skriptu repozitoriji un GitHub Actions, kas ir svarīgi rīki DevOps automatizācijas īstenošanai.
- Bash skripti: Var izmantot Bash skriptus, lai automatizētu dažādus DevOps uzdevumus, piemēram, lietojumprogrammu izvietošanu, serveru konfigurēšanu, sistēmu uzraudzību utt.
- GitHub Actions: GitHub Actions ir CI/CD rīks, kas var automātiski būvēt, testēt un izvietot lietojumprogrammas.
Praktiski padomi:
- Izmantojiet Bash skriptus, lai automatizētu bieži sastopamus uzdevumus: Piemēram, varat izmantot Bash skriptus, lai automātiski izvietotu Lambda funkcijas vai EC2 instances.
- Izmantojiet GitHub Actions, lai izveidotu CI/CD cauruļvadu: Varat izmantot GitHub Actions, lai automātiski būvētu, testētu un izvietotu lietojumprogrammas.
- Versiju kontrole: Saglabājiet Bash skriptus un GitHub Actions konfigurācijas versiju kontroles sistēmā, piemēram, Git.
GitHub Actions darbplūsmas piemērs:
Šī GitHub Actions darbplūsma automātiski būvē, testē un izvieto Lambda funkciju katru reizi, kad kods tiek iesniegts main zarā.
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 lietojumprogrammas: AWS Lambda + S3 + DynamoDBDiskusijas par X/Twitter minēja piemēru par Serverless X (Twitter) Quote Bot izveidi, izmantojot AWS Lambda, S3 un DynamoDB. Tas parāda Serverless arhitektūras spēku.
- AWS Lambda: Bezserveru skaitļošanas pakalpojums, kas var palaist kodu, nepārvaldot serverus. // Bezserveru skaitļošanas pakalpojums, kas ļauj palaist kodu, nepārvaldot serverus.
- Amazon S3: Objektu krātuves pakalpojums dažāda veida datu glabāšanai. // Objektu krātuves pakalpojums dažādu datu veidu glabāšanai.
- Amazon DynamoDB: NoSQL datubāzes pakalpojums strukturētu un daļēji strukturētu datu glabāšanai. // NoSQL datubāzes pakalpojums strukturētu un daļēji strukturētu datu glabāšanai.
Serverless lietotņu izveides soļi: // Serverless lietotņu izveides soļi:
- Izvēlieties atbilstošus trigerus: Izvēlieties notikumus, kas aktivizē Lambda funkciju, piemēram, HTTP pieprasījumus, S3 objektu augšupielādes, DynamoDB datu atjauninājumus utt. // Izvēlieties notikumus, kas aktivizē Lambda funkciju, piemēram, HTTP pieprasījumus, S3 objektu augšupielādes, DynamoDB datu atjauninājumus utt.
- Rakstiet Lambda funkcijas kodu: Rakstiet Lambda funkcijas kodu, lai apstrādātu trigeru notikumus un veiktu atbilstošas darbības. // Rakstiet Lambda funkcijas kodu, lai apstrādātu trigeru notikumus un veiktu atbilstošas darbības.
- Konfigurējiet IAM lomas: Konfigurējiet IAM lomas, lai piešķirtu Lambda funkcijai atļaujas piekļūt citiem AWS resursiem, piemēram, S3 un DynamoDB. // Konfigurējiet IAM lomas, lai piešķirtu Lambda funkcijai atļaujas piekļūt citiem AWS resursiem, piemēram, S3 un DynamoDB.
- Izvietojiet Lambda funkciju: Izvietojiet Lambda funkciju AWS. // Izvietojiet Lambda funkciju AWS.
- Pārbaudiet Lambda funkciju: Pārbaudiet Lambda funkciju, lai pārliecinātos, ka tā darbojas pareizi. // Pārbaudiet Lambda funkciju, lai pārliecinātos, ka tā darbojas pareizi.
Serverless lietotņu priekšrocības: // Serverless lietotņu priekšrocības:
- Nav jāpārvalda serveri: Nav jāpārvalda serveri, kas samazina darbības slogu. // Nav jāpārvalda serveri, kas samazina darbības slogu.
- Automātiska mērogošana: Automātiski mērogojas atkarībā no pieprasījumu apjoma, nav nepieciešama manuāla konfigurācija. // Automātiski mērogojas atkarībā no pieprasījumu apjoma, nav nepieciešama manuāla konfigurācija.
- Maksājiet pēc pieprasījuma: Maksājiet tikai par faktiski izmantotajiem skaitļošanas resursiem, kas samazina izmaksas. // Maksājiet tikai par faktiski izmantotajiem skaitļošanas resursiem, kas samazina izmaksas.
5. AI/ML lietotnes: Bedrock un LLM prakse // AI/ML lietotnes: Bedrock un LLM prakse
X/Twitter diskusijās tika minētas arī AWS AI Lab LLM (Large Language Model) pētniecības prakses iespējas un Bedrock lietojumprogrammas. AWS piedāvā plašu AI/ML pakalpojumu klāstu, kas var palīdzēt jums izveidot dažādas AI/ML lietotnes. // X/Twitter diskusijās tika minētas arī AWS AI Lab LLM (Large Language Model) pētniecības prakses iespējas un Bedrock lietojumprogrammas. AWS piedāvā plašu AI/ML pakalpojumu klāstu, kas var palīdzēt jums izveidot dažādas AI/ML lietotnes.
- Amazon Bedrock: Pakalpojums, kas nodrošina virkni augstas veiktspējas pamata modeļu no vadošajiem AI uzņēmumiem. // Pakalpojums, kas nodrošina virkni augstas veiktspējas pamata modeļu no vadošajiem AI uzņēmumiem.
- AWS AI Lab: Koncentrējas uz AI/ML pētniecību un piedāvā prakses iespējas studentiem. // Koncentrējas uz AI/ML pētniecību un piedāvā prakses iespējas studentiem.
Prakses virzieni: // Prakses virzieni:
- Izmantojiet Bedrock, lai izveidotu AI lietotnes: Varat izmantot Bedrock nodrošinātos pamata modeļus, lai izveidotu dažādas AI lietotnes, piemēram, teksta ģenerēšanu, attēlu atpazīšanu, runas atpazīšanu utt. // Varat izmantot Bedrock nodrošinātos pamata modeļus, lai izveidotu dažādas AI lietotnes, piemēram, teksta ģenerēšanu, attēlu atpazīšanu, runas atpazīšanu utt.
- Koncentrējieties uz LLM atmiņu un nepārtrauktu mācīšanos: Koncentrējieties uz jaunākajiem LLM pētniecības sasniegumiem, piemēram, LLM atmiņu un nepārtrauktu mācīšanos, kas var palīdzēt jums izveidot viedākas AI lietotnes. // Koncentrējieties uz jaunākajiem LLM pētniecības sasniegumiem, piemēram, LLM atmiņu un nepārtrauktu mācīšanos, kas var palīdzēt jums izveidot viedākas AI lietotnes.
6. Drošība un atbilstība: pievērsiet uzmanību AWS pakalpojumu pārtraukumiem // Drošība un atbilstība: pievērsiet uzmanību AWS pakalpojumu pārtraukumiem
X/Twitter diskusijās tika minēti AWS pakalpojumu pārtraukumu gadījumi, kas atgādina mums pievērst uzmanību AWS drošībai un atbilstībai. // X/Twitter diskusijās tika minēti AWS pakalpojumu pārtraukumu gadījumi, kas atgādina mums pievērst uzmanību AWS drošībai un atbilstībai.
- Vairāku reģionu izvietošana: Izvietojot lietojumprogrammas dažādos AWS reģionos, varat izvairīties no lietojumprogrammu nepieejamības viena reģiona kļūmes dēļ. // Izvietojot lietojumprogrammas dažādos AWS reģionos, varat izvairīties no lietojumprogrammu nepieejamības viena reģiona kļūmes dēļ.
- Uzraudzība un brīdinājumi: Iestatiet uzraudzību un brīdinājumus, lai savlaicīgi atklātu problēmas un veiktu pasākumus. // Iestatiet uzraudzību un brīdinājumus, lai savlaicīgi atklātu problēmas un veiktu pasākumus.
- Dublēšana un atkopšana: Regulāri dublējiet datus un pārbaudiet atkopšanas procesus. // Regulāri dublējiet datus un pārbaudiet atkopšanas procesus.
- Atbilstība: Izprotiet un ievērojiet attiecīgās atbilstības prasības, piemēram, GDPR, HIPAA utt. // Izprotiet un ievērojiet attiecīgās atbilstības prasības, piemēram, GDPR, HIPAA utt.





