Microsoft AZ-305: インテグレーションとメッセージングアーキテクチャ — 学習ガイド

こちらの一部です: Microsoft Azure Solutions Architect Expert AZ-305 — 学習ガイド. 検証済みの解答で練習: Microsoft試験ハブ, または時間制限付き模擬試験に挑戦: ExamRoll.io.

概要

Azureにおける統合とメッセージングアーキテクチャは、コマンド、イベント、データ移動のセマンティクスに適したサービスを選択し、信頼性、順序性、スケールを考慮して設計し、ハイブリッドシステムを安全に統合することが鍵となります。中核となる構成要素には、高機能なブローカーを備えたエンタープライズメッセージングのためのAzure Service Bus、リアクティブなイベントルーティングのためのAzure Event Grid、高スループットのストリーミングインジェストのためのAzure Event Hubs、そしてシンプルなキューイングのためのStorage Queuesが含まれます。これらを補完するものとして、プロセス自動化のためのAzure Logic Apps、ガバナンスと開発者エクスペリエンスのためのAPI Management、ETL/ELTのためのAzure Data Factory、ファイアウォールフレンドリーなオンプレミス接続のためのAzure Relay、モバイルプッシュのためのAzure Notification Hubsがあります。優れた設計では、ジョブに適したサービスを使用し、コントラクトと障害モードを明示的にモデル化し、適切な場合にはオーケストレーションまたはコレオグラフィパターンを適用します。

Azureでのメッセージングとイベント処理

Azure Service Busは、順序付き配信、トランザクション、グループ内でのFIFO、デッドレター処理を必要とするコマンドやワークフローのためのエンタープライズブローカーです。キューは、1つのプロデューサーと1つの競合するコンシューマーグループ間でポイントツーポイントのメッセージングを提供します。トピックは、SQLライクなフィルターとアクションを使用してメッセージをフィルタリングおよびルーティングできる、複数の独立したサブスクリプションを持つpub/subを可能にします。メッセージセッションは、関連するメッセージをsessionIdでグループ化し、グループごとのFIFOとステートフルな処理を可能にします。セッションロックにより、一度に1つのコンシューマーが1つのセッションを処理することが保証されます。デッドレターキューは、最大配信回数を超えた場合、TTLが期限切れになった場合、または明示的にデッドレター化された場合にポイズンメッセージをキャプチャし、隔離と後の検査を可能にします。各キューまたはサブスクリプションには、$DeadLetterQueueサブキューがあります。トランザクションは、同じ名前空間内のエンティティ間で、送信/受信/完了操作をアトミックに実行できます。これにより、例えば、後続のメッセージが正常に送信された場合にのみメッセージが完了することが保証されます(send-viaはエンティティ間のワークフローをサポートします)。

Azure Event Gridは、リアクティブなプッシュベースのパターンに対応した、フルマネージドのイベントルーターです。ネイティブのEvent GridスキーマまたはCloudEvents 1.0のいずれかを使用します。イベントサブスクリプションは、Functions、Logic Apps、Service Bus、Event Hubs、WebHooks、Storage Queuesなどのエンドポイントをターゲットとし、サブジェクトフィルターと高度なフィルターでノイズを低減します。配信は指数バックオフで再試行されます。サブスクリプションは、設定可能な再試行ポリシー(最大配信試行回数とイベントの有効期間)をサポートし、配信不能なイベントはストレージアカウントにデッドレター化できます。ハンドシェイク検証によりWebHookエンドポイントが保護され、マネージドIDにより、Azureエンドポイントへの発行と配信が簡素化されます。

Azure Event Hubsは、パーティション化されたログを使用して、テレメトリとストリーミングデータを大規模にインジェストします。パーティションは、並列処理とパーティション内での順序性を提供します。関連するイベントの順序を維持するためにパーティションキーを選択します。パーティション数はスケールを決定し、作成後に減らすことはできないため、将来のスループットを見越してサイズを決定します。コンシューマーグループは、互いのオフセットに干渉することなく、さまざまなアプリケーションに対してイベントストリームの独立したビューを提供します。Capture機能は、時間/サイズのウィンドウに基づいて、ほぼリアルタイムでデータをAzure Blob StorageまたはData Lake Storageに永続的にオフロードします。通常はAvro形式で、インジェストに影響を与えることなくバッチ分析を可能にします。組み込みのSchema Registryは、バージョン管理と互換性ポリシーを持つAvro/JSONスキーマを保存し、プロデューサーとコンシューマーがコントラクトを安全に検証し、進化させることを可能にします。

Storage Queuesは、配信保証がat-least-once(少なくとも1回)で、非表示タイムアウトと、メッセージTTLおよびアプリケーション管理のポイズン処理による基本的なデッドレター機能を備えた、シンプルでコスト効率の高いサービスです。トランザクション、セッション、高度なルーティング機能はありませんが、基本的なデカップリングや大規模なファンアウトを低コストで実現するのに優れています。

