mcpField
C
cloud-devops-expert

cloud-devops-expert

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

cloud-devops-expert について

cloud-devops-expertは、クラウド基盤とDevOpsに携わる開発者向けのガイダンススキルです。AWS、GCP、Azure、Terraform、Kubernetes、CI/CD、可観測性、コスト管理を扱います。

主な機能

  1. 01AWS、GCP、Azureのパターン
  2. 02Terraformによるインフラ構成の指針
  3. 03Kubernetesのデプロイと運用
  4. 04CI/CDとIaCの実践
  5. 05監視、可観測性、コストの助言

活用シーン

  1. 01Terraformのインフラ変更をレビュー
  2. 02Kubernetesのデプロイとリソース方針を計画
  3. 03クラウド監視とコスト配分を改善
  4. 04CI/CDと本番ロールバックを設計

インストール

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

$npx skills add https://github.com/oimiragieo/agent-studio --skill cloud-devops-expert

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

同梱ファイル

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

commands/
cloud-devops-expert.md
hooks/
post-execute.cjs
pre-execute.cjs
references/
research-requirements.md
rules/
cloud-devops-expert.md
schemas/
input.schema.json
output.schema.json
scripts/
main.cjs
templates/
implementation-template.md

詳細

クラウド DevOps エキスパート

AWS、GCP、Azure、Terraform を含むクラウドと DevOps に関する深い知識を持つクラウド DevOps のエキスパートです。 確立されたガイドラインとベストプラクティスを適用して、開発者がより良いコードを書けるよう支援します。 - ベストプラクティスへの準拠状況についてコードをレビューします - ドメインのパターンに基づいて改善案を提案します - 特定のアプローチが推奨される理由を説明します - 標準を満たすようにコードをリファクタリングするのを支援します - アーキテクチャに関するガイダンスを提供します ### AWS クラウドのパターン

主要サービス:

  • コンピューティング:EC2、Lambda(サーバーレス)、ECS/EKS(コンテナ)、Fargate
  • ストレージ:S3(オブジェクト)、EBS(ブロック)、EFS(ファイルシステム)
  • データベース:RDS(リレーショナル)、DynamoDB(NoSQL)、Aurora(MySQL/PostgreSQL)
  • ネットワーキング:VPC、ALB/NLB、CloudFront(CDN)、Route 53(DNS)
  • モニタリング:CloudWatch(メトリクス、ログ、アラーム)

ベストプラクティス:

  • 複数アカウントの管理には AWS Organizations を使用します
  • IAM ロールとポリシーで最小権限を実装します
  • 監査ログの記録には CloudTrail を有効にします
  • コンプライアンスとリソースの追跡には AWS Config を使用します
  • コスト配分と管理のため、すべてのリソースにタグを付けます
GCP(Google Cloud Platform)のパターン

主要サービス:

  • コンピューティング:Compute Engine(VM)、Cloud Functions(サーバーレス)、GKE(Kubernetes)
  • ストレージ:Cloud Storage(オブジェクト)、Persistent Disk(ブロック)
  • データベース:Cloud SQL、Cloud Spanner、Firestore
  • ネットワーキング:VPC、Cloud Load Balancing、Cloud CDN
  • モニタリング:Cloud Monitoring、Cloud Logging

ベストプラクティス:

  • ID 管理の一元化には Google Cloud Identity を使用します
  • セキュリティ境界には VPC Service Controls を実装します
  • コンプライアンスのため、Cloud Audit Logs を有効にします
  • リソースの整理と課金にはラベルを使用します
Azure のパターン

主要サービス:

  • コンピューティング:Virtual Machines、Azure Functions、AKS(Kubernetes)、Container Instances
  • ストレージ:Blob Storage、Azure Files、Managed Disks
  • データベース:Azure SQL、Cosmos DB(NoSQL)、PostgreSQL/MySQL
  • ネットワーキング:Virtual Network、Application Gateway、Front Door(CDN)
  • モニタリング:Azure Monitor、Log Analytics

ベストプラクティス:

  • ID とアクセスの管理には Azure AD を使用します
  • ガバナンスには Azure Policy を実装します
  • 脅威からの保護には Azure Security Center を有効にします
  • 論理的な整理にはリソースグループを使用します
Terraform のベストプラクティス

プロジェクト構成:

terraform/
├── environments/
│   ├── dev/
│   │   ├── main.tf
│   │   ├── variables.tf
│   │   └── terraform.tfvars
│   ├── staging/
│   └── prod/
├── modules/
│   ├── vpc/
│   ├── eks/
│   └── rds/
└── global/
    └── backend.tf

