mcpField
C
cloud-architect

cloud-architect

github.com/farmageクラウド・DevOps218282 回インストール5 週間前に更新
リポジトリ

cloud-architect について

クラウドワークロードの計画と運用を支援するアーキテクチャスキルです。AWS、Azure、GCP、マルチクラウドを対象に、要件整理から設計、移行、運用確認まで扱います。

主な機能

  1. 01アーキテクチャ要件の整理と設計
  2. 02セキュリティとゼロトラストの指針
  3. 03コストモデルと最適化
  4. 046Rsに基づく移行計画
  5. 05稼働状況と災害復旧の検証

活用シーン

  1. 01高可用性クラウド構成の設計
  2. 02ワークロード移行と切り替えの計画
  3. 03クラウド費用とリソース配分の確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/farmage/opencode-skills --skill cloud-architect

インストール後、Claude Code で/cloud-architectを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
aws.md
azure.md
cost.md
gcp.md
multi-cloud.md

詳細

クラウドアーキテクト

コアワークフロー

  1. 検出 — 現状、要件、制約、コンプライアンスのニーズを評価します
  2. 設計 — サービスを選定し、トポロジーを設計して、データアーキテクチャを計画します
  3. セキュリティ — ゼロトラスト、ID フェデレーション、暗号化を実装します
  4. コストモデル — リソースを適正化し、予約容量と自動スケーリングを活用します
  5. 移行 — 6Rs フレームワークを適用し、移行ウェーブを定義して、切り替え前に接続性を検証します
  6. 運用 — 監視と自動化を設定し、継続的に最適化します
ワークフローの検証チェックポイント

設計後: すべてのコンポーネントに冗長化戦略があり、トポロジーに単一障害点が存在しないことを確認します。

移行の切り替え前: VPC ピアリングまたは接続が完全に確立されていることを検証します。

# AWS: confirm peering connection is Active before proceeding
aws ec2 describe-vpc-peering-connections \
  --filters "Name=status-code,Values=active"

# Azure: confirm VNet peering state
az network vnet peering list \
  --resource-group myRG --vnet-name myVNet \
  --query "[].{Name:name,State:peeringState}"

移行後: アプリケーションの健全性とルーティングを確認します。

# AWS: check target group health in ALB
aws elbv2 describe-target-health \
  --target-group-arn arn:aws:elasticloadbalancing:...

DR テスト後: RTO/RPO の目標が達成されたことを確認し、実際の復旧時間を記録します。

リファレンスガイド

コンテキストに応じて詳細なガイダンスを読み込みます。

トピックリファレンス読み込むタイミング
AWS サービスreferences/aws.mdEC2、S3、Lambda、RDS、Well-Architected Framework
Azure サービスreferences/azure.mdVMs、Storage、Functions、SQL、Cloud Adoption Framework
GCP サービスreferences/gcp.mdCompute Engine、Cloud Storage、Cloud Functions、BigQuery
マルチクラウドreferences/multi-cloud.md抽象化レイヤー、ポータビリティ、ベンダーロックインの緩和
コスト最適化references/cost.mdリザーブドインスタンス、スポット、適正化、FinOps の実践

制約事項

必ず実施すること
  • 高可用性(99.9% 以上)を実現する設計にします
  • セキュリティ・バイ・デザイン(ゼロトラスト)を実装します
  • Infrastructure as Code(Terraform、CloudFormation)を使用します
  • コスト配分タグと監視を有効にします
  • RTO/RPO を定義して災害復旧を計画します
  • 重要なワークロードにはマルチリージョンを実装します
  • 可能な限りマネージドサービスを使用します
  • アーキテクチャ上の決定を文書化します
決して実施しないこと
  • 認証情報をコードや公開リポジトリに保存します
  • 暗号化(保存時および転送時)を省略します
  • 単一障害点を作成します
  • コスト最適化の機会を無視します
  • 適切な監視を設定せずにデプロイします
  • 過度に複雑なアーキテクチャを使用します
  • コンプライアンス要件を無視します
  • 災害復旧テストを省略します

一般的なパターンと例

最小権限の IAM(ゼロトラスト)

広範なポリシーではなく、特定のリソースとアクションに権限を限定します。

# AWS: create a scoped role for an application
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 equivalent
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
}
Auto-Scaling Group(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: identify top cost drivers for the last 30 days
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: review spend by resource group
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

出力テンプレート

クラウドアーキテクチャを設計する際は、次の内容を提示します。

  1. サービスとデータフローを示したアーキテクチャ図
  2. サービス選定の根拠(コンピューティング、ストレージ、データベース、ネットワーク)
  3. セキュリティアーキテクチャ(IAM、ネットワーク分割、暗号化)
  4. コスト見積もりと最適化戦略
  5. デプロイ方法とロールバック計画

ドキュメント

コメント