Mazoezi ya AWS: Boresha Ujuzi Wako wa Wingu Kikamilifu Kutoka Usanifu wa Kimataifa hadi Programu Isiyo na Seva
Mazoezi ya AWS: Boresha Ujuzi Wako wa Wingu Kikamilifu Kutoka Usanifu wa Kimataifa hadi Programu Isiyo na Seva
AWS (Amazon Web Services) imekuwa kiongozi katika uwanja wa kompyuta ya wingu, na biashara kubwa na kampuni zinazoanzishwa zinatumia huduma mbalimbali zinazotolewa na AWS kuunda na kupeleka programu. Kutoka kwa majadiliano kwenye X/Twitter, tunaweza kuona kwamba maeneo yanayohusika na AWS ni pana sana, ikiwa ni pamoja na miundombinu, usalama, AI/ML, DevOps na programu zisizo na seva. Makala haya yataunganisha majadiliano haya ili kukupa mwongozo wa kina zaidi wa mazoezi ya AWS ili kukusaidia kuboresha ujuzi wako wa wingu na kutumia vyema jukwaa la AWS.
1. Kuelewa Miundombinu ya Kimataifa ya AWS: Ufunguo wa Upatikanaji wa Juu na Ustahimilivu wa Hitilafu
Kuelewa miundombinu ya kimataifa ya AWS ni msingi wa kuunda programu zinazopatikana sana na zinazostahimili hitilafu. Miundombinu ya kimataifa ya AWS inajumuisha vipengele muhimu vifuatavyo:
- Region (Eneo): Eneo huru la kijiografia, kila eneo lina Availability Zone nyingi. Unapochagua eneo, unahitaji kuzingatia muda wa kusubiri, mahitaji ya kufuata na gharama.
- Availability Zone (Eneo la Upatikanaji): Eneo lililotengwa ndani ya eneo, kila eneo la upatikanaji lina kituo kimoja au zaidi cha data. Kwa kupeleka programu katika maeneo tofauti ya upatikanaji, unaweza kuboresha ustahimilivu wa hitilafu.
- Edge Location (Eneo la Makali): Seva za akiba zilizosambazwa kote ulimwenguni ili kuharakisha utoaji wa maudhui. AWS CloudFront hutumia maeneo ya makali kuhifadhi maudhui tuli na yanayobadilika ili kuboresha uzoefu wa mtumiaji.
Mbinu za Vitendo:
- Upelekaji wa Maeneo Mengi ya Upatikanaji: Kupeleka nakala za programu katika maeneo tofauti ya upatikanaji kunaweza kuzuia programu isipatikane kutokana na kushindwa kwa eneo moja la upatikanaji.
- Chagua Eneo Sahihi: Chagua eneo sahihi kulingana na eneo la mtumiaji na mahitaji ya kufuata.
- Tumia CloudFront Kuharakisha Utoaji wa Maudhui: Tumia CloudFront kuhifadhi maudhui tuli na yanayobadilika ili kuboresha uzoefu wa mtumiaji.
2. Mbinu Bora za IAM: Kanuni ya Haki Ndogo
Identity and Access Management (IAM) ndio msingi wa usalama wa AWS. IAM hukuruhusu kudhibiti ni nani anayeweza kufikia rasilimali zako za AWS na ni vitendo gani wanaweza kufanya. Dhana za msingi za IAM ni pamoja na:
- Users (Watumiaji): Inawakilisha watu binafsi au programu zinazotumiwa kufikia rasilimali za AWS.
- Roles (Majukumu): Inaweza kukabidhiwa huduma za AWS au matukio ya EC2, kuwaruhusu kufikia rasilimali zingine za AWS.
- Groups (Vikundi): Inatumika kupanga watumiaji kwa usimamizi rahisi wa ruhusa.
- Policies (Sera): Inafafanua ruhusa za watumiaji, majukumu au vikundi.
Mbinu Bora:
- Kanuni ya Haki Ndogo (Least Privilege): Mpe mtumiaji au jukumu ruhusa ndogo zaidi zinazohitajika. Epuka kutumia sera ya
AdministratorAccess, unapaswa kuunda sera maalum kulingana na mahitaji halisi. - Tumia Majukumu Badala ya Watumiaji wa IAM: Jaribu kutumia Majukumu kutoa matukio ya EC2 au kazi za Lambda ruhusa ya kufikia rasilimali zingine za AWS, epuka kuhifadhi Kitambulisho cha Ufunguo wa Ufikiaji na Ufunguo wa Siri wa Ufikiaji kwenye msimbo.
- Washa MFA (Uthibitishaji wa Mambo Mengi): Washa MFA kwa watumiaji wote wa IAM ili kuboresha usalama wa akaunti.
- Kagua Ruhusa za IAM Mara kwa Mara: Kagua ruhusa za IAM mara kwa mara ili kuhakikisha kuwa hakuna uidhinishaji kupita kiasi.
Sera ya Mfano:
Sera ifuatayo inaruhusu watumiaji kufanya shughuli za GetObject na PutObject katika eneo la us-east-1 la S3 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. Uendeshaji wa DevOps: Kutumia Hati za Bash na GitHub Actions
Mjadala kwenye X/Twitter ulitaja hazina za hati za DevOps Bash na GitHub Actions, ambazo ni zana muhimu za kutekeleza uendeshaji wa DevOps.
- Hati za Bash: Unaweza kutumia hati za Bash kuendesha kiotomatiki kazi mbalimbali za DevOps, kama vile kupeleka programu, kusanidi seva, kufuatilia mifumo, n.k.
- GitHub Actions: GitHub Actions ni zana ya CI/CD ambayo inaweza kujenga, kujaribu na kupeleka programu kiotomatiki.
Vidokezo Muhimu:
- Tumia hati za Bash kuendesha kiotomatiki kazi za kawaida: Kwa mfano, unaweza kutumia hati za Bash kupeleka kiotomatiki Lambda Function au mfano wa EC2.
- Tumia GitHub Actions kujenga bomba la CI/CD: Unaweza kutumia GitHub Actions kujenga, kujaribu na kupeleka programu kiotomatiki.
- Udhibiti wa Toleo: Hifadhi hati za Bash na usanidi wa GitHub Actions katika mfumo wa udhibiti wa toleo, kama vile Git.
Mfano wa Utiririshaji wa Kazi wa GitHub Actions:
Utiririshaji wa kazi ufuatao wa GitHub Actions utajenga, kujaribu na kupeleka Lambda Function kiotomatiki kila wakati msimbo unapowasilishwa kwa tawi la main.
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. Programu Isiyo na Seva: AWS Lambda + S3 + DynamoDBMajadiliano kwenye X/Twitter yametaja mfano wa kujenga Serverless X (Twitter) Quote Bot kwa kutumia AWS Lambda, S3, na DynamoDB. Hii inaonyesha nguvu ya usanifu wa Serverless.
- AWS Lambda: Huduma ya kompyuta isiyo na seva, ambayo inaweza kuendesha msimbo bila kuhitaji kusimamia seva.
- Amazon S3: Huduma ya kuhifadhi vitu, inayotumika kuhifadhi aina mbalimbali za data.
- Amazon DynamoDB: Huduma ya hifadhidata ya NoSQL, inayotumika kuhifadhi data iliyoandaliwa na nusu iliyoandaliwa.
Hatua za kujenga programu ya Serverless:
- Chagua kichochezi kinachofaa: Chagua tukio ambalo litaanzisha kazi ya Lambda, kama vile ombi la HTTP, upakiaji wa kitu cha S3, sasisho la data ya DynamoDB, n.k. (Chagua kichochezi kinachofaa: Chagua tukio ambalo litaanzisha kazi ya Lambda, kama vile ombi la HTTP, upakiaji wa kitu cha S3, sasisho la data ya DynamoDB, n.k.)
- Andika msimbo wa kazi ya Lambda: Andika msimbo wa kazi ya Lambda ili kushughulikia matukio ya kichochezi na kutekeleza shughuli zinazohusika. (Andika msimbo wa kazi ya Lambda: Andika msimbo wa kazi ya Lambda ili kushughulikia matukio ya kichochezi na kutekeleza shughuli zinazohusika.)
- Sanidi jukumu la IAM: Sanidi jukumu la IAM, ukiruhusu kazi ya Lambda kufikia rasilimali zingine za AWS, kama vile S3 na DynamoDB. (Sanidi jukumu la IAM: Sanidi jukumu la IAM, ukiruhusu kazi ya Lambda kufikia rasilimali zingine za AWS, kama vile S3 na DynamoDB.)
- Sambaza kazi ya Lambda: Sambaza kazi ya Lambda kwa AWS. (Sambaza kazi ya Lambda: Sambaza kazi ya Lambda kwa AWS.)
- Jaribu kazi ya Lambda: Jaribu kazi ya Lambda, hakikisha inafanya kazi vizuri. (Jaribu kazi ya Lambda: Jaribu kazi ya Lambda, hakikisha inafanya kazi vizuri.)
Faida za programu ya Serverless:
- Hakuna haja ya kusimamia seva: Hakuna haja ya kusimamia seva, kupunguza mzigo wa uendeshaji na matengenezo. (Hakuna haja ya kusimamia seva: Hakuna haja ya kusimamia seva, kupunguza mzigo wa uendeshaji na matengenezo.)
- Upanuzi otomatiki: Upanuzi otomatiki kulingana na kiasi cha maombi, hakuna haja ya usanidi wa mikono. (Upanuzi otomatiki: Upanuzi otomatiki kulingana na kiasi cha maombi, hakuna haja ya usanidi wa mikono.)
- Lipa unachotumia: Lipa tu rasilimali za kompyuta zinazotumiwa, kupunguza gharama. (Lipa unachotumia: Lipa tu rasilimali za kompyuta zinazotumiwa, kupunguza gharama.)
5. Matumizi ya AI/ML: Bedrock na Mazoezi ya LLM
Majadiliano kwenye X/Twitter pia yametaja fursa za mafunzo ya utafiti wa LLM (Large Language Model) katika AWS AI Lab na matumizi ya Bedrock. AWS hutoa huduma nyingi za AI/ML, ambazo zinaweza kukusaidia kujenga matumizi mbalimbali ya AI/ML.
- Amazon Bedrock: Hutoa huduma mbalimbali za miundo ya msingi ya utendaji wa juu kutoka kwa kampuni zinazoongoza za AI.
- AWS AI Lab: Inalenga utafiti wa AI/ML, na hutoa fursa za mafunzo kwa wanafunzi.
Mielekeo ya mazoezi:
- Tumia Bedrock kujenga programu za AI: Unaweza kutumia miundo ya msingi inayotolewa na Bedrock kujenga programu mbalimbali za AI, kama vile uzalishaji wa maandishi, utambuzi wa picha, utambuzi wa sauti, n.k. (Tumia Bedrock kujenga programu za AI: Unaweza kutumia miundo ya msingi inayotolewa na Bedrock kujenga programu mbalimbali za AI, kama vile uzalishaji wa maandishi, utambuzi wa picha, utambuzi wa sauti, n.k.)
- Zingatia kumbukumbu ya LLM na kujifunza endelevu: Zingatia maendeleo ya hivi karibuni ya utafiti wa LLM, kama vile kumbukumbu ya LLM na kujifunza endelevu, ambayo inaweza kukusaidia kujenga programu za AI zenye akili zaidi. (Zingatia kumbukumbu ya LLM na kujifunza endelevu: Zingatia maendeleo ya hivi karibuni ya utafiti wa LLM, kama vile kumbukumbu ya LLM na kujifunza endelevu, ambayo inaweza kukusaidia kujenga programu za AI zenye akili zaidi.)
6. Usalama na Uzingatiaji: Zingatia Kukatika kwa Huduma za AWS
Majadiliano kwenye X/Twitter yametaja matukio ya kukatika kwa huduma za AWS, ambayo yanatukumbusha kuzingatia usalama na uzingatiaji wa AWS.
- Usambazaji wa mikoa mingi: Sambaza programu katika mikoa tofauti ya AWS, ambayo inaweza kuepuka programu kutopatikana kutokana na kushindwa kwa eneo moja. (Usambazaji wa mikoa mingi: Sambaza programu katika mikoa tofauti ya AWS, ambayo inaweza kuepuka programu kutopatikana kutokana na kushindwa kwa eneo moja.)
- Ufuatiliaji na arifa: Weka ufuatiliaji na arifa, gundua matatizo kwa wakati na uchukue hatua. (Ufuatiliaji na arifa: Weka ufuatiliaji na arifa, gundua matatizo kwa wakati na uchukue hatua.)
- Hifadhi nakala na urejeshaji: Hifadhi nakala za data mara kwa mara, na ujaribu mchakato wa urejeshaji. (Hifadhi nakala na urejeshaji: Hifadhi nakala za data mara kwa mara, na ujaribu mchakato wa urejeshaji.)
- Uzingatiaji: Elewa na uzingatie mahitaji husika ya uzingatiaji, kama vile GDPR, HIPAA, n.k. (Uzingatiaji: Elewa na uzingatie mahitaji husika ya uzingatiaji, kama vile GDPR, HIPAA, n.k.)





