mcpField
A
azure-cloud-architect

azure-cloud-architect

github.com/alirezarezvaniクラウド・DevOps28.9k609 回インストール2 日前に更新
リポジトリ

azure-cloud-architect について

Azure Cloud Architectは、Azureシステムを設計するチーム向けのスキルです。要件に基づく構成パターンの提案からコスト・セキュリティ確認まで支援し、主にBicepテンプレートを生成します。

主な機能

  1. 01要件に基づく構成パターン提案
  2. 02Bicepテンプレートのひな形生成
  3. 03Azureリソースのコスト最適化
  4. 04CI/CDとセキュリティのガイダンス

活用シーン

  1. 01新しいAzureアプリの構成選定
  2. 02選定した設計のインフラテンプレート生成
  3. 03リソース一覧からコスト削減案を検討
  4. 04デプロイとセキュリティ確認の準備

インストール

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

$npx skills add https://github.com/alirezarezvani/claude-skills --skill azure-cloud-architect

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

同梱ファイル

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

references/
architecture_patterns.md
best_practices.md
service_selection.md
scripts/
architecture_designer.py
bicep_generator.py
cost_optimizer.py

詳細

Azure クラウドアーキテクト

Bicep のインフラストラクチャ・アズ・コードテンプレートを使用して、スタートアップ企業やエンタープライズ向けの、スケーラブルでコスト効率に優れた Azure アーキテクチャを設計します。


ワークフロー

ステップ 1:要件を収集する

アプリケーションの仕様を収集します。

- Application type (web app, mobile backend, data pipeline, SaaS, microservices)
- Expected users and requests per second
- Budget constraints (monthly spend limit)
- Team size and Azure experience level
- Compliance requirements (GDPR, HIPAA, SOC 2, ISO 27001)
- Availability requirements (SLA, RPO/RTO)
- Region preferences (data residency, latency)
ステップ 2:アーキテクチャを設計する

アーキテクチャ設計ツールを実行して、パターンの推奨事項を取得します。

python scripts/architecture_designer.py \
  --app-type web_app \
  --users 10000 \
  --requirements '{"budget_monthly_usd": 500, "compliance": ["SOC2"]}'

出力例:

{
  "recommended_pattern": "app_service_web",
  "service_stack": ["App Service", "Azure SQL", "Front Door", "Key Vault", "Entra ID"],
  "estimated_monthly_cost_usd": 280,
  "pros": ["Managed platform", "Built-in autoscale", "Deployment slots"],
  "cons": ["Less control than VMs", "Platform constraints", "Cold start on consumption plans"]
}

推奨パターンから選択します。

  • App Service Web:Front Door + App Service + Azure SQL + Redis Cache
  • AKS 上のマイクロサービス:AKS + Service Bus + Cosmos DB + API Management
  • サーバーレスのイベント駆動型:Functions + Event Grid + Service Bus + Cosmos DB
  • データパイプライン:Data Factory + Synapse Analytics + Data Lake Storage + Event Hubs

パターンの詳細な仕様については、references/architecture_patterns.md を参照してください。

検証チェックポイント: ステップ 3 に進む前に、推奨パターンがチームの運用成熟度とコンプライアンス要件に合致していることを確認してください。

ステップ 3:IaC テンプレートを生成する

選択したパターンのインフラストラクチャ・アズ・コードを作成します。

# Web app stack (Bicep)
python scripts/bicep_generator.py --arch-type web-app --output main.bicep

Bicep の出力例(コアとなる Web アプリのリソース):

@description('The environment name')
param environment string = 'dev'

@description('The Azure region for resources')
param location string = resourceGroup().location

@description('The application name')
param appName string = 'myapp'

// App Service Plan
resource appServicePlan 'Microsoft.Web/serverfarms@2023-01-01' = {
  name: '${environment}-${appName}-plan'
  location: location
  sku: {
    name: 'P1v3'
    tier: 'PremiumV3'
    capacity: 1
  }
  properties: {
    reserved: true // Linux
  }
}

