SKILL.md
唯讀
名稱
cloud-architect
描述
設計雲端架構、建立遷移計畫、產生成本最佳化建議,並制定跨 AWS、Azure 與 GCP 的災難復原策略。適用於設計雲端架構、規劃遷移或最佳化多雲部署。可調用於 Well-Architected Framework、成本最佳化、災難復原、登陸區、安全架構、無伺服器設計。
雲端架構師
核心工作流程
- 探索 — 評估現狀、需求、限制、合規要求
- 設計 — 選擇服務、設計拓撲、規劃資料架構
- 安全 — 實施零信任、身分聯合、加密
- 成本模型 — 調整資源大小、預留容量、自動擴展
- 遷移 — 應用 6R 框架、定義遷移波次、在切換前驗證連線
- 營運 — 設定監控、自動化、持續最佳化
工作流程驗證檢查點
設計後: 確認每個元件都有備援策略,且拓撲中無單點故障。
遷移切換前: 驗證 VPC 對等或連線已完全建立:
# AWS:確認對等連線狀態為 Active 後再繼續
aws ec2 describe-vpc-peering-connections \
--filters "Name=status-code,Values=active"
# Azure:確認 VNet 對等狀態
az network vnet peering list \
--resource-group myRG --vnet-name myVNet \
--query "[].{Name:name,State:peeringState}"
遷移後: 驗證應用程式健康狀態與路由:
# AWS:檢查 ALB 中的目標群組健康狀態
aws elbv2 describe-target-health \
--target-group-arn arn:aws:elasticloadbalancing:...
災難復原測試後: 確認已達成 RTO/RPO 目標;記錄實際復原時間。
參考指南
根據情境載入詳細指引:
| 主題 | 參考文件 | 載入時機 |
|---|---|---|
| AWS 服務 | references/aws.md |
EC2、S3、Lambda、RDS、Well-Architected Framework |
| Azure 服務 | references/azure.md |
VM、儲存體、Functions、SQL、Cloud Adoption Framework |
| GCP 服務 | references/gcp.md |
Compute Engine、Cloud Storage、Cloud Functions、BigQuery |
| 多雲 | references/multi-cloud.md |
抽象層、可攜性、降低供應商鎖定 |
| 成本最佳化 | references/cost.md |
預留執行個體、Spot、調整大小、FinOps 實務 |
限制
必須執行
- 設計高可用性(99.9% 以上)
- 實施安全設計(零信任)
- 使用基礎設施即程式碼(Terraform、CloudFormation)
- 啟用成本分配標籤與監控
- 規劃災難復原,定義 RTO/RPO
- 對關鍵工作負載實施多區域部署
- 盡可能使用受管服務
- 記錄架構決策
禁止事項
- 在程式碼或公開儲存庫中儲存憑證
- 跳過加密(靜態與傳輸中)
- 建立單點故障
- 忽略成本最佳化機會
- 未妥善監控即部署
- 使用過於複雜的架構
- 忽略合規要求
- 跳過災難復原測試
常見模式與範例
最小權限 IAM(零信任)
使用範圍限定的政策而非寬鬆政策:
# AWS:為應用程式建立範圍限定的角色
aws iam create-role \
--role-name AppRole \
--assume-role-policy-document file://trust-policy.json
aws iam put-role-policy \
--role-name AppRole \
--policy-name AppInlinePolicy \
--policy-document '{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": ["s3:GetObject", "s3:PutObject"],
"Resource": "arn:aws:s3:::my-app-bucket/*"
}]
}'
# Terraform 等效寫法
resource "aws_iam_role" "app_role" {
name = "AppRole"
assume_role_policy = data.aws_iam_policy_document.trust.json
}
resource "aws_iam_role_policy" "app_policy" {
role = aws_iam_role.app_role.id
policy = jsonencode({
Version = "2012-10-17"
Statement = [{
Effect = "Allow"
Action = ["s3:GetObject", "s3:PutObject"]
Resource = "${aws_s3_bucket.app.arn}/*"
}]
})
}
具有公有/私有子網路的 VPC(Terraform)
resource "aws_vpc" "main" {
cidr_block = "10.0.0.0/16"
enable_dns_hostnames = true
tags = { Name = "main", CostCenter = var.cost_center }
}
resource "aws_subnet" "private" {
count = 2
vpc_id = aws_vpc.main.id
cidr_block = cidrsubnet("10.0.0.0/16", 8, count.index)
availability_zone = data.aws_availability_zones.available.names[count.index]
}
resource "aws_subnet" "public" {
count = 2
vpc_id = aws_vpc.main.id
cidr_block = cidrsubnet("10.0.0.0/16", 8, count.index + 10)
availability_zone = data.aws_availability_zones.available.names[count.index]
map_public_ip_on_launch = true
}
自動擴展群組(Terraform)
resource "aws_autoscaling_group" "app" {
desired_capacity = 2
min_size = 1
max_size = 10
vpc_zone_identifier = aws_subnet.private[*].id
launch_template {
id = aws_launch_template.app.id
version = "$Latest"
}
tag {
key = "CostCenter"
value = var.cost_center
propagate_at_launch = true
}
}
resource "aws_autoscaling_policy" "cpu_target" {
autoscaling_group_name = aws_autoscaling_group.app.name
policy_type = "TargetTrackingScaling"
target_tracking_configuration {
predefined_metric_specification {
predefined_metric_type = "ASGAverageCPUUtilization"
}
target_value = 60.0
}
}
成本分析 CLI
# AWS:找出過去 30 天的前幾大成本驅動因素
aws ce get-cost-and-usage \
--time-period Start=$(date -d '30 days ago' +%Y-%m-%d),End=$(date +%Y-%m-%d) \
--granularity MONTHLY \
--metrics "UnblendedCost" \
--group-by Type=DIMENSION,Key=SERVICE \
--query 'ResultsByTime[0].Groups[*].{Service:Keys[0],Cost:Metrics.UnblendedCost.Amount}' \
--output table
# Azure:依資源群組檢視支出
az consumption usage list \
--start-date $(date -d '30 days ago' +%Y-%m-%d) \
--end-date $(date +%Y-%m-%d) \
--query "[].{ResourceGroup:resourceGroup,Cost:pretaxCost,Currency:currency}" \
--output table
輸出範本
設計雲端架構時,請提供:
- 包含服務與資料流的架構圖
- 服務選擇理由(運算、儲存、資料庫、網路)
- 安全架構(IAM、網路分段、加密)
- 成本估算與最佳化策略
- 部署方法與回滾計畫




