mcpField
C
cloud-solution-architect

cloud-solution-architect

github.com/microsoftクラウド・DevOps3.2k120 回インストール今日更新
リポジトリ

cloud-solution-architect について

Azure のアーキテクチャベストプラクティスに沿って本番環境向けシステムを設計する、クラウドアーキテクト向けスキルです。アーキテクチャの選定指針、設計パターン、技術選択の枠組み、レビュー手順をまとめています。

主な機能

  1. 01Azure の設計原則 10 項目
  2. 026 種類のアーキテクチャ選定指針
  3. 03WAF の柱に対応する 44 パターン
  4. 04技術選択のフレームワーク
  5. 05アーキテクチャレビュー手順

活用シーン

  1. 01新しい Azure システムのアーキテクチャ選定
  2. 02信頼性とセキュリティの観点からの設計レビュー
  3. 03Azure のコンピューティング、ストレージ、データ、メッセージングの比較

インストール

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

$npx skills add https://github.com/microsoft/skills --skill cloud-solution-architect

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

同梱ファイル

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

references/
architecture-styles.md
best-practices.md
design-patterns.md
design-principles.md
mission-critical.md
performance-antipatterns.md
technology-choices.md

詳細

クラウドソリューションアーキテクト

概要

Azure Architecture Center のベストプラクティスに従って、適切に設計された本番環境向けのクラウドシステムを設計します。このスキルでは、以下を提供します。

  • Azure アプリケーション向けの 10 の設計原則
  • 選定ガイダンスを含む 6 つのアーキテクチャスタイル
  • WAF の柱に対応付けられた 44 のクラウド設計パターン
  • コンピューティング、ストレージ、データ、メッセージングの テクノロジー選定フレームワーク
  • 避けるべき パフォーマンスのアンチパターン
  • 体系的な設計検証のための アーキテクチャレビューワークフロー

Azure アプリケーションの 10 の設計原則

#原則主な戦術
1自己修復を前提に設計するバックオフを伴う再試行、サーキットブレーカー、バルクヘッド分離、ヘルスエンドポイントの監視、グレースフルデグラデーション
2あらゆるものに冗長性を持たせる単一障害点の排除、可用性ゾーンの利用、マルチリージョンへのデプロイ、データのレプリケーション
3連携を最小限にするサービスの疎結合化、非同期メッセージングの利用、結果整合性の採用、ドメインイベントの利用
4スケールアウトを前提に設計する水平スケーリング、自動スケーリングルール、ステートレスサービス、セッションの固定化の回避、ワークロードの分割
5制限を基準にパーティション分割するデータのパーティション分割(シャード/ハッシュ/範囲)、コンピューティングとネットワークの制限の遵守、静的コンテンツへの CDN の利用
6運用を前提に設計する構造化ログ、分散トレース、メトリクスとダッシュボード、ランブックの自動化、Infrastructure as Code
7マネージドサービスを利用するIaaS より PaaS を優先し、運用負荷を軽減し、組み込みの HA/DR/スケーリングを活用する
8ID サービスを利用するMicrosoft Entra ID、マネージド ID、RBAC、認証情報の保存回避、ゼロトラストの原則
9進化に対応できるよう設計する疎結合、バージョン管理された API、後方互換性、統合のための非同期メッセージング、機能フラグ
10ビジネスニーズに合わせて構築するSLA/SLO の定義、RTO/RPO 目標の設定、ドメイン駆動設計、コストモデリング、複合 SLA

アーキテクチャスタイル

スタイル説明使用する場面主なサービス
N 層水平方向のレイヤー(プレゼンテーション、ビジネス、データ)従来型のエンタープライズアプリ、リフトアンドシフトApp Service、SQL Database、VNets
Web-Queue-WorkerWeb フロントエンド → メッセージキュー → バックエンドワーカー長時間実行タスクを含む中程度の複雑さのアプリApp Service、Service Bus、Functions
マイクロサービス小規模で自律的なサービス、境界づけられたコンテキスト、独立したデプロイ複雑なドメイン、独立したチームのスケーリングAKS、Container Apps、API Management
イベント駆動型パブリッシュ/サブスクライブモデル、イベントの生成元/コンシューマーリアルタイム処理、IoT、リアクティブシステムEvent Hubs、Event Grid、Functions
ビッグデータバッチおよびストリーム処理のパイプライン分析、ML パイプライン、大規模データSynapse、Data Factory、Databricks
ビッグコンピューティングHPC、並列処理シミュレーション、モデリング、レンダリング、ゲノミクスBatch、CycleCloud、HPC VM
選定基準
  • ドメインの複雑さ → マイクロサービス(高)、N 層(低~中)
  • チームの自律性 → マイクロサービス(独立したチーム)、N 層(単一チーム)
  • データ量 → ビッグデータ(TB 以上)、その他(GB)
  • レイテンシ要件 → イベント駆動型(リアルタイム)、Web-Queue-Worker(許容可能)