コードの整理:

  • 再利用可能なインフラストラクチャコンポーネントにはモジュールを使用します
  • ワークスペースまたはディレクトリで環境を分離します
  • 状態をリモートに保存します(AWS では S3 + DynamoDB、GCP では GCS、Azure では Azure Blob)
  • 環境固有の値には変数を使用します
  • シークレットは絶対にコミットしないでください(AWS Secrets Manager、HashiCorp Vault などを使用します)

Terraform のワークフロー:

# Initialize
terraform init

# Plan (review changes)
terraform plan -out=tfplan

# Apply (execute changes)
terraform apply tfplan

# Destroy (when needed)
terraform destroy

ベストプラクティス:

  • 一貫したフォーマットには terraform fmt を使用します
  • 構文の確認には terraform validate を使用します
  • 同時変更を防ぐために状態ロックを実装します
  • 既存のリソースには terraform import を使用します
  • プロバイダーのバージョンを固定します:required_version = "~> 1.5"
  • 既存のリソースを参照するには data ソースを使用します
  • リソース間の依存関係を明示するには depends_on を実装します
Kubernetes デプロイメントのパターン

デプロイ戦略:

  • ローリングアップデート:Pod を段階的に入れ替えます(デフォルト)
  • ブルー/グリーン:同一の環境を 2 つ稼働させ、トラフィックを切り替えます
  • カナリア:新しいバージョンへのトラフィックを段階的に移行します
  • 再作成:新しい Pod を作成する前に古い Pod を終了します(ダウンタイムあり)

リソース管理:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: myapp
spec:
  replicas: 3
  selector:
    matchLabels:
      app: myapp
  template:
    metadata:
      labels:
        app: myapp
    spec:
      containers:
        - name: myapp
          image: myapp:v1.0.0
          resources:
            requests:
              memory: '256Mi'
              cpu: '250m'
            limits:
              memory: '512Mi'
              cpu: '500m'
          livenessProbe:
            httpGet:
              path: /health
              port: 8080
          readinessProbe:
            httpGet:
              path: /ready
              port: 8080

ベストプラクティス:

  • 環境やチームを分離するには名前空間を使用します
  • アクセス制御には RBAC を実装します
  • リソースのリクエストと制限を定義します
  • liveness probe と readiness probe を使用します
  • 設定には ConfigMaps と Secrets を使用します
  • Pod Security Policies(PSP)または Pod Security Standards(PSS)を実装します
  • 自動スケーリングには Horizontal Pod Autoscaler(HPA)を使用します
### CI/CD パイプラインのパターン

GitHub Actions の例:

name: CI/CD Pipeline

on:
  push:
    branches: [main, develop]
  pull_request:
    branches: [main]

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Run tests
        run: npm test

  build:
    needs: test
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Build Docker image
        run: docker build -t myapp:${{ github.sha }} .
      - name: Push to registry
        run: docker push myapp:${{ github.sha }}

  deploy:
    needs: build
    runs-on: ubuntu-latest
    if: github.ref == 'refs/heads/main'
    steps:
      - name: Deploy to Kubernetes
        run: kubectl set image deployment/myapp myapp=myapp:${{ github.sha }}

ベストプラクティス:

  • 自動テスト(単体テスト、統合テスト、E2E テスト)を実装します
  • マルチプラットフォームテストにはマトリックスビルドを使用します
  • ビルドを高速化するため、依存関係をキャッシュします
  • 機密データにはシークレット管理を使用します
  • 本番環境へのデプロイには、デプロイゲートと承認を導入します
  • リリースにはセマンティックバージョニングを使用します
  • ロールバック戦略を実装します
Infrastructure as Code(IaC)の原則

バージョン管理:

  • すべてのインフラストラクチャコードを Git に保存します
  • コードレビューにはプルリクエストを使用します
  • ブランチ保護ルールを導入します
  • 本番環境へのデプロイ用にリリースへタグを付けます

テスト:

  • 変更内容を事前に確認するには terraform plan を使用します
  • Sentinel、OPA、または Checkov でポリシー・アズ・コードを実装します
  • Terraform のリンティングには tflint を使用します
  • モジュールを個別にテストします

ドキュメント:

  • モジュールの入力と出力を記述します
  • 各モジュールの README ファイルを管理します
  • terraform-docs を使用してドキュメントを自動生成します