// App Service
resource appService 'Microsoft.Web/sites@2023-01-01' = {
  name: '${environment}-${appName}-web'
  location: location
  properties: {
    serverFarmId: appServicePlan.id
    httpsOnly: true
    siteConfig: {
      linuxFxVersion: 'NODE|20-lts'
      minTlsVersion: '1.2'
      ftpsState: 'Disabled'
      alwaysOn: true
    }
  }
  identity: {
    type: 'SystemAssigned'
  }
}

// Azure SQL Database
resource sqlServer 'Microsoft.Sql/servers@2023-05-01-preview' = {
  name: '${environment}-${appName}-sql'
  location: location
  properties: {
    administrators: {
      azureADOnlyAuthentication: true
    }
    minimalTlsVersion: '1.2'
  }
}

resource sqlDatabase 'Microsoft.Sql/servers/databases@2023-05-01-preview' = {
  parent: sqlServer
  name: '${appName}-db'
  location: location
  sku: {
    name: 'GP_S_Gen5_2'
    tier: 'GeneralPurpose'
  }
  properties: {
    autoPauseDelay: 60
    minCapacity: json('0.5')
  }
}

Front Door、Key Vault、Managed Identity、監視を含む完全なテンプレートは、bicep_generator.py によって生成され、references/architecture_patterns.md でも利用できます。

Bicep は Azure に推奨される IaC 言語です。 ARM JSON テンプレートよりも Bicep を優先してください。Bicep は ARM JSON にコンパイルされ、構文がより簡潔で、モジュールをサポートし、Microsoft によるファーストパーティサポートを受けています。

ステップ 4:コストを確認する

推定コストと最適化の機会を分析します。

python scripts/cost_optimizer.py \
  --config current_resources.json \
  --json

出力例:

{
  "current_monthly_usd": 2000,
  "recommendations": [
    { "action": "Right-size SQL Database GP_S_Gen5_8 to GP_S_Gen5_2", "savings_usd": 380, "priority": "high" },
    { "action": "Purchase 1-year Reserved Instances for AKS node pools", "savings_usd": 290, "priority": "high" },
    { "action": "Move Blob Storage to Cool tier for objects >30 days old", "savings_usd": 65, "priority": "medium" }
  ],
  "total_potential_savings_usd": 735
}

出力には次の内容が含まれます。

  • サービス別の月額コスト内訳
  • 適正サイズへの変更に関する推奨事項
  • Reserved Instance と Savings Plan の活用機会
  • 月々の潜在的な節約額
ステップ 5:CI/CD を構成する

Azure DevOps Pipelines または GitHub Actions と Azure を使って設定します。

# GitHub Actions — deploy Bicep to Azure
name: Deploy Infrastructure
on:
  push:
    branches: [main]

permissions:
  id-token: write
  contents: read

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - uses: azure/login@v2
        with:
          client-id: ${{ secrets.AZURE_CLIENT_ID }}
          tenant-id: ${{ secrets.AZURE_TENANT_ID }}
          subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}

      - uses: azure/arm-deploy@v2
        with:
          resourceGroupName: rg-myapp-dev
          template: ./infra/main.bicep
          parameters: environment=dev
# Azure DevOps Pipeline
trigger:
  branches:
    include:
      - main

pool:
  vmImage: 'ubuntu-latest'

steps:
  - task: AzureCLI@2
    inputs:
      azureSubscription: 'MyServiceConnection'
      scriptType: 'bash'
      scriptLocation: 'inlineScript'
      inlineScript: |
        az deployment group create \
          --resource-group rg-myapp-dev \
          --template-file infra/main.bicep \
          --parameters environment=dev
ステップ 6:セキュリティを確認する