クラウド設計パターン

主な関心事ごとに整理した 44 のパターンです。WAF の柱との対応:R=信頼性、S=セキュリティ、CO=コスト最適化、OE=運用上の優秀性、PE=パフォーマンス効率。

メッセージングと通信
パターン概要柱
非同期リクエスト/応答ポーリングまたはコールバックを使用してリクエストと応答を分離しますR, PE
クレームチェック大きなメッセージを分割し、ペイロードを別途保存して参照を渡しますR, PE
コレオグラフィ中央のオーケストレーターを介さず、サービスがイベントで連携しますR, OE
競合コンシューマー複数のコンシューマーが共有キューからメッセージを並行して処理しますR, PE
メッセージングブリッジ互換性のないメッセージングシステムを接続しますR, OE
パイプとフィルター複雑な処理を再利用可能なフィルターステージに分解しますR, OE
優先度キュー優先度の高い作業が先に処理されるよう、リクエストに優先順位を付けますR, PE
パブリッシャー/サブスクライバートピックやサブスクリプションを介して送信側と受信側を分離しますR, PE
キューベースの負荷平準化キューでリクエストをバッファリングし、断続的な負荷を平準化しますR, PE
順序付きコンボイ関連するメッセージを順番に処理しながら、グループ間の並列処理を可能にしますR, PE
信頼性とレジリエンス
パターン概要柱
バルクヘッドワークロードごとにリソースを分離し、連鎖的な障害を防ぎますR
サーキットブレーカー障害が発生しているサービスへの呼び出しを停止し、リソースを保護するために即座に失敗させますR
補償トランザクション後続のステップが失敗した場合、以前にコミットしたステップを取り消しますR
ヘルスエンドポイント監視ロードバランサーやオーケストレーター向けにヘルスチェックを公開しますR, OE
リーダー選出リーダーを選出して分散インスタンスを調整しますR
再試行指数バックオフを用いた再試行により、一時的な障害に対処しますR
サーガ補償トランザクションを用いて、マイクロサービス間のデータ整合性を管理しますR
スケジューラー・エージェント・スーパーバイザー再試行と障害処理を用いて、分散アクションを調整しますR
データ管理
パターン概要柱
キャッシュアサイドデータストアから必要に応じてキャッシュにデータを読み込みますPE
CQRS独立したスケーリングのため、読み取りモデルと書き込みモデルを分離しますPE, R
イベントソーシングドメインイベントの追記専用シーケンスとして状態を保存しますR, OE
インデックステーブルデータストア内で頻繁にクエリされるフィールドにインデックスを作成しますPE
マテリアライズドビュー効率的なクエリのために、データに対するビューを事前計算しますPE
シャーディングスケールとパフォーマンスを高めるため、データを複数のパーティションに分散しますPE, R
静的コンテンツホスティングクラウドストレージ/CDNから静的コンテンツを直接配信しますPE, CO
バレットキーストレージリソースへの限定的な直接アクセスをクライアントに許可しますS, PE
設計と構造
パターン概要柱
アンバサダー横断的関心事をヘルパーのサイドカープロキシに委譲しますOE
腐敗防止層新しいシステムとレガシーシステムのモデル間を変換しますOE, R
フロントエンドごとのバックエンドフロントエンドの種類(モバイル、ウェブなど)ごとに個別のバックエンドを作成しますOE, PE
コンピューティングリソースの統合複数のワークロードをより少数のコンピューティングインスタンスに統合しますCO
外部構成ストアデプロイパッケージから構成を外部化しますOE
サイドカーメインサービスと並行してヘルパーコンポーネントをデプロイしますOE
ストラングラーフィグレガシーシステムの一部を置き換えながら段階的に移行しますOE, R
セキュリティとアクセス
パターン概要柱
フェデレーション ID外部の ID プロバイダーに認証を委任しますS
ゲートキーパーリクエストを検証する専用ブローカーを使用してサービスを保護しますS
隔離外部アセットを使用可能にする前に隔離して検証しますS
レート制限コンシューマーによるリソース消費速度を制御しますR, S
スロットリング負荷がかかっている状況で SLA を維持できるよう、リソース消費を制御しますR, PE
デプロイとスケーリング
パターン概要柱
デプロイスタンプアプリケーションコンポーネントの独立したコピーを複数デプロイしますR, PE
エッジワークロードの構成多様なエッジデバイス間でワークロードを異なる設定にしますOE
ゲートウェイ集約複数のバックエンド呼び出しを単一のクライアント要求に集約しますPE
ゲートウェイオフロード共通機能(SSL、認証)をゲートウェイにオフロードしますOE, S
ゲートウェイルーティング単一のエンドポイントを使用して、複数のバックエンドに要求をルーティングしますOE
ジオードアクティブ/アクティブでサービスを提供するため、複数のリージョンにバックエンドをデプロイしますR, PE