モニタリングとオブザーバビリティ

3 つの柱:

メトリクス(Prometheus + Grafana)

  • メトリクスの収集には Prometheus を使用します
  • SLI(サービスレベル指標)を定義します
  • アラートルールを設定します
  • 可視化のために Grafana ダッシュボードを作成します

ログ(ELK Stack、CloudWatch、Cloud Logging)

  • すべてのサービスのログを一元化します
  • 構造化ロギング(JSON 形式)を実装します
  • ログの集約と解析を行います
  • ログベースのアラートを設定します

トレース(Jaeger、Zipkin、X-Ray)

  • 分散トレーシングを実装します
  • マイクロサービス間のリクエストフローを追跡します
  • パフォーマンスのボトルネックを特定します
  • トレースをログやメトリクスと関連付けます

オブザーバビリティのベストプラクティス:

  • SLO(サービスレベル目標)と SLA を定義します
  • ヘルスチェックエンドポイントを実装します
  • APM(アプリケーションパフォーマンスモニタリング)ツールを使用します
  • オンコールのローテーションとランブックを設定します
  • インシデント対応手順を訓練します
コンテナオーケストレーション(Kubernetes)

Helm チャート:

  • パッケージ管理には Helm を使用します
  • 再利用可能なチャートテンプレートを作成します
  • 環境ごとの設定には values ファイルを使用します
  • チャートをバージョン管理し、チャートリポジトリに公開します

Kubernetes オペレーター:

  • 運用タスクを自動化します
  • 複雑なステートフルアプリケーションを管理します
  • 例:Prometheus Operator、Postgres Operator

サービスメッシュ(Istio、Linkerd):

  • トラフィック管理(カナリア、ブルー/グリーン)を実装します
  • サービス間通信に相互 TLS を有効にします
  • サーキットブレーカーとリトライを実装します
  • 分散トレーシングでトラフィックを可視化します
コストの最適化

AWS のコスト最適化:

  • 予測可能なワークロードにはリザーブドインスタンスまたは Savings Plans を使用します
  • 需要に合わせるため、オートスケーリングを実装します
  • S3 ライフサイクルポリシーを使用して、より安価なストレージクラスに移行します
  • Cost Explorer を有効にして、予算を設定します
  • 使用状況のメトリクスに基づいてインスタンスのサイズを適正化します

マルチクラウドのコスト管理:

  • コスト配分にはタグ/ラベルを使用します
  • チームの説明責任を明確にするため、チャージバックモデルを実装します
  • 重要度の低いワークロードにはスポットインスタンス/プリエンプティブルインスタンスを使用します
  • 未使用のリソース(アイドル状態の VM、未接続のボリューム)を監視します
Cloudflare Developer Platform

Cloudflare Workers と Pages:

  • サーバーレス関数向けのエッジコンピューティングプラットフォームです
  • エッジ(世界中のユーザーの近く)にデプロイします
  • エッジのキー・バリュー型ストレージには Workers KV を使用します
  • ステートフルアプリケーションには Durable Objects を使用します

Cloudflare のプリミティブ:

  • R2:S3 互換のオブジェクトストレージ(エグレス料金なし)
  • D1:SQLite ベースのサーバーレスデータベース
  • KV:キー・バリュー型ストレージ(グローバルに分散)
  • AI:エッジで AI 推論を実行します
  • Queues:メッセージキューイングサービス
  • Vectorize:埋め込み用のベクトルデータベース

設定(wrangler.toml):

name = "my-worker"
main = "src/index.ts"
compatibility_date = "2024-01-01"

[[kv_namespaces]]
binding = "MY_KV"
id = "xxx"

[[r2_buckets]]
binding = "MY_BUCKET"
bucket_name = "my-bucket"

[[d1_databases]]
binding = "DB"
database_name = "my-db"
database_id = "xxx"
使用例: ``` User: "Review this code for cloud-devops best practices" Agent: [Analyzes code against consolidated guidelines and provides specific feedback] ```

統合されたスキル

このエキスパートスキルには、1 つの個別スキルが統合されています:

  • cloudflare-developer-tools-rule

関連スキル

  • docker-compose - コンテナオーケストレーションと複数コンテナアプリケーションの管理

メモリープロトコル(必須)

開始前:

cat .claude/context/memory/learnings.md

完了後: 新たに見つかったパターンや例外を記録してください。

中断を想定してください:コンテキストがリセットされる可能性があります。メモリーに記録されていなければ、起きていないのと同じです。

コメント