mcpField
A
azure-well-architected-framework

azure-well-architected-framework

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

azure-well-architected-framework について

Azure Well-Architected Framework の適用を支援する、アーキテクトやエンジニア向けのリファレンススキルです。5つの柱に沿った設計指針に加え、評価手順や Azure の例をまとめています。

主な機能

  1. 015つのアーキテクチャ柱の指針
  2. 02信頼性と災害復旧の実践例
  3. 03セキュリティとアクセス制御の指針
  4. 04コストとパフォーマンスの最適化案
  5. 05評価と実装のチェックリスト

活用シーン

  1. 01Azure ソリューションのアーキテクチャレビュー
  2. 02復旧と可用性対策の計画
  3. 03セキュリティとコストの改善点探し

インストール

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

$npx skills add https://github.com/josiahsiegel/claude-plugin-marketplace --skill azure-well-architected-framework

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

詳細

Azure Well-Architected Framework

Azure Well-Architected Framework は、高品質なクラウドソリューションを構築するための指針となる原則です。アーキテクチャの卓越性を支える 5 つの柱で構成されています。

概要

目的:アーキテクトやエンジニアが、アプリケーション向けにセキュアで高性能、回復性に優れ、効率的なインフラストラクチャを構築できるよう支援します。

5 つの柱:

  1. 信頼性
  2. セキュリティ
  3. コスト最適化
  4. オペレーショナルエクセレンス
  5. パフォーマンス効率

柱 1:信頼性

定義:システムが障害から復旧し、機能し続ける能力です。

主な原則:

  • 障害を想定して設計する
  • 可用性ゾーンとリージョンを使用する
  • 冗長性を実装する
  • 障害を監視し、対応する
  • ディザスターリカバリーをテストする

ベストプラクティス:

可用性ゾーン:

# Deploy VM across availability zones
az vm create \
  --resource-group MyRG \
  --name MyVM \
  --zone 1 \
  --image Ubuntu2204 \
  --size Standard_D2s_v3

# Availability SLAs:
# - Single VM (Premium SSD): 99.9%
# - Availability Set: 99.95%
# - Availability Zones: 99.99%

バックアップとディザスターリカバリー:

# Enable Azure Backup
az backup protection enable-for-vm \
  --resource-group MyRG \
  --vault-name MyVault \
  --vm MyVM \
  --policy-name DefaultPolicy

# Recovery Point Objective (RPO): How much data loss is acceptable
# Recovery Time Objective (RTO): How long can system be down

ヘルスプローブ:

  • Application Gateway のヘルスプローブ
  • Load Balancer のプローブ
  • Traffic Manager のエンドポイント監視

柱 2:セキュリティ

定義:アプリケーションとデータを脅威から保護することです。

主な原則:

  • 多層防御
  • 最小権限アクセス
  • ネットワークを保護する
  • 保存中および転送中のデータを保護する
  • 監視および監査する

ベストプラクティス:

ID とアクセス:

# Use managed identities (no credentials in code)
az vm identity assign \
  --resource-group MyRG \
  --name MyVM

# RBAC assignment
az role assignment create \
  --assignee <principal-id> \
  --role "Contributor" \
  --scope /subscriptions/<subscription-id>/resourceGroups/MyRG

ネットワークセキュリティ:

  • Network Security Groups(NSG)を使用する
  • Azure Firewall または Application Gateway WAF を実装する
  • PaaS サービスに Private Endpoints を使用する
  • パブリック向けアプリでは DDoS Protection Standard を有効にする

データ保護:

# Enable encryption at rest (automatic for most services)
# Enable TLS 1.2+ for data in transit

# Azure Storage encryption
az storage account update \
  --name mystorageaccount \
  --resource-group MyRG \
  --min-tls-version TLS1_2 \
  --https-only true

セキュリティ監視:

# Enable Microsoft Defender for Cloud
az security pricing create \
  --name VirtualMachines \
  --tier Standard

# Enable Azure Sentinel
az sentinel onboard \
  --resource-group MyRG \
  --workspace-name MyWorkspace

柱 3:コスト最適化

定義:提供する価値を最大化できるようにコストを管理することです。

主な原則:

  • コストを計画し、見積もる
  • 最適化を考慮してプロビジョニングする
  • 監視と分析を活用する
  • クラウド支出の効率を最大化する

ベストプラクティス:

適正なサイズの選択:

# Use Azure Advisor recommendations
az advisor recommendation list \
  --category Cost \
  --output table

# Common optimizations:
# 1. Shutdown dev/test VMs when not in use
# 2. Use Azure Hybrid Benefit for Windows/SQL
# 3. Purchase reservations for consistent workloads
# 4. Use autoscaling to match demand

予約インスタンス:

  • 1 年または 3 年の契約
  • 従量課金制と比べて最大 72% 削減
  • VM、SQL Database、Cosmos DB、Synapse、Storage で利用可能

Azure Hybrid Benefit:

# Apply Windows license to VM
az vm update \
  --resource-group MyRG \
  --name MyVM \
  --license-type Windows_Server

# SQL Server Hybrid Benefit
az sql vm create \
  --resource-group MyRG \
  --name MySQLVM \
  --license-type AHUB

コスト管理:

# Create budget
az consumption budget create \
  --budget-name MyBudget \
  --category cost \
  --amount 1000 \
  --time-grain monthly \
  --start-date 2025-01-01 \
  --end-date 2025-12-31

# Set up alerts at 80%, 100%, 120% of budget

柱 4:オペレーショナルエクセレンス

定義:システムを本番環境で稼働し続けるための運用プロセスです。

主な原則:

  • 運用を自動化する
  • 監視し、分析情報を得る
  • 運用手順を改善する
  • 障害を予測する
  • 最新の更新プログラムを適用する

