☰
aws-solutions-architect-brasil:<$5低成本Hands-on实验——AWS CLI + Terraform完整复现
2026/10/15 18:51:39 网站建设 项目流程

【免费下载链接】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)

项目地址:https://gitcode.com/gh_mirrors/aw/aws-solutions-architect-brasil
点击查看免费下载

正在备考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 1API Gateway → Lambda → DynamoDBServerless CRUD API免费额度内
Lab 2VPC + 公/私子网 + NAT Gateway网络隔离、私网出口~$0.15/h
Lab 3S3 版本控制 + 生命周期 + 跨区复制存储治理与容灾免费额度内
Lab 4Launch Template + ASG + Target Tracking自动弹性伸缩~$0.02
Lab 5RDS 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.zip

Terraform 等价写法只需声明三组资源: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.json

lifecycle.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)

项目地址:https://gitcode.com/gh_mirrors/aw/aws-solutions-architect-brasil
点击查看免费下载

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询