Pràctica d'AWS: des de l'arquitectura global fins a les aplicacions Serverless, millora les teves habilitats al núvol de manera integral
Pràctica d'AWS: des de l'arquitectura global fins a les aplicacions Serverless, millora les teves habilitats al núvol de manera integral
AWS (Amazon Web Services) s'ha convertit en el líder en el camp del cloud computing, i tant les grans empreses com les startups estan utilitzant els diversos serveis que ofereix AWS per construir i desplegar aplicacions. A partir de les discussions a X/Twitter, podem veure que AWS abasta una àmplia gamma d'àrees, incloent-hi la infraestructura, la seguretat, la IA/ML, DevOps i les aplicacions Serverless. Aquest article combinarà aquestes discussions per proporcionar-vos una guia de pràctica d'AWS més completa, que us ajudarà a millorar les vostres habilitats al núvol i a utilitzar millor la plataforma AWS.
1. Comprendre la infraestructura global d'AWS: la clau per a l'alta disponibilitat i la tolerància a errors
Dominar la infraestructura global d'AWS és la base per construir aplicacions d'alta disponibilitat i tolerants a errors. La infraestructura global d'AWS es compon dels següents components clau:
- Region (Regió): Una regió independent en una ubicació geogràfica, cada regió conté diverses Availability Zones. Cal tenir en compte la latència, els requisits de compliment i els costos a l'hora de seleccionar una regió.
- Availability Zone (Zona de disponibilitat): Una ubicació aïllada dins d'una regió, cada zona de disponibilitat consta d'un o més centres de dades. En desplegar aplicacions en diferents zones de disponibilitat, es pot millorar la capacitat de tolerància a errors.
- Edge Location (Ubicació de vora): Servidors de memòria cau distribuïts per tot el món, utilitzats per accelerar la distribució de contingut. AWS CloudFront utilitza ubicacions de vora per emmagatzemar en memòria cau contingut estàtic i dinàmic, millorant l'experiència de l'usuari.
Consells pràctics:
- Desplegament multi-zona de disponibilitat: Desplegar rèpliques d'aplicacions en diferents zones de disponibilitat pot evitar que una fallada d'una sola zona de disponibilitat faci que l'aplicació no estigui disponible.
- Seleccioneu la regió adequada: Seleccioneu la regió adequada en funció de la ubicació dels usuaris i els requisits de compliment.
- Utilitzeu CloudFront per accelerar la distribució de contingut: Utilitzeu CloudFront per emmagatzemar en memòria cau contingut estàtic i dinàmic, millorant l'experiència de l'usuari.
2. Bones pràctiques d'IAM: principi de mínims privilegis
Identity and Access Management (IAM) és el nucli de la seguretat d'AWS. IAM us permet controlar qui pot accedir als vostres recursos d'AWS i quines accions poden realitzar. Els conceptes bàsics d'IAM inclouen:
- Users (Usuaris): Representen persones o aplicacions, utilitzats per accedir als recursos d'AWS.
- Roles (Rols): Es poden assignar a serveis d'AWS o instàncies EC2, permetent-los accedir a altres recursos d'AWS.
- Groups (Grups): S'utilitzen per organitzar els usuaris, facilitant la gestió de permisos.
- Policies (Polítiques): Defineixen els permisos d'usuaris, rols o grups.
Millors pràctiques:
- Principi de mínims privilegis (Least Privilege): Només concediu als usuaris o rols els permisos mínims necessaris. Eviteu utilitzar la política
AdministratorAccess, hauríeu de crear polítiques personalitzades en funció de les necessitats reals. - Utilitzeu rols en lloc d'usuaris IAM: Intenteu utilitzar rols per concedir a les instàncies EC2 o a les funcions Lambda permís per accedir a altres recursos d'AWS, evitant emmagatzemar l'Access Key ID i la Secret Access Key al codi.
- Habiliteu MFA (Multi-Factor Authentication): Habiliteu MFA per a tots els usuaris IAM, millorant la seguretat del compte.
- Auditeu periòdicament els permisos IAM: Auditeu periòdicament els permisos IAM per assegurar-vos que no hi hagi cap autorització excessiva.
Política d'exemple:
La següent política permet als usuaris realitzar operacions GetObject i PutObject al bucket S3 my-bucket a la regió 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. Automatització de DevOps: Utilització d'scripts Bash i GitHub Actions
Les discussions a X/Twitter van esmentar els repositoris d'scripts Bash de DevOps i GitHub Actions, que són eines importants per implementar l'automatització de DevOps.
- Scripts Bash: Es poden utilitzar scripts Bash per automatitzar diverses tasques de DevOps, com ara desplegar aplicacions, configurar servidors, monitorar sistemes, etc.
- GitHub Actions: GitHub Actions és una eina de CI/CD que pot construir, provar i desplegar aplicacions automàticament.
Consells pràctics:
- Utilitzeu scripts Bash per automatitzar tasques comunes: Per exemple, podeu utilitzar scripts Bash per desplegar automàticament funcions Lambda o instàncies EC2.
- Utilitzeu GitHub Actions per construir pipelines de CI/CD: Podeu utilitzar GitHub Actions per construir, provar i desplegar aplicacions automàticament.
- Control de versions: Emmagatzemeu els scripts Bash i la configuració de GitHub Actions en un sistema de control de versions, com ara Git.
Exemple de flux de treball de GitHub Actions:
El següent flux de treball de GitHub Actions construirà, provarà i desplegarà automàticament una funció Lambda cada vegada que es faci una confirmació de codi a la branca 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. Aplicacions Serverless: AWS Lambda + S3 + DynamoDBLa discussió a X/Twitter va esmentar un exemple de construcció d'un bot de cites Serverless X (Twitter) utilitzant AWS Lambda, S3 i DynamoDB. Això demostra el poder de l'arquitectura Serverless.
- AWS Lambda: Servei de computació sense servidor que permet executar codi sense necessitat de gestionar servidors.
- Amazon S3: Servei d'emmagatzematge d'objectes per emmagatzemar diversos tipus de dades.
- Amazon DynamoDB: Servei de base de dades NoSQL per emmagatzemar dades estructurades i semiestructurades.
Passos per construir una aplicació Serverless:
- Seleccionar el disparador adequat: Seleccionar l'esdeveniment que dispara la funció Lambda, com ara sol·licituds HTTP, càrregues d'objectes S3, actualitzacions de dades de DynamoDB, etc.
- Escriure el codi de la funció Lambda: Escriure el codi de la funció Lambda per gestionar l'esdeveniment disparador i executar les operacions corresponents.
- Configurar el rol IAM: Configurar el rol IAM per concedir a la funció Lambda permís per accedir a altres recursos d'AWS, com ara S3 i DynamoDB.
- Desplegar la funció Lambda: Desplegar la funció Lambda a AWS.
- Provar la funció Lambda: Provar la funció Lambda per assegurar-se que funciona correctament.
Avantatges de les aplicacions Serverless:
- No cal gestionar servidors: No cal gestionar servidors, cosa que redueix la càrrega operativa.
- Escalat automàtic: S'escala automàticament segons el volum de sol·licituds, sense necessitat de configuració manual.
- Pagament per ús: Només es paga pels recursos de computació utilitzats realment, cosa que redueix els costos.
5. Aplicacions d'IA/ML: Pràctiques de Bedrock i LLM
La discussió a X/Twitter també va esmentar les oportunitats de pràctiques d'investigació de LLM (Large Language Model) d'AWS AI Lab i l'aplicació de Bedrock. AWS ofereix una àmplia gamma de serveis d'IA/ML que poden ajudar-te a construir diverses aplicacions d'IA/ML.
- Amazon Bedrock: Servei que proporciona una gamma de models fonamentals d'alt rendiment de les principals empreses d'IA.
- AWS AI Lab: Se centra en la investigació d'IA/ML i ofereix oportunitats de pràctiques per a estudiants.
Direccions pràctiques:
- Utilitzar Bedrock per construir aplicacions d'IA: Pots utilitzar els models fonamentals proporcionats per Bedrock per construir diverses aplicacions d'IA, com ara generació de text, reconeixement d'imatges, reconeixement de veu, etc.
- Centrar-se en la memòria i l'aprenentatge continu de LLM: Centrar-se en els últims avenços en la investigació de LLM, com ara la memòria i l'aprenentatge continu de LLM, pot ajudar-te a construir aplicacions d'IA més intel·ligents.
6. Seguretat i compliment: Centrar-se en les interrupcions del servei d'AWS
La discussió a X/Twitter va esmentar els esdeveniments d'interrupció del servei d'AWS, cosa que ens recorda que hem de centrar-nos en la seguretat i el compliment d'AWS.
- Desplegament multiregió: Desplegar aplicacions en diferents regions d'AWS pot evitar que una fallada d'una sola regió faci que l'aplicació no estigui disponible.
- Monitoratge i alertes: Configurar el monitoratge i les alertes per detectar problemes a temps i prendre mesures.
- Còpia de seguretat i restauració: Fer còpies de seguretat de les dades periòdicament i provar els processos de restauració.
- Compliment: Entendre i complir els requisits de compliment pertinents, com ara GDPR, HIPAA, etc.