ベストプラクティス:

Infrastructure as Code:

# Use ARM, Bicep, or Terraform
# Version control all infrastructure
# Implement CI/CD for infrastructure

# Example: Bicep deployment
az deployment group create \
  --resource-group MyRG \
  --template-file main.bicep \
  --parameters @parameters.json

監視とアラート:

# Application Insights for apps
az monitor app-insights component create \
  --app MyApp \
  --location eastus \
  --resource-group MyRG

# Log Analytics for infrastructure
az monitor log-analytics workspace create \
  --resource-group MyRG \
  --workspace-name MyWorkspace

# Create alerts
az monitor metrics alert create \
  --name HighCPU \
  --resource-group MyRG \
  --scopes <vm-id> \
  --condition "avg Percentage CPU > 80" \
  --description "CPU usage is above 80%"

DevOps のプラクティス:

  • 継続的インテグレーション/継続的デプロイ(CI/CD)
  • ブルーグリーンデプロイ
  • カナリアリリース
  • 機能フラグ
  • 自動テスト

柱 5:パフォーマンス効率

定義:負荷の変化にシステムが適応する能力です。

主な原則:

  • 水平方向にスケーリングする
  • 適切なリソースを選択する
  • パフォーマンスを監視する
  • ネットワークとデータアクセスを最適化する

ベストプラクティス:

スケーリング:

# Horizontal scaling (preferred)
# VM Scale Sets
az vmss create \
  --resource-group MyRG \
  --name MyVMSS \
  --image Ubuntu2204 \
  --instance-count 3 \
  --vm-sku Standard_D2s_v3

# Autoscaling
az monitor autoscale create \
  --resource-group MyRG \
  --resource MyVMSS \
  --resource-type Microsoft.Compute/virtualMachineScaleSets \
  --name MyAutoscale \
  --min-count 2 \
  --max-count 10

キャッシュ:

  • Azure Cache for Redis
  • 静的コンテンツ向けの Azure CDN
  • アプリケーションレベルのキャッシュ

データアクセス:

  • データベースでインデックスを使用する
  • キャッシュ戦略を実装する
  • グローバルなコンテンツ配信に CDN を使用する
  • クエリ(SQL、Cosmos DB)を最適化する

ネットワーク:

# Use Azure Front Door for global apps
az afd profile create \
  --profile-name MyFrontDoor \
  --resource-group MyRG \
  --sku Premium_AzureFrontDoor

# Features:
# - Global load balancing
# - CDN capabilities
# - Web Application Firewall
# - SSL offloading
# - Caching

評価とツール

Azure Well-Architected Review:

# Self-assessment tool in Azure Portal
# Generates recommendations per pillar
# Provides actionable guidance

Azure Advisor:

# Get recommendations
az advisor recommendation list --output table

# Categories:
# - Reliability (High Availability)
# - Security
# - Performance
# - Cost
# - Operational Excellence

実装チェックリスト

信頼性:

  • 可用性ゾーンにまたがってデプロイする
  • バックアップ戦略を実装する
  • RTO と RPO を定義する
  • 災害復旧をテストする
  • ヘルスモニタリングを実装する

セキュリティ:

  • Azure AD 認証を有効にする
  • RBAC(最小権限)を実装する
  • 保存中および転送中のデータを暗号化する
  • Microsoft Defender for Cloud を有効にする
  • ネットワークセグメンテーション(NSG、Firewall)を実装する
  • シークレットに Key Vault を使用する

コスト最適化:

  • リソースのサイズを適正化する
  • 予測可能なワークロード向けに予約を購入する
  • 自動スケーリングを有効にする
  • Azure Hybrid Benefit を使用する
  • 予算アラートを実装する
  • Azure Advisor のコストに関する推奨事項を確認する

運用上の優秀性:

  • Infrastructure as Code を実装する
  • CI/CD パイプラインを設定する
  • 包括的なモニタリングを有効にする
  • 運用ランブックを作成する
  • アラートの自動化を実装する
  • リソースの整理にタグを使用する

パフォーマンス効率:

  • 適切なリソース SKU を選択する
  • 自動スケーリングを実装する
  • キャッシュ(Redis、CDN)を使用する
  • データベースクエリを最適化する
  • 負荷分散を実装する
  • パフォーマンス指標を監視する

一般的なパターン

高可用性の Web アプリケーション:

  • Application Gateway(WAF を有効化)
  • App Service(Premium レベル、複数インスタンス)
  • Azure SQL Database(ゾーン冗長)
  • Azure Cache for Redis
  • Application Insights
  • Azure Front Door(グローバル分散)

ミッションクリティカルなアプリケーション:

  • マルチリージョンデプロイ
  • Traffic Manager または Front Door(グローバルルーティング)
  • 各リージョンの可用性ゾーン
  • 地理冗長ストレージ(GRS または RA-GRS)
  • 地理レプリケーションを使用した自動バックアップ
  • 包括的なモニタリングとアラート

コスト最適化された開発/テスト環境:

  • VM の自動シャットダウン
  • B シリーズ(バースト可能)VM
  • 開発/テスト向け料金プラン
  • 共有 App Service プラン
  • Azure DevTest Labs

参考資料

主なポイント

  1. 各柱のバランスを取る:柱の間にはトレードオフがあります(例:コストと信頼性)
  2. 継続的な改善:アーキテクチャは固定されたものではありません。定期的に見直してください
  3. 測定と監視:データに基づいて意思決定してください
  4. 自動化:信頼性を高め、コストを削減するため、反復作業を自動化してください
  5. セキュリティを最優先する:アーキテクチャのあらゆる層にセキュリティを組み込んでください

Well-Architected Framework は、アーキテクチャを評価し、長期にわたって拡張できる設計を実装するための一貫したアプローチを提供します。

コメント