どちらをいつ選ぶか:

統合、API、ハイブリッド接続

Azure Logic Appsは、何百ものコネクタを備えたマネージドワークフローオートメーションを提供します。従量課金 (マルチテナント) では、アクションごとに支払い、自動スケーリングとマルチテナントコネクタを利用できます。バースト的な使用に最適です。Standard (シングルテナント) はFunctionsランタイム上で実行され、ステートフル/ステートレスワークフロー、より高いスループット、カスタムコネクタ、インプロセスで実行される組み込みコネクタ、コンテナ化、ローカル開発、VNET/プライベートエンドポイント統合をサポートします。エンタープライズレベルの分離と予測可能なキャパシティに最適です。統合サービス環境 (ISE) は、プライベートネットワークとデータ局所性のためのレガシーな専用スタンプです。新しい設計では、一般的にVNET統合を備えたLogic Apps StandardまたはApp Service Environment v3へのデプロイが推奨されます。

Azure API Management (APIM) は、APIに対する抽象化およびガバナンスレイヤーを提供します。ポリシーは、inbound、backend、outboundの各ステージで適用され、validate-jwt、rate-limit-by-key、quota、set-header、retry、cache-lookup/store、動的ルーティングのためのset-backend-serviceといった横断的な関心事を強制します。製品 (Product) は1つ以上のAPIをグループ化し、ポリシーの振る舞いをバンドルし、特定のグループに公開できます。サブスクリプションは、コンシューマーごとまたは製品ごとにキーを発行して、アクセスを測定および制御します。キーはローテーションでき、クォータに結びつけることができます。開発者ポータルは、セルフサービスの検出、ドキュメント、試用、オンボーディングワークフローを可能にし、セルフホステッドゲートウェイは、オンプレミスや他のクラウド向けのハイブリッドなコントロールプレーン/エッジデプロイを可能にします。

Azure Relayは、受信ファイアウォールポートを開くことなく、オンプレミスサービスへの受信接続を可能にします。ハイブリッド接続は、TLS 443を介したWebSocketsを使用し、オンプレミスからアウトバウンドで開始され、クライアントからRelayへの汎用的な双方向ソケット通信を実現します。HTTPやWebSockets上でカプセル化された任意のプロトコルに役立ちます。WCFリレーは、オンプレミスのWCFエンドポイント (NetTcp/HTTP) をリレーを介して公開し、トランスポートレベルまたはメッセージレベルのセキュリティとクレームベースのアクセスを提供します。セキュアでファイアウォールフレンドリーな公開が必要な既存のWCFサービスに最適です。

Azure Notification Hubsは、プラットフォーム通知システム (iOS用のAPNs、Android用のFCM、Windows用のWNS、Amazon用のADM) を抽象化するクロスプラットフォームのプッシュブローカーです。バックエンドは、デバイスやインストールをタグやテンプレートと共に登録し、大規模な通知のターゲティングとパーソナライズを行います。PNSごとにプラットフォームの資格情報が必要です:APNsのp8キーまたは証明書、FCMのサーバーキー/資格情報、WNSのパッケージSID/シークレット。Notification Hubsはファンアウト、スロットリング、トークン管理を処理するため、アプリケーションコードはPNSに依存しない状態を保てます。

データ移動とストリーミング分析

Azure Data Factory (ADF) は、ハイブリッド環境全体にわたるデータ統合をオーケストレーションします。統合ランタイム (IR) は、アクティビティのコンピューティングをホストします。Azure IRはAzure内でのサーバーレスなコピーとデータフロー用、Self-hosted IRは受信ポートを開かずにプライベートネットワーク内でのデータ移動/コンピューティング用、Azure-SSIS IRはSSISパッケージをマネージドクラスターにリフト&シフトするためです。パイプラインは、制御フロー (依存関係、ループ、分岐、トリガー) と再利用のためのパラメータ化を用いてアクティビティをオーケストレーションします。マッピングデータフローは、スキーマドリフト処理とパーティショニング制御を備えた、コードフリーでSparkベースの大規模な変換を提供します。変換は複雑だがマネージドコンピューティングを利用したい場合に使用します。リンクされたサービスは、ソース、シンク、およびコンピューティングの接続メタデータと資格情報を定義します。データセットとデータフローのソース/シンクはこれらを参照し、安全な再利用とRBACを可能にします。

Event Hubsは、Captureを介して永続ストレージにデータを保存し、分析サービスと統合します。その後、Azure SynapseやDatabricksがAvroファイルをマイクロバッチで処理できます。スキーマレジストリは、コントラクトを一元管理することでストリーミングジョブにおける逆シリアル化と進化を簡素化し、プロデューサーとコンシューマー間での脆弱な暗黙的な型付けを回避します。

信頼性とイベント駆動パターン