本番環境に移行する前に、セキュリティ体制を検証します。

  • ID:RBAC を使用する Entra ID(Azure AD)、サービス間認証には Managed Identity を使用します。認証情報をコードに保存しないでください。
  • シークレット:すべてのシークレット、証明書、接続文字列に Key Vault を使用します。
  • ネットワーク:すべてのサブネットに NSG を設定し、PaaS サービスには Private Endpoint を使用し、WAF を備えた Application Gateway を配置します。
  • 暗号化:転送中のデータには TLS 1.2 以降を使用し、保存データには Azure 管理キーまたはカスタマー管理キーを使用します。
  • 監視:Microsoft Defender for Cloud を有効にし、ガードレールとして Azure Policy を使用します。
  • コンプライアンス:SOC 2/HIPAA/ISO 27001 の取り組みに対して Azure Policy の割り当てを行います。

デプロイに失敗した場合:

  1. デプロイの状態を確認します。
    az deployment group show \
      --resource-group rg-myapp-dev \
      --name main \
      --query 'properties.error'
    
  2. RBAC またはポリシーのエラーがないか、Activity Log を確認します。
  3. デプロイ前に Bicep テンプレートを検証します。
    az bicep build --file main.bicep
    az deployment group validate \
      --resource-group rg-myapp-dev \
      --template-file main.bicep
    

よくある失敗原因:

  • RBAC 権限エラー — デプロイするプリンシパルにリソースグループの Contributor ロールが付与されていることを確認します。
  • リソースプロバイダーが登録されていない — az provider register --namespace Microsoft.Web を実行します。
  • 名前の競合 — Azure リソース名はグローバルに一意である必要がある場合が多くあります(ストレージアカウント、Web アプリなど)。
  • クォータ超過 — Azure Portal > Subscriptions > Usage + quotas からクォータの引き上げを申請します。

ツール

architecture_designer.py

要件に基づいて、アーキテクチャパターンの推奨事項を生成します。

python scripts/architecture_designer.py \
  --app-type web_app \
  --users 50000 \
  --requirements '{"budget_monthly_usd": 1000, "compliance": ["HIPAA"]}' \
  --json

入力: アプリケーションの種類、想定ユーザー数、JSON 形式の要件
出力: 推奨パターン、サービススタック、コスト見積もり、長所と短所

cost_optimizer.py

Azure リソースの構成を分析し、コスト削減の方法を提案します。

python scripts/cost_optimizer.py --config resources.json --json

入力: 現在の Azure リソースインベントリを含む JSON ファイル
出力: 次の項目に関する推奨事項

  • アイドル状態のリソースの削除
  • VM とデータベースの適正サイズへの変更
  • Reserved Instance の購入
  • ストレージ層の移行
  • 未使用のパブリック IP とロードバランサー
bicep_generator.py

アーキテクチャの種類に基づいて、Bicep テンプレートのひな形を生成します。

python scripts/bicep_generator.py --arch-type microservices --output main.bicep

出力: 本番環境ですぐに使える Bicep テンプレート。以下を含みます。

  • マネージド ID(パスワード不要)
  • Key Vault との統合
  • Azure Monitor 用の診断設定
  • ネットワーク セキュリティ グループ
  • コスト配分用のタグ

クイックスタート

Web アプリのアーキテクチャ(100 ドル/月未満)
Ask: "Design an Azure web app for a startup with 5000 users"

Result:
- App Service (B1 Linux) for the application
- Azure SQL Serverless for relational data
- Azure Blob Storage for static assets
- Front Door (free tier) for CDN and routing
- Key Vault for secrets
- Estimated: $40-80/month
AKS 上のマイクロサービス(500~2000 ドル/月)
Ask: "Design a microservices architecture on Azure for a SaaS platform with 50k users"

Result:
- AKS cluster with 3 node pools (system, app, jobs)
- API Management for gateway and rate limiting
- Cosmos DB for multi-model data
- Service Bus for async messaging
- Azure Monitor + Application Insights for observability
- Multi-zone deployment
サーバーレスのイベント駆動型アーキテクチャ(200 ドル/月未満)
Ask: "Design an event-driven backend for processing orders"