詳細な実装ガイダンスについては、デザインパターンのリファレンスを参照してください。


テクノロジーの選択

意思決定のフレームワーク

各テクノロジー領域について、要件 → 制約 → トレードオフ → 選択の順に評価します。

領域主な選択肢選定基準
コンピューティングApp Service, Functions, Container Apps, AKS, VMs, Batchホスティングモデル、スケーリング、コスト、チームのスキル
ストレージBlob Storage, Data Lake, Files, Disks, Managed Lustreアクセスパターン、スループット、コスト階層
データストアSQL Database, Cosmos DB, PostgreSQL, Redis, Table Storage一貫性モデル、クエリパターン、スケール
メッセージングService Bus, Event Hubs, Event Grid, Queue Storage順序、スループット、パブ/サブとキューのどちらを使うか
ネットワークFront Door, Application Gateway, Load Balancer, Traffic Managerグローバルとリージョンのどちらか、L4 と L7 のどちらか、WAF
AI サービスAzure OpenAI, AI Search, AI Foundry, Document Intelligenceモデルのニーズ、データグラウンディング、オーケストレーション
コンテナーContainer Apps, AKS, Container Instances運用上の制御とシンプルさのどちらを重視するか

詳細な意思決定ツリーについては、テクノロジー選択のリファレンスを参照してください。


ベストプラクティス

プラクティス主なガイダンス
API 設計REST の規約、リソース指向の URI、HATEOAS、URL パスまたはヘッダーによるバージョン管理
API の実装非同期操作、ページネーション、冪等な PUT/DELETE、コンテンツネゴシエーション、ETag キャッシュ
自動スケーリングメトリック(CPU、キューの深さ、カスタムメトリック)に基づくスケーリング、クールダウン期間、予測スケーリング、スケールイン保護
バックグラウンドジョブキューまたはスケジュールされたトリガーの使用、冪等な処理、ポイズンメッセージの処理、正常なシャットダウン
キャッシュキャッシュアサイドパターン、TTL ポリシー、キャッシュ無効化戦略、複数インスタンス向けの分散キャッシュ
CDN静的アセットのオフロード、バージョン付き URL によるキャッシュバスティング、地理的な分散、HTTPS の強制
データのパーティション分割水平(シャーディング)、垂直、機能別のパーティション分割。均等に分散するパーティションキーの選択
パーティション分割戦略ハッシュベース、範囲ベース、ディレクトリベース。再分散の方法、パーティションをまたぐクエリの回避
ホスト名の保持Cookie、リダイレクト、認証フローのために、プロキシ/ゲートウェイ経由でも元のホストヘッダーを保持
メッセージのエンコードスキーマの進化(Avro/Protobuf)、後方/前方互換性、スキーマレジストリ
監視と診断構造化ログ、分散トレース(W3C Trace Context)、メトリック、アラート、ダッシュボード
一時的な障害の処理指数バックオフとジッターを伴う再試行、サーキットブレーカー、冪等性キー、タイムアウト予算

実装の詳細については、ベストプラクティスのリファレンスを参照してください。


パフォーマンスのアンチパターン

負荷がかかったときにパフォーマンスを低下させる、次のようなよくあるパターンは避けてください。

アンチパターン問題解決策
データベースの過負荷処理をデータベースに過剰に委ねているロジックをアプリケーション層に移し、キャッシュを使用する
フロントエンドの過負荷フロントエンドのリクエストスレッドでリソース負荷の高い処理を実行しているバックグラウンドワーカーやキューにオフロードする
頻繁な I/O大きなリクエストを少数送る代わりに、小さな I/O リクエストを多数送っているリクエストをバッチ処理し、一括 API を使用して、書き込みをバッファーする
不要なデータ取得必要以上のデータを取得している必要なフィールドだけを選択し、ページネーションを行い、サーバー側でフィルターする
不適切なインスタンス化リクエストごとにコストの高いオブジェクトを再作成しているシングルトン、コネクションプーリング、HttpClientFactory を使用する
単一の永続化方式すべてのデータ型に単一のデータストアを使用しているポリグロット永続化を採用し、ワークロードごとに適切なストアを使用する
キャッシュなし変更されていないデータを繰り返し取得しているキャッシュ・アサイドパターン、CDN、出力キャッシュ、Redis を使用する
ノイジーネイバー1 つのテナントが共有リソースをすべて消費しているバルクヘッド分離、テナントごとのクォータ、スロットリングを適用する
リトライストーム積極的なリトライによって、復旧中のサービスに過剰な負荷がかかっている指数バックオフとジッター、サーキットブレーカー、リトライ予算を適用する
同期 I/OI/O 操作中にスレッドがブロックされているAsync/await、ノンブロッキング I/O、リアクティブストリームを使用する

