【免费下载链接】aws-solutions-architect-brasil
Repositório com recursos em Português (PT-BR) para estudos da certificação AWS Certified Solutions Architect - Associate (SAA-C03)
正在备考AWS Certified Solutions Architect – Associate (SAA-C03)的你,一定被"实验太贵、不敢动手"卡住过。开源项目aws-solutions-architect-brasil专门解决这个痛点:它把 SAA-C03 的高频考点拆解成总成本 < $5的 Hands-on 实验,每个实验都用AWS CLI和Terraform两种方式完整复现,让你花一杯咖啡的钱,就能把 Serverless、VPC、S3、RDS Multi-AZ、Auto Scaling 这些"考必考"的架构亲手跑一遍。
下面带你走一遍这套低成本实验的全流程,从环境配置到五大实验,再到安全清理,全程可控成本。
一、为什么选这个 SAA-C03 Hands-on 实验仓库
aws-solutions-architect-brasil 覆盖 SAA-C03 四大考试域(韧性 30%、高性能 28%、安全 24%、成本优化 18%),共 31 个模块。它最大的特点不是理论堆砌,而是每个核心主题都配了一个可复现的 lab,并且刻意压低资源规格(t3.micro、db.t3.micro、PAY_PER_REQUEST),把单次实验成本压到几分钱。
项目里所有 lab 的入口都在 28-Labs-Praticos/README.md,官方在文件开头明确标注:
Custo estimado total dos labs: < $5(务必在每次实验后执行 cleanup)
这意味着:只要养成"实验完就清理"的习惯,整套 Hands-on 几乎不会烧钱。
二、实验环境准备:AWS CLI + Terraform 一次配好
动手前先花 10 分钟把工具链配好,这套配置在整个仓库里是通用的,后续所有 lab 都依赖它。完整步骤见 31-Recursos-e-Links/lab.md。
2.1 配置 AWS CLI 多 Profile
先用sts get-caller-identity确认你当前身份,避免在错误的账号上跑实验:
aws sts get-caller-identity aws configure --profile dev # 填 Access Key、Secret、区域 us-east-1、输出 json仓库建议把 dev / prod / sso 三个 profile 分开,并写几个常用 alias(如aws-who直接打印当前身份),减少误操作。
2.2 用 tfenv 管理 Terraform 版本
Terraform 版本不一致是新手最常见的"坑"。仓库统一要求Terraform ≥ 1.5,并用 tfenv 固定版本:
tfenv install 1.7.5 tfenv use 1.7.5 echo "1.7.5" > .terraform-version # 按项目锁定版本💡 记住一个原则:先
terraform plan预览,再terraform apply应用。plan 会告诉你会创建/销毁哪些资源,是避免"手滑烧钱"的第一道保险。
三、< $5 成本结构:五大实验全景
五大实验都集中在 28-Labs-Praticos/README.md,覆盖 SAA-C03 最高频的考点。下表给出每个实验的架构与成本量级(数据来自 28-Labs-Praticos/cheatsheet.md 的"Estimativa de Custo"):
| 实验 | 架构 | 核心考点 | 2h Lab 预估成本 |
|---|---|---|---|
| Lab 1 | API Gateway → Lambda → DynamoDB | Serverless CRUD API | 免费额度内 |
| Lab 2 | VPC + 公/私子网 + NAT Gateway | 网络隔离、私网出口 | ~$0.15/h |
| Lab 3 | S3 版本控制 + 生命周期 + 跨区复制 | 存储治理与容灾 | 免费额度内 |
| Lab 4 | Launch Template + ASG + Target Tracking | 自动弹性伸缩 | ~$0.02 |
| Lab 5 | RDS MySQL Multi-AZ + Snapshot/Restore | 高可用数据库 | ~$0.06/h |
成本明细参考:
| 资源 | 单价参考 |
|---|---|
| EC2 t3.micro | ~$0.01 |
| NAT Gateway | ~$0.09/h + $0.045/GB |
| RDS db.t3.micro Multi-AZ | ~$0.06/h |
| Lambda(100 万次请求) | 免费额度 |
| S3(< 5GB) | 免费额度 |
| ECS Fargate(0.25vCPU / 0.5GB) | ~$0.01/h |
⚠️ 最容易被忽略的"隐形烧钱点"是NAT Gateway:它按小时计费,哪怕没有流量也在收钱。所以含 NAT 的实验一定要及时销毁。
四、完整复现实验 1:Serverless API(Lambda + DynamoDB + API Gateway)
这是最典型的 Serverless 考点,也是成本几乎为零的实验(都在免费额度内)。架构:API Gateway HTTP API → Lambda → DynamoDB。
AWS CLI 步骤(挑核心):
# 1. 创建 DynamoDB 表(按需付费,无预置容量费) aws dynamodb create-table \ --table-name Products \ --attribute-definitions AttributeName=productId,AttributeType=S \ --key-schema AttributeName=productId,KeyType=HASH \ --billing-mode PAY_PER_REQUEST --region us-east-1 # 2. 创建 Lambda 执行的 IAM Role aws iam create-role --role-name lambda-products-role \ --assume-role-policy-document file://lambda-trust-policy.json # 3. 部署函数 + 创建 API Gateway HTTP API aws lambda create-function --function-name products-api \ --runtime nodejs20.x --handler index.handler --zip-file fileb://function.zipTerraform 等价写法只需声明三组资源:aws_dynamodb_table、aws_iam_role、aws_lambda_function,用data.archive_file自动打包代码。完整 HCL 见 28-Labs-Praticos/README.md 的 Lab 1 部分。
🎯 考点提示:为什么 DynamoDB 用
PAY_PER_REQUEST?——学习和低流量场景下,按需付费比预置 RCU/WCU 更省钱,避免为"空转容量"付费。
清理(必做):
aws lambda delete-function --function-name products-api aws dynamodb delete-table --table-name Products五、完整复现实验 2:VPC 公/私子网 + NAT Gateway
这个实验练的是 SAA-C03 网络域的硬功夫:公网子网直接出公网,私网子网通过NAT Gateway出公网,实现隔离。
VPC_ID=$(aws ec2 create-vpc --cidr-block 10.0.0.0/16 --query Vpc.VpcId --output text) # 公网 + 私网各一个子网(跨 2 个可用区) aws ec2 create-subnet --vpc-id $VPC_ID --cidr-block 10.0.1.0/24 --availability-zone us-east-1a aws ec2 create-subnet --vpc-id $VPC_ID --cidr-block 10.0.11.0/24 --availability-zone us-east-1a # Internet Gateway 给公网子网 IGW_ID=$(aws ec2 create-internet-gateway --query InternetGateway.InternetGatewayId --output text) aws ec2 attach-internet-gateway --internet-gateway-id $IGW_ID --vpc-id $VPC_ID # NAT Gateway 给私网子网(注意:按小时计费!) EIP=$(aws ec2 allocate-address --domain vpc --query AllocationId --output text) aws ec2 create-nat-gateway --subnet-id $PUB_SUB_1 --allocation-id $EIP完整路由表、子网关联命令见 09-VPC-e-Redes-Labs/lab.md。
💡 高频考点:NAT Gateway vs VPC Endpoint。NAT 用于通用私网出公网;如果只是访问 S3/DynamoDB 等 AWS 服务,用VPC Gateway Endpoint免费且免流量费,能省下 NAT 的 $0.09/h。
六、完整复现实验 3:S3 版本控制 + 生命周期 + 跨区复制
S3 是 SAA-C03 出现频率最高的服务之一。这个实验把三个核心能力一次练到位:版本控制(防误删)、生命周期(自动降成本)、跨区复制(容灾)。
# 版本控制 aws s3api put-bucket-versioning --bucket meu-bucket-principal \ --versioning-configuration Status=Enabled # 生命周期:30 天转 STANDARD_IA,90 天转 GLACIER,365 天删除 aws s3api put-bucket-lifecycle-configuration --bucket meu-bucket-principal \ --lifecycle-configuration file://lifecycle.json # 跨区复制 CRR aws s3api put-bucket-replication --bucket meu-bucket-principal \ --replication-configuration file://replication.jsonlifecycle.json的完整结构(含Transitions/Expiration字段)见 28-Labs-Praticos/README.md。
🎯 考点提示:存储类的选择是经典题。Standard(频繁访问)、Standard-IA(偶发访问)、One Zone-IA(可再生的数据)、Glacier(归档)——选便宜的那类时,一定要考虑"恢复延迟"和"最短保留期"。
七、完整复现实验 4:CloudWatch 告警 + Auto Scaling
弹性伸缩是"高性能 + 韧性"双考点。核心:用Target Tracking把 ASG 的 CPU 维持在 70%。
# 创建 Launch Template(t3.micro) aws ec2 create-launch-template --launch-template-name web-template \ --launch-template-data '{"InstanceType":"t3.micro"}' # 创建 ASG:min 1 / max 5 / desired 2 aws autoscaling create-auto-scaling-group \ --auto-scaling-group-name web-asg \ --min-size 1 --max-size 5 --desired-capacity 2 \ --launch-template LaunchTemplateName=web-template,Version='$Latest' # Target Tracking:CPU > 70% 扩容 aws autoscaling put-scaling-policy --auto-scaling-group-name web-asg \ --policy-name cpu-scale-out --policy-type TargetTrackingScaling \ --target-tracking-configuration '{"TargetValue":70.0,...}'完整配置(含PredefinedMetricSpecification)见 28-Labs-Praticos/README.md 的 Lab 4。
💡 考点提示:ASG(指标驱动)vs Scheduled Scaling(可预测负载)vs Predictive Scaling(历史模式)。三者可叠加,别只靠 scheduled 应对不可预测的峰值。
八、完整复现实验 5:RDS Multi-AZ + Snapshot + Restore
数据库高可用是 SAA-C03 的必考项。这个实验把Multi-AZ(故障自动切换)+ Snapshot(手动备份)+ Restore(回滚)三件套跑通。
aws rds create-db-instance \ --db-instance-identifier lab-rds --db-instance-class db.t3.micro \ --engine mysql --engine-version 8.0 --master-username admin \ --allocated-storage 20 --multi-az \ --db-subnet-group-name lab-db-subnet --no-publicly-accessible # 等待就绪 → 打快照 aws rds wait db-instance-available --db-instance-identifier lab-rds aws rds create-db-snapshot --db-instance-identifier lab-rds \ --db-snapshot-identifier lab-rds-snap-$(date +%Y%m%d) # 从快照恢复到新 endpoint(用于回滚演练) aws rds restore-db-instance-from-db-snapshot \ --db-instance-identifier lab-rds-restored \ --db-snapshot-identifier lab-rds-snap-YYYYMMDD清理时用--skip-final-snapshot避免遗留快照计费。
🎯 高频易混题:Multi-AZ 是"高可用 + 故障切换",Read Replica 是"扩展读 + 报表"。千万别答成"Multi-AZ 能提升读性能"——那是 Read Replica 的活。
九、收尾:实验清理与成本控制(关键习惯)
整套实验"不烧钱"的前提是及时清理。仓库给出的两条铁律(见 28-Labs-Praticos/README.md "Dicas para os Labs"):
- 优先用
terraform destroy,它比手动逐个删资源更可靠,会按依赖顺序自动清理; - 给所有资源打 Tag(如
Project=lab、Environment=test),方便在 Cost Explorer 里按服务/标签过滤核对花费。
terraform destroy -auto-approve # 销毁 Terraform 创建的全部资源 aws ec2 terminate-instances --instance-ids $INSTANCE_ID aws rds delete-db-instance --db-instance-identifier lab-rds --skip-final-snapshot📌 销毁顺序也有讲究(28-Labs-Praticos/cheatsheet.md 有完整清单):先删 ECS Service,再删 ALB/RDS/Lambda,最后删 NAT → Subnet → VPC。VPC 永远放最后。
十、配套学习资源:从实验到考试的闭环
跑完实验不是终点。仓库为每个模块都配了复习闭环四件套,配合 lab 食用效果最佳:
- cheatsheet:考前速查,命令/资源/陷阱一页过 —— 28-Labs-Praticos/cheatsheet.md
- flashcards:间隔重复记忆 —— 见各模块
flashcards.md - questoes:考试风格真题,先做再看答案 —— 见各模块
questoes.md - simulados:整套模拟考 + 按域 mini-simulado + 错题本 —— 29-Simulados-e-Questoes/README.md
官方推荐阅读路线见 README.md 的"Trilha para iniciantes":从 01-Introducao-SAA-C03 一路做到 29-Simulados-e-Questoes,lab 穿插在每周对应模块里。
十一、开始动手:把仓库拉到本地
如果还没克隆仓库,先把它拉到本地再按上面步骤走:
git clone https://gitcode.com/gh_mirrors/aw/aws-solutions-architect-brasil cd aws-solutions-architect-brasil然后从 28-Labs-Praticos/README.md 的Lab 1开始,先跑通那个几乎零成本的 Serverless API,再逐步挑战含 NAT Gateway 和 RDS 的高成本实验。记住一句话:plan 先于 apply,destroy 先于睡觉——这样你的 SAA-C03 Hands-on 既练了手,又守住了钱包。
【免费下载链接】aws-solutions-architect-brasil
Repositório com recursos em Português (PT-BR) para estudos da certificação AWS Certified Solutions Architect - Associate (SAA-C03)
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考