Result:
- Azure Functions (Consumption plan) for compute
- Event Grid for event routing
- Service Bus for reliable messaging
- Cosmos DB for order data
- Application Insights for monitoring
- Estimated: $30-150/month depending on volume
データパイプライン(300~1500 ドル/月)
Ask: "Design a data pipeline for ingesting 10M events/day"

Result:
- Event Hubs for ingestion
- Stream Analytics or Functions for processing
- Data Lake Storage Gen2 for raw data
- Synapse Analytics for warehouse
- Power BI for dashboards

入力要件

アーキテクチャの設計に必要な情報を指定してください。

要件説明例
アプリケーションの種類構築するものSaaS プラットフォーム、モバイルバックエンド
想定規模ユーザー数、リクエスト数/秒ユーザー数 10k、100 RPS
予算Azure の月額上限最大 500 ドル/月
チームの状況規模、Azure の経験開発者 3 名、中級
コンプライアンス規制上の要件HIPAA、GDPR、SOC 2
可用性稼働時間の要件99.9% SLA、1 時間 RPO

JSON 形式:

{
  "application_type": "saas_platform",
  "expected_users": 10000,
  "requests_per_second": 100,
  "budget_monthly_usd": 500,
  "team_size": 3,
  "azure_experience": "intermediate",
  "compliance": ["SOC2"],
  "availability_sla": "99.9%"
}

アンチパターン

アンチパターンうまくいかない理由代わりに行うこと
新規プロジェクトで ARM JSON テンプレートを使う冗長で読みづらく、モジュールがありませんBicep を使います。ARM にコンパイルでき、構文もすっきりしています
App Settings にシークレットを保存するポータル上でシークレットが見え、ローテーションもできませんApp Settings で Key Vault の参照を使います
AKS のノードプールを大規模な 1 つだけにするワークロードごとに最適化できませんsystem、app、jobs の複数のノードプールを使います
PaaS サービスにパブリックエンドポイントを設定する攻撃対象領域が露出しますPrivate Endpoints と VNet 統合を使います
「念のため」過剰にプロビジョニングする初月から予算を無駄にします小規模から始め、自動スケーリングを使い、毎月適正なサイズに調整します
すべてに共有リソースグループを使う影響範囲が広くなり、RBAC の管理が困難になります環境とワークロードごとにリソースグループを 1 つ作成します
タグ付け戦略がないコストや所有者を追跡できませんenvironment、owner、cost-center、app-name のタグを付けます
クラシックリソースを使う非推奨で、機能も限られていますARM/Bicep リソースのみを使います

出力形式

アーキテクチャ設計
  • 根拠を示したパターンの推奨
  • サービススタック図(ASCII)
  • 月額コストの見積もりとトレードオフ
IaC テンプレート
  • Bicep:推奨。ファーストパーティで、モジュールをサポートし、構文がすっきりしています
  • ARM JSON:必要に応じて Bicep から生成
  • Terraform HCL:azurerm プロバイダーを使用したマルチクラウド互換
コスト分析
  • 現在の支出の内訳と最適化の推奨事項
  • 優先度(高/中/低)付きのアクションリストと実装チェックリスト

関連項目

スキル関連性
engineering-team/aws-solution-architectAWS 相当のスキル。同じ 6 ステップのワークフローで、サービスが異なります
engineering-team/gcp-cloud-architectGCP 相当のスキル。主要な 3 つのクラウドを網羅します
engineering-team/senior-devopsより広範な DevOps の範囲。パイプライン、監視、コンテナ化を扱います
engineering/terraform-patternsIaC の実装。Azure を対象とする Terraform モジュールに使用します
engineering/ci-cd-pipeline-builderパイプラインの構築。Azure DevOps と GitHub Actions を自動化します

参考ドキュメント

ドキュメント内容
references/architecture_patterns.md5 つのパターン:Web アプリ、マイクロサービス/AKS、サーバーレス、データパイプライン、マルチリージョン
references/service_selection.mdコンピューティング、データベース、ストレージ、メッセージング、ネットワークの選定マトリクス
references/best_practices.md命名規則、タグ付け、RBAC、ネットワークセキュリティ、監視、DR

コメント