ミッションクリティカルな設計

99.99% 以上の SLO を目標とするワークロードでは、次の設計領域に対応してください。

設計領域主な検討事項
アプリケーションプラットフォームマルチリージョンのアクティブ/アクティブ、可用性ゾーン、ゾーン冗長性を備えた Container Apps または AKS
アプリケーション設計ステートレスサービス、冪等な操作、適切な縮退運転、バルクヘッド分離
ネットワークAzure Front Door(グローバル LB)、DDoS Protection、プライベートエンドポイント、冗長な接続
データプラットフォームマルチリージョンの Cosmos DB、ゾーン冗長 SQL、非同期レプリケーション、競合解決
デプロイとテストブルーグリーンデプロイ、カナリアリリース、カオスエンジニアリング、自動ロールバック
ヘルスモデリング複合ヘルススコア、依存関係のヘルス追跡、自動修復、SLI ダッシュボード
セキュリティゼロトラスト、すべての箇所でのマネージド ID、キーのローテーション、WAF ポリシー、脅威モデリング
運用手順自動化されたランブック、インシデント対応プレイブック、ゲームデー、事後分析

詳しいガイダンスについては、ミッションクリティカル リファレンスを参照してください。


Well-Architected Framework(WAF)の柱

すべてのアーキテクチャ上の決定は、5 つすべての柱に照らして評価してください。

柱焦点主な質問
信頼性回復性、可用性、災害復旧RTO/RPO は何ですか?障害にどう対処しますか?冗長性はありますか?
セキュリティ脅威対策、ID、データ保護ID は管理されていますか?データは暗号化されていますか?ネットワーク制御はありますか?
コスト最適化コスト管理、効率性、適正規模化コンピューティングは適正規模ですか?予約インスタンスはありますか?無駄はありませんか?
オペレーショナルエクセレンス監視、デプロイ、自動化デプロイは自動化されていますか?オブザーバビリティはありますか?ランブックはありますか?
パフォーマンス効率スケーリング、負荷テスト、パフォーマンス目標水平スケーリングできますか?パフォーマンスのベースラインはありますか?キャッシュを使用していますか?
WAF のトレードオフマトリックス
最適化の対象...影響を受ける可能性があるもの...
信頼性(冗長性)コスト(リソースの増加)
セキュリティ(分離)パフォーマンス(レイテンシの増加)
コスト(統合)信頼性(障害ドメインの共有)
パフォーマンス(キャッシュ)コスト(キャッシュインフラストラクチャ)、信頼性(古いデータ)

アーキテクチャレビューのワークフロー

システムをレビューまたは設計するときは、次の構造化された手順に従ってください。

ステップ 1:要件を特定する
Functional: What must the system do?
Non-functional:
  - Availability target (e.g., 99.9%, 99.99%)
  - Latency requirements (p50, p95, p99)
  - Throughput (requests/sec, messages/sec)
  - Data residency and compliance
  - Recovery targets (RTO, RPO)
  - Cost constraints
ステップ 2: アーキテクチャスタイルの選択

上記の選択基準表を使用して、要件をアーキテクチャスタイルにマッチングさせます。

ステップ 3: テクノロジースタックの選択

テクノロジー選択の意思決定フレームワークを使用します。IaaS よりもマネージドサービス (PaaS) を優先します。

ステップ 4: 設計パターンの適用

特定された懸念事項に基づいて、44 のクラウド設計パターンから関連するパターンを選択します。

ステップ 5: 横断的関心事への対応
  • ID とアクセス — Microsoft Entra ID、マネージド ID、RBAC
  • 監視 — Application Insights、Azure Monitor、Log Analytics
  • セキュリティ — ネットワークセグメンテーション、保存時/転送時の暗号化、Key Vault
  • CI/CD — GitHub Actions、Azure DevOps Pipelines、Infrastructure as Code
ステップ 6: WAF の柱に基づく検証

各柱を体系的にレビューします。トレードオフを明示的に文書化します。

ステップ 7: 意思決定の文書化

アーキテクチャ決定レコード (ADR) を使用します:

# ADR-NNN: [Decision Title]

## Status: [Proposed | Accepted | Deprecated]

## Context
[What is the issue we're addressing?]

## Decision
[What did we decide and why?]

## Consequences
[What are the positive and negative impacts?]

参考資料


出典

Azure Architecture Center から派生したコンテンツ — Azure 上のクラウドソリューションアーキテクチャに関する Microsoft の公式ガイダンスです。設計原則、アーキテクチャスタイル、クラウド設計パターン、テクノロジー選択、ベストプラクティス、パフォーマンスのアンチパターン、ミッションクリティカル設計、Well-Architected Framework を網羅しています。

コメント