{"id":"cloud-architect","name":"cloud-architect","summary":"クラウドアーキテクチャの設計、移行計画の作成、コスト最適化の提案の作成、AWS、Azure、GCPにおける災害復旧戦略の策定を行います。","body":"# Cloud Architect\n\n## Core Workflow\n\n1. **Discovery** — Assess current state, requirements, constraints, compliance needs\n2. **Design** — Select services, design topology, plan data architecture\n3. **Security** — Implement zero-trust, identity federation, encryption\n4. **Cost Model** — Right-size resources, reserved capacity, auto-scaling\n5. **Migration** — Apply 6Rs framework, define waves, validate connectivity before cutover\n6. **Operate** — Set up monitoring, automation, continuous optimization\n\n### Workflow Validation Checkpoints\n\n**After Design:** Confirm every component has a redundancy strategy and no single points of failure exist in the topology.\n\n**Before Migration cutover:** Validate VPC peering or connectivity is fully established:\n```bash\n# AWS: confirm peering connection is Active before proceeding\naws ec2 describe-vpc-peering-connections \\\n  --filters \"Name=status-code,Values=active\"\n\n# Azure: confirm VNet peering state\naz network vnet peering list \\\n  --resource-group myRG --vnet-name myVNet \\\n  --query \"[].{Name:name,State:peeringState}\"\n```\n\n**After Migration:** Verify application health and routing:\n```bash\n# AWS: check target group health in ALB\naws elbv2 describe-target-health \\\n  --target-group-arn arn:aws:elasticloadbalancing:...\n```\n\n**After DR test:** Confirm RTO/RPO targets were met; document actual recovery times.\n\n## Reference Guide\n\nLoad detailed guidance based on context:\n\n| Topic | Reference | Load When |\n|-------|-----------|-----------|\n| AWS Services | `references/aws.md` | EC2, S3, Lambda, RDS, Well-Architected Framework |\n| Azure Services | `references/azure.md` | VMs, Storage, Functions, SQL, Cloud Adoption Framework |\n| GCP Services | `references/gcp.md` | Compute Engine, Cloud Storage, Cloud Functions, BigQuery |\n| Multi-Cloud | `references/multi-cloud.md` | Abstraction layers, portability, vendor lock-in mitigation |\n| Cost Optimization | `references/cost.md` | Reserved instances, spot, right-sizing, FinOps practices |\n\n## Constraints\n\n### MUST DO\n- Design for high availability (99.9%+)\n- Implement security by design (zero-trust)\n- Use infrastructure as code (Terraform, CloudFormation)\n- Enable cost allocation tags and monitoring\n- Plan disaster recovery with defined RTO/RPO\n- Implement multi-region for critical workloads\n- Use managed services when possible\n- Document architectural decisions\n\n### MUST NOT DO\n- Store credentials in code or public repos\n- Skip encryption (at rest and in transit)\n- Create single points of failure\n- Ignore cost optimization opportunities\n- Deploy without proper monitoring\n- Use overly complex architectures\n- Ignore compliance requirements\n- Skip disaster recovery testing\n\n## Common Patterns with Examples\n\n### Least-Privilege IAM (Zero-Trust)\n\nRather than broad policies, scope permissions to specific resources and actions:\n\n```bash\n# AWS: create a scoped role for an application\naws iam create-role \\\n  --role-name AppRole \\\n  --assume-role-policy-document file://trust-policy.json\n\naws iam put-role-policy \\\n  --role-name AppRole \\\n  --policy-name AppInlinePolicy \\\n  --policy-document '{\n    \"Version\": \"2012-10-17\",\n    \"Statement\": [{\n      \"Effect\": \"Allow\",\n      \"Action\": [\"s3:GetObject\", \"s3:PutObject\"],\n      \"Resource\": \"arn:aws:s3:::my-app-bucket/*\"\n    }]\n  }'\n```\n\n```hcl\n# Terraform equivalent\nresource \"aws_iam_role\" \"app_role\" {\n  name               = \"AppRole\"\n  assume_role_policy = data.aws_iam_policy_document.trust.json\n}\n\nresource \"aws_iam_role_policy\" \"app_policy\" {\n  role = aws_iam_role.app_role.id\n  policy = jsonencode({\n    Version = \"2012-10-17\"\n    Statement = [{\n      Effect   = \"Allow\"\n      Action   = [\"s3:GetObject\", \"s3:PutObject\"]\n      Resource = \"${aws_s3_bucket.app.arn}/*\"\n    }]\n  })\n}\n```\n\n### VPC with Public/Private Subnets (Terraform)\n\n```hcl\nresource \"aws_vpc\" \"main\" {\n  cidr_block           = \"10.0.0.0/16\"\n  enable_dns_hostnames = true\n  tags = { Name = \"main\", CostCenter = var.cost_center }\n}\n\nresource \"aws_subnet\" \"private\" {\n  count             = 2\n  vpc_id            = aws_vpc.main.id\n  cidr_block        = cidrsubnet(\"10.0.0.0/16\", 8, count.index)\n  availability_zone = data.aws_availability_zones.available.names[count.index]\n}\n\nresource \"aws_subnet\" \"public\" {\n  count                   = 2\n  vpc_id                  = aws_vpc.main.id\n  cidr_block              = cidrsubnet(\"10.0.0.0/16\", 8, count.index + 10)\n  availability_zone       = data.aws_availability_zones.available.names[count.index]\n  map_public_ip_on_launch = true\n}\n```\n\n### Auto-Scaling Group (Terraform)\n\n```hcl\nresource \"aws_autoscaling_group\" \"app\" {\n  desired_capacity    = 2\n  min_size            = 1\n  max_size            = 10\n  vpc_zone_identifier = aws_subnet.private[*].id\n\n  launch_template {\n    id      = aws_launch_template.app.id\n    version = \"$Latest\"\n  }\n\n  tag {\n    key                 = \"CostCenter\"\n    value               = var.cost_center\n    propagate_at_launch = true\n  }\n}\n\nresource \"aws_autoscaling_policy\" \"cpu_target\" {\n  autoscaling_group_name = aws_autoscaling_group.app.name\n  policy_type            = \"TargetTrackingScaling\"\n  target_tracking_configuration {\n    predefined_metric_specification {\n      predefined_metric_type = \"ASGAverageCPUUtilization\"\n    }\n    target_value = 60.0\n  }\n}\n```\n\n### Cost Analysis CLI\n\n```bash\n# AWS: identify top cost drivers for the last 30 days\naws ce get-cost-and-usage \\\n  --time-period Start=$(date -d '30 days ago' +%Y-%m-%d),End=$(date +%Y-%m-%d) \\\n  --granularity MONTHLY \\\n  --metrics \"UnblendedCost\" \\\n  --group-by Type=DIMENSION,Key=SERVICE \\\n  --query 'ResultsByTime[0].Groups[*].{Service:Keys[0],Cost:Metrics.UnblendedCost.Amount}' \\\n  --output table\n\n# Azure: review spend by resource group\naz consumption usage list \\\n  --start-date $(date -d '30 days ago' +%Y-%m-%d) \\\n  --end-date $(date +%Y-%m-%d) \\\n  --query \"[].{ResourceGroup:resourceGroup,Cost:pretaxCost,Currency:currency}\" \\\n  --output table\n```\n\n## Output Templates\n\nWhen designing cloud architecture, provide:\n1. Architecture diagram with services and data flow\n2. Service selection rationale (compute, storage, database, networking)\n3. Security architecture (IAM, network segmentation, encryption)\n4. Cost estimation and optimization strategy\n5. Deployment approach and rollback plan\n\n[Documentation](https://jeffallan.github.io/claude-skills/skills/infrastructure/cloud-architect/)","author":"@Jeffallan","ownerProfile":null,"authorContacts":null,"sourceUrl":"https://github.com/Jeffallan/claude-skills/tree/main/skills/cloud-architect","license":"MIT","category":"document","lang":"en","tokens":1606,"stars":0,"calls30d":1,"claimed":false,"visibility":"public","origin":"crawler","version":"0.1.0","createdAt":"2026-08-22","updatedAt":"2026-08-22","files":[{"path":"references/aws.md","size":11309,"sha256":"9287e5abec7fe478a98ecc3a4e3808c91e09daa395c51e3b7cea976f15bf7c92"},{"path":"references/azure.md","size":14468,"sha256":"46bc118a0baf8143a291a2455d53c1fa415b9f71e2fedcc11c5093c0191e1d90"},{"path":"references/cost.md","size":14289,"sha256":"bafaaa1ea6c51648d06e1d34cdb5afdcb26dc136054f0424c0cd8a2071548abf"},{"path":"references/gcp.md","size":17222,"sha256":"963b2cc473222b423e98b8d0bf08394847d759b6a39929c27059ca30c261b8ff"},{"path":"references/multi-cloud.md","size":11331,"sha256":"b60a27e9ec7e6304e1ba85af4fd1dc451527efd48b97b55209cc44f244c6baa2"}],"requires":{"mcp":[],"tools":[]},"safety":{"flags":[],"scannedAt":"2026-08-22","hasScripts":false,"networkEndpoints":["jeffallan.github.io","www.googleapis.com"]}}