AWS Practice: Pagpapahusay ng Iyong Mga Kasanayan sa Cloud Mula sa Global Architecture hanggang sa Serverless Applications
AWS Practice: Pagpapahusay ng Iyong Mga Kasanayan sa Cloud Mula sa Global Architecture hanggang sa Serverless Applications
Ang AWS (Amazon Web Services) ay naging lider sa larangan ng cloud computing, at ang malalaking korporasyon at mga startup ay gumagamit ng iba't ibang serbisyo na ibinibigay ng AWS upang bumuo at mag-deploy ng mga application. Mula sa mga talakayan sa X/Twitter, makikita natin na ang mga lugar na sakop ng AWS ay napakalawak, kabilang ang imprastraktura, seguridad, AI/ML, DevOps, at mga Serverless application. Ang artikulong ito ay magsasama ng mga talakayang ito upang magbigay sa iyo ng mas komprehensibong gabay sa pagsasanay ng AWS, na tutulong sa iyo na pahusayin ang iyong mga kasanayan sa cloud at mas mahusay na magamit ang platform ng AWS.
1. Pag-unawa sa AWS Global Infrastructure: Ang Susi sa Mataas na Availability at Fault Tolerance
Ang pag-master sa global infrastructure ng AWS ay ang pundasyon para sa pagbuo ng mga application na may mataas na availability at fault tolerance. Ang global infrastructure ng AWS ay binubuo ng mga sumusunod na pangunahing bahagi:
- Region (Rehiyon): Isang independiyenteng rehiyon sa isang lokasyong heograpikal, at ang bawat rehiyon ay naglalaman ng maraming Availability Zone. Kapag pumipili ng rehiyon, kailangan mong isaalang-alang ang latency, mga kinakailangan sa pagsunod, at gastos.
- Availability Zone (Available Zone): Isang nakahiwalay na lokasyon sa loob ng isang rehiyon, at ang bawat available zone ay binubuo ng isa o higit pang mga data center. Sa pamamagitan ng pag-deploy ng mga application sa iba't ibang available zone, mapapabuti mo ang fault tolerance.
- Edge Location (Edge Site): Mga cache server na ipinamahagi sa buong mundo upang mapabilis ang paghahatid ng content. Ginagamit ng AWS CloudFront ang mga edge site upang i-cache ang static at dynamic na content, na nagpapabuti sa karanasan ng user.
Mga Tip sa Pagsasanay:
- Multi-Availability Zone Deployment: Ang pag-deploy ng mga kopya ng application sa iba't ibang available zone ay maaaring maiwasan ang hindi pagiging available ng application na dulot ng pagkabigo ng isang available zone.
- Piliin ang Tamang Rehiyon: Piliin ang tamang rehiyon batay sa lokasyon ng user at mga kinakailangan sa pagsunod.
- Gamitin ang CloudFront upang Pabilisin ang Paghahatid ng Content: Gumamit ng CloudFront upang i-cache ang static at dynamic na content, na nagpapabuti sa karanasan ng user.
2. IAM Best Practices: Prinsipyo ng Pinakamababang Pribilehiyo
Ang Identity and Access Management (IAM) ay ang core ng seguridad ng AWS. Pinapayagan ka ng IAM na kontrolin kung sino ang maaaring mag-access sa iyong mga mapagkukunan ng AWS at kung anong mga aksyon ang maaari nilang gawin. Kasama sa mga pangunahing konsepto ng IAM ang:
- Users (Mga User): Kumakatawan sa mga indibidwal o application na ginagamit upang ma-access ang mga mapagkukunan ng AWS.
- Roles (Mga Role): Maaaring italaga sa mga serbisyo ng AWS o mga instance ng EC2, na nagpapahintulot sa kanila na ma-access ang iba pang mga mapagkukunan ng AWS.
- Groups (Mga Grupo): Ginagamit upang ayusin ang mga user para sa madaling pamamahala ng pahintulot.
- Policies (Mga Patakaran): Tumutukoy sa mga pahintulot ng mga user, role, o grupo.
Pinakamahusay na Kasanayan:
- Prinsipyo ng Pinakamababang Pribilehiyo (Least Privilege): Ibigay lamang sa mga user o role ang pinakamababang pahintulot na kinakailangan. Iwasan ang paggamit ng patakarang
AdministratorAccess, at dapat kang lumikha ng mga custom na patakaran batay sa aktwal na mga pangangailangan. - Gumamit ng Mga Role sa Halip na Mga User ng IAM: Subukang gumamit ng Mga Role upang bigyan ang mga instance ng EC2 o mga function ng Lambda ng pahintulot na ma-access ang iba pang mga mapagkukunan ng AWS, at iwasan ang pag-iimbak ng Access Key ID at Secret Access Key sa code.
- Paganahin ang MFA (Multi-Factor Authentication): Paganahin ang MFA para sa lahat ng mga user ng IAM upang mapabuti ang seguridad ng account.
- Regular na I-audit ang Mga Pahintulot ng IAM: Regular na i-audit ang mga pahintulot ng IAM upang matiyak na walang labis na awtorisasyon.
Halimbawang Patakaran:
Pinapayagan ng sumusunod na patakaran ang mga user na magsagawa ng mga operasyon ng GetObject at PutObject sa S3 storage bucket my-bucket sa rehiyon ng us-east-1.
{
"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 Automation: Paggamit ng Bash Scripts at GitHub Actions
Binanggit sa mga diskusyon sa X/Twitter ang mga DevOps Bash script repository at GitHub Actions, na mahahalagang tool para sa pagpapatupad ng DevOps automation.
- Bash Scripts: Maaaring gumamit ng Bash scripts para i-automate ang iba't ibang DevOps tasks, tulad ng pag-deploy ng mga application, pag-configure ng mga server, pagmo-monitor ng mga system, atbp.
- GitHub Actions: Ang GitHub Actions ay isang CI/CD tool na maaaring awtomatikong mag-build, mag-test, at mag-deploy ng mga application.
Mga Praktikal na Tip:
- Gamitin ang Bash scripts para i-automate ang mga karaniwang gawain: Halimbawa, maaaring gumamit ng Bash script para awtomatikong i-deploy ang Lambda functions o EC2 instances.
- Gumamit ng GitHub Actions para bumuo ng CI/CD pipeline: Maaaring gumamit ng GitHub Actions para awtomatikong mag-build, mag-test, at mag-deploy ng mga application.
- Version Control: Itago ang mga Bash script at GitHub Actions configuration sa isang version control system, tulad ng Git.
Halimbawa ng GitHub Actions Workflow:
Ang sumusunod na GitHub Actions workflow ay awtomatikong nagbi-build, nagte-test, at nagde-deploy ng Lambda function sa tuwing may code na ipinapasok sa main branch.
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 Applications: AWS Lambda + S3 + DynamoDBAng talakayan sa X/Twitter ay nagbanggit ng isang halimbawa ng pagbuo ng Serverless X (Twitter) Quote Bot gamit ang AWS Lambda, S3, at DynamoDB. Ipinapakita nito ang kapangyarihan ng Serverless architecture.
- AWS Lambda: Serbisyo ng serverless computing na maaaring magpatakbo ng code nang hindi nangangailangan ng pamamahala ng server.
- Amazon S3: Serbisyo ng object storage para sa pag-iimbak ng iba't ibang uri ng data.
- Amazon DynamoDB: Serbisyo ng NoSQL database para sa pag-iimbak ng structured at semi-structured data.
Mga Hakbang sa Pagbuo ng Serverless Application:
- Pumili ng angkop na trigger: Pumili ng event na magti-trigger sa Lambda function, tulad ng HTTP request, S3 object upload, DynamoDB data update, atbp.
- Sumulat ng Lambda function code: Sumulat ng Lambda function code upang pangasiwaan ang trigger event at isagawa ang kaukulang aksyon.
- I-configure ang IAM role: I-configure ang IAM role upang bigyan ang Lambda function ng pahintulot na ma-access ang iba pang AWS resources, tulad ng S3 at DynamoDB.
- I-deploy ang Lambda function: I-deploy ang Lambda function sa AWS.
- Subukan ang Lambda function: Subukan ang Lambda function upang matiyak na gumagana ito nang maayos.
Mga Bentahe ng Serverless Application:
- Hindi na kailangang pamahalaan ang server: Hindi na kailangang pamahalaan ang server, na nagpapababa sa pasanin sa operasyon at pagpapanatili.
- Awtomatikong pag-scale: Awtomatikong nag-scale batay sa dami ng request, nang hindi nangangailangan ng manu-manong configuration.
- Pay-as-you-go: Magbayad lamang para sa aktwal na ginamit na computing resources, na nagpapababa sa gastos.
5. AI/ML Applications: Bedrock at LLM Practices
Ang talakayan sa X/Twitter ay nagbanggit din ng AWS AI Lab LLM (Large Language Model) research internship opportunity at ang paggamit ng Bedrock. Nagbibigay ang AWS ng malawak na hanay ng mga serbisyo ng AI/ML na makakatulong sa iyong bumuo ng iba't ibang AI/ML application.
- Amazon Bedrock: Isang serbisyo na nagbibigay ng hanay ng mga high-performance foundation model mula sa mga nangungunang kumpanya ng AI.
- AWS AI Lab: Nakatuon sa pananaliksik sa AI/ML at nagbibigay ng mga internship opportunity para sa mga estudyante.
Mga Direksyon sa Pagsasanay:
- Gumamit ng Bedrock upang bumuo ng mga AI application: Maaari mong gamitin ang mga foundation model na ibinigay ng Bedrock upang bumuo ng iba't ibang AI application, tulad ng text generation, image recognition, speech recognition, atbp.
- Pagtuunan ng pansin ang LLM memory at patuloy na pag-aaral: Ang pagtuon sa pinakabagong pag-unlad ng pananaliksik sa LLM, tulad ng LLM memory at patuloy na pag-aaral, ay makakatulong sa iyong bumuo ng mas matalinong AI application.
6. Seguridad at Pagsunod: Pagtuunan ng Pansin ang AWS Service Interruption
Ang talakayan sa X/Twitter ay nagbanggit ng mga insidente ng AWS service interruption, na nagpapaalala sa atin na pagtuunan ng pansin ang seguridad at pagsunod ng AWS.
- Multi-region deployment: Ang pag-deploy ng mga application sa iba't ibang AWS region ay maaaring maiwasan ang hindi pagkakaroon ng application dahil sa pagkabigo ng isang rehiyon.
- Pagsubaybay at pag-alerto: Magtakda ng pagsubaybay at pag-alerto upang matukoy ang mga problema sa lalong madaling panahon at gumawa ng mga hakbang.
- Backup at pagbawi: Regular na i-backup ang data at subukan ang proseso ng pagbawi.
- Pagsunod: Unawain at sundin ang mga nauugnay na kinakailangan sa pagsunod, tulad ng GDPR, HIPAA, atbp.