信頼性のための設計は、明示的な障害処理から始まります。Service Busはエンティティごとにデッドレターキューを提供します。コンシューマーはDLQを監視してトリアージし、オプションで分析用のキューに自動転送すべきです。重複検出とべき等なハンドラーを使用して、二重処理を回避します。トランザクションを活用して受信とアウトボックスメッセージの送信をアトミックに処理し、セッションを使用してビジネスエンティティごとの順序付き処理を実現しつつ、セッションをまたいでスケールします。Event Gridの再試行ポリシーは、設定可能な制限付きの指数バックオフを使用します。監査可能性のためにStorageへのデッドレタリングを設定し、リプレイツールを構築します。Event Hubsは少なくとも1回の配信を保証します。SDK(またはAzure Functionsのトリガー)を介したチェックポイント処理により、パーティション/コンシューマーグループごとの進捗追跡が保証されます。Storage Queuesは、明示的に実装する可視性タイムアウトとポイズンメッセージパターンに依存します。

イベント駆動アーキテクチャは、通常、コレオグラフィまたはオーケストレーションを使用します。コレオグラフィは、ピアからのイベントに反応するサービス間で協調を分散させます。疎結合でスケーラブル、部分的障害に強い反面、可視化や統制が難しくなり、補正処理が分散する可能性があります。オーケストレーションは、Azure Durable Functions、Logic Apps、またはワークフローエンジンのようなオーケストレーターにフロー制御を集中させ、可観測性、タイムアウト/補正ロジック、および人間が介在するステップを改善しますが、オーケストレーターへの結合が密になるという代償が伴います。サーガパターンは、2フェーズコミットの代わりに補正アクションを用いて、長時間実行される複数ステップのトランザクションを実装します。コレオグラフィでは、各サービスがドメインイベントをリッスンし、必要に応じて補正処理を発行します。オーケストレーションでは、オーケストレーターがアクティビティを呼び出し、障害やタイムアウト時に補正処理をトリガーします。Azureでは、信頼性の高いコマンド配信のためにService BusとDurable Functions(ステートフルなオーケストレーション、再試行、タイムアウト、補正パターン)を使用するか、堅牢なエンタープライズワークフローと組み込みコネクタのためにLogic Apps Standardを使用してサーガを実装します。

実践的な問題シナリオ

Contoso Retail社は、オンプレミスのERP、eコマースサイト、モバイルアプリ、および下流の分析システムにまたがる注文処理を近代化します。このソリューションは、パートナー通知、リアルタイムのテレメトリ分析、安全なオンプレミスアクセス、モバイルプッシュをサポートし、支払いと在庫に関する厳密な順序付けと補正処理を実装する必要があります。

  1. 取り込みとコマンドのワークフロー
  1. オーケストレーションと補正処理
  1. イベント駆動の通知
  1. テレメトリのストリーミングと分析
  1. データ統合
  1. APIとパートナーガバナンス
  1. ワークフローの自動化とコネクタ
  1. ハイブリッド接続
  1. モバイルプッシュ

この設計は、各要件を専用のサービスにマッピングしています。信頼性の高いコマンドにはService Bus、オーケストレーションされたサーガにはDurable Functions、プッシュ通知にはEvent Grid、ストリーミング分析にはEvent Hubs + Capture + Schema Registry、ハイブリッドETL/ELTにはADF、ガバナンスにはAPIM、エンタープライズオートメーションにはLogic Apps、オンプレミスアクセスにはRelay、そしてモバイルエンゲージメントにはNotification Hubsを使用します。


セキュリティアーキテクチャとゼロトラスト · すべてのドメイン · モニタリング、コスト最適化、運用

これらの問題を練習する → · ExamRoll.ioで時間制限付き練習 →

Pass the whole exam — not just this question

You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.

試験に合格する →

Microsoftを閲覧 →

Related guides

オールインワンアクセス

1つのサブスクリプション。すべての試験。

すべてのプランで、無制限の回答検索、模擬試験、AI解説、および完全なリソースライブラリが利用可能 — 20以上の言語に対応。

月額
24.87
Just €0.83/day
すべて含まれています:
  • 無制限の回答検索
  • 無制限の模擬試験
  • AIを活用した解説
  • 完全なリソースライブラリ
  • 20以上の言語
  • 毎週のコンテンツ更新
  • 特典 & 紹介
  • 優先サポート
無料トライアルを開始

クレジットカード不要*

ベストバリュー
12ヶ月
179.87
Just €0.49/daySave 40%
すべて含まれています:
  • 無制限の回答検索
  • 無制限の模擬試験
  • AIを活用した解説
  • 完全なリソースライブラリ
  • 20以上の言語
  • 毎週のコンテンツ更新
  • 特典 & 紹介
  • 優先サポート
無料トライアルを開始

クレジットカード不要*

✓ 無料プランが含まれています · ✓ いつでもキャンセル可能 · ✓ すべてのプランで製品の全機能が利用可能