Azure AD Connect のパフォーマンスに影響を及ぼす因子

Azure AD Connect は、Active Directory を Azure AD に同期します。 このサーバーは、ユーザー ID をクラウドに移動する際の重要なコンポーネントです。 Azure AD Connect のパフォーマンスに影響する主な因子は次のとおりです。

設計の因子 定義
トポロジ Azure AD Connect がネットワーク上で管理する必要のあるエンドポイントとコンポーネントの配布。
スケール ユーザー、グループ、OU など、Azure AD Connect で管理するオブジェクトの数。
ハードウェア Azure AD Connect 用のハードウェア (物理または仮想) と、各ハードウェア コンポーネント (CPU、メモリ、ネットワーク、ハード ドライブ構成など) の依存するパフォーマンス能力。
構成 Azure AD Connect によるディレクトリと情報の処理方法。
[読み込み] オブジェクト変更の頻度。 負荷は、1 時間、1 日、または 1 週間の間で変化する可能性があります。 コンポーネントによっては、ピーク時の負荷または平均負荷に合わせた設計が必要な場合があります。

このドキュメントの目的は、Azure AD Connect プロビジョニング エンジンのパフォーマンスに影響を与える因子について説明することです。 大規模な組織や複雑な組織 (10 万を超えるオブジェクトをプロビジョニングする組織) では、ここで説明するパフォーマンスの問題が発生した場合、推奨事項を利用してその Azure AD Connect の実装を最適化することができます。 Azure AD Connect Health などの Azure AD Connect の他のコンポーネントおよびエージェントについては、ここでは説明していません。

重要

公式に文書化されているアクションを除き、Microsoft は Azure AD Connect の変更や操作をサポートしません。 サポートされていないアクションを行うと、Azure AD Connect Sync が不整合な状態になったり、サポートされていない状態になったりする可能性があります。結果的に、Microsoft ではこのようなデプロイについてテクニカル サポートを提供できなくなります。

Azure AD Connect コンポーネントの因子

次の図は、単一のフォレストに接続しているプロビジョニング エンジンのアーキテクチャの概要を示しています (ただし、複数のフォレストには対応していません)。 このアーキテクチャは、さまざまなコンポーネントが相互にやり取りする方法を示しています。

Diagram shows how the Connected Directories and Azure AD Connect provisioning engine interact, including Connector Space and Metaverse components in an SQL Database.

プロビジョニング エンジンは、各 Active Directory フォレストと Azure AD に接続しています。 各ディレクトリから情報を読み取るプロセスを、インポートと言います。 エクスポートは、プロビジョニング エンジンからディレクトリを更新することを指します。 同期は、プロビジョニング エンジン内のオブジェクトのフロー方法の規則を評価します。 詳細については、「Azure AD Connect 同期: アーキテクチャの概要」を参照してください。

Azure AD Connect では、次のステージング領域、規則、およびプロセスを使用して、Active Directory から Azure AD への同期を許可します。

  • コネクタ スペース (CS) -接続先されたディレクトリ (CD) のそれぞれからのオブジェクト (実際のディレクトリ) は、最初にここでステージングされてから、プロビジョニング エンジンで処理できます。 Azure AD にはその独自の CS があり、接続先の各フォレストにはその独自の CS があります。
  • メタバース (MV) - 同期する必要があるオブジェクトは、同期規則に基づいてここに作成します。 接続されているその他のディレクトリにオブジェクトと属性を設定するには、オブジェクトが MV に存在する必要があります。 MV は 1 つしかありません。
  • 同期規則 - MV 内のオブジェクトに対して作成 (投影) または接続 (結合) されるオブジェクトを決定します。 また、同期規則は、ディレクトリとの間でコピーまたは変換される属性値も決定します。
  • 実行プロファイル - ステージング領域と接続されたディレクトリの間の同期規則に従って、オブジェクトとその属性値のコピー プロセスの手順を 1 つにまとめます。

プロビジョニング エンジンのパフォーマンスを最適化する、別の実行プロファイルが存在しています。 ほとんどの組織では、通常の操作に既定のスケジュールと実行プロファイルを使用しますが、組織によっては、異常な状況に対応するためにスケジュールの変更や他の実行プロファイルのトリガーが必要になることもあります。 使用できる実行プロファイルは次のとおりです。

初期同期プロファイル

初期同期プロファイルは、Active Directory フォレストのような、接続されたディレクトリの初めての読み取りのプロセスです。 その後で、同期エンジン データベースのすべてのエントリの解析を行います。 初期サイクルでは、Azure AD に新しいオブジェクトが作成されます。Active Directory フォレストが大きい場合は、完了までに余分が時間がかかります。 初期同期の手順は、次のとおりです。

  1. すべてのコネクタでのフル インポート
  2. すべてのコネクタでの完全同期
  3. すべてのコネクタでのエクスポート

差分同期プロファイル

同期プロセスを最適化するために、接続されたディレクトリ内のオブジェクトの最後の同期プロセス以降の変更 (作成、削除および更新) を処理するのは、この実行プロファイルだけです。 既定では、差分同期プロファイルは 30 分ごとに実行されます。 組織では、Azure AD を最新の状態に保つために、所要時間が常に 30 分を下回るように工夫する必要があります。 Azure AD Connect の正常性を監視するには、正常性の監視エージェントを使用してプロセスに関する問題を確認します。 差分同期プロファイルの手順は、次のとおりです。

  1. すべてのコネクタでの差分インポート
  2. すべてのコネクタでの差分同期
  3. すべてのコネクタでのエクスポート

一般的なエンタープライズ組織の差分同期のシナリオは、次のとおりです。

  • 約 1% のオブジェクトが削除される
  • 約 1% のオブジェクトが作成される
  • 約 5% のオブジェクトが変更される

変化率は、組織が Active Directory のユーザーを更新する頻度によって異なります。 たとえば、変化率の上昇は、従業員の雇用と削減の季節性によって発生する可能性があります。

完全同期プロファイル

以下のいずれかの構成変更を行った場合は、完全同期サイクルが必要です。

  • 接続されたディレクトリからインポートするオブジェクトまたは属性の範囲を拡大した。 たとえば、インポート範囲にドメインや OU を追加した場合です。
  • 同期規則に変更を加えた。 たとえば、ユーザーの肩書を Active directory の extension_attribute3 から Azure AD に読み込む、新しい規則を作成した場合です。 この更新には、肩書を更新して今後の変更を適用するために、プロビジョニング エンジンが既存のすべてのユーザーを再確認する必要があります。

完全同期サイクルには、次の操作が含まれています。

  1. すべてのコネクタでのフル インポート
  2. すべてのコネクタでの完全/差分同期
  3. すべてのコネクタでのエクスポート

注意

Active Directory または Azure AD の多くのオブジェクトに一括更新を実施する場合は、慎重な計画が必要です。 一括更新では多数のオブジェクトが変更されるため、インポート時には差分同期プロセスに長時間かかります。 一括更新が同期プロセスに影響を及ぼさない場合でも、インポートに長時間かかる可能性があります。 たとえば、Azure AD の多数のユーザーにライセンスを割り当てると、Azure AD からの長いインポート サイクルが発生しますが、Active Directory の属性は変更されません。

Synchronization

同期プロセスの実行時には、次のパフォーマンス特性があります。

  • 同期はシングル スレッドです。つまり、プロビジョニング エンジンは、接続されたディレクトリ、オブジェクト、または属性の実行プロファイルの並列処理を実行しません。
  • インポート時間は、同期されるオブジェクトの数に伴って線形に増加します。 たとえば、10,000 個のオブジェクトをインポートするのに 10 分かかる場合、同じサーバーでは 20,000 個のオブジェクトに約 20 分かかります。
  • エクスポートも線形です。
  • 同期は、他のオブジェクトへの参照を含むオブジェクトの数に基づいて指数関数的に増加します。 グループ メンバーシップと入れ子になったグループは、そのメンバーがユーザー オブジェクトまたはその他のグループを参照するため、主要なパフォーマンスへの影響があります。 同期サイクルを完了するには、これらの参照を検出し、MV 内の実際のオブジェクトに参照されるようにする必要があります。

Filtering

インポートする Active Directory トポロジのサイズは、プロビジョニング エンジンの内部コンポーネントが要するパフォーマンスと全体的な時間に影響を及ぼす第 1 の因子です。

フィルター処理は、同期するオブジェクトを減らすために使用してください。 これにより、不要なオブジェクトの処理や Azure AD へのエクスポートが妨げられます。 フィルター処理に使用できる手法を、最も望ましいものから順に次に示します。

  • ドメインベースのフィルター処理 – このオプションを使用して、Azure AD に同期する特定のドメインを選択します。 Azure AD Connect Sync をインストールした後にオンプレミス インフラストラクチャに変更を加えた場合、同期エンジンの構成でドメインを追加または削除する必要があります。
  • 組織単位 (OU) のフィルター処理 - OU を使用して、Azure AD にプロビジョニングするための Active Directory ドメイン内の特定のオブジェクトにターゲットを設定します。 OU のフィルター処理は、2 番目に推奨されるフィルター処理メカニズムです。これは、単純な LDAP スコープ クエリを使用して、Active Directory からオブジェクトの小さなサブセットをインポートするためです。
  • オブジェクトごとの属性のフィルター処理 - オブジェクトの属性値を使用して、Active Directory の特定のオブジェクトが Azure AD にプロビジョニングされるかどうかを決定します。 属性のフィルター処理は、ドメインと OU のフィルター処理が特定のフィルター処理要件を満たしていない場合に、フィルターを微調整するのに適しています。 属性のフィルター処理では、インポート時間は短縮されませんが、同期時間とエクスポート時間を短縮できます。
  • グループベースのフィルター処理 - グループ メンバーシップを使用して、オブジェクトを Azure AD にプロビジョニングする必要があるかどうかを決定します。 グループベースのフィルター処理は、同期サイクル中にグループ メンバーシップをチェックするために余分なオーバーヘッドが必要なため、状況をテストする場合のみ適していて、運用環境には推奨されません。

プロビジョニング エンジンは同期サイクルで可能な接続について各非コネクタ オブジェクトを再評価する必要があるため、Active Directory CS に永続的な非コネクタ オブジェクトが多数あると、同期に時間がかかる可能性があります。 この問題を克服するためには、次のいずれかの推奨事項について検討してください。

  • 非コネクタ オブジェクトを、ドメインまたは OU のフィルター処理を使用したインポートの範囲外に配置します。
  • オブジェクトを MV に投射/結合し、cloudFiltered 属性が True を示すように設定して、Azure AD CS でこれらのオブジェクトのプロビジョニングを回避します。

注意

フィルター処理するオブジェクトが多すぎると、ユーザーが混乱したり、アプリケーションのアクセス許可の問題が発生したりする可能性があります。 たとえば、ハイブリッド Exchange Online の実装では、オンプレミスのメールボックスを持つユーザーのグローバル アドレス一覧に、Exchange Online のメールボックスを持つユーザーよりも多くのユーザーが表示されます。 ユーザーが、フィルター処理されたオブジェクト セットの範囲に含まれていない別のユーザーに、クラウド アプリのアクセス権を付与する必要がある場合もあります。

属性フロー

属性フローとは、接続されたディレクトリ間でオブジェクトの属性値をコピーまたは変換するプロセスのことです。 これは同期規則の一部として定義します。 たとえば、Active Directory でユーザーの電話番号が変更されると、Azure AD の電話番号が更新されます。 組織では、さまざまな要件に合わせて属性フローを変更することができます。 変更する前に、既存の属性フローをコピーすることをお勧めします。

属性値を別の属性にフローするといった単純なリダイレクトでは、パフォーマンスへの重要な影響はありません。 リダイレクトの一例として、Active Directory の携帯電話番号を Azure AD の会社の電話番号にフローするという例があります。

属性値の変換は、同期プロセスの際のパフォーマンスに影響を及ぼす可能性があります。 属性値の変換には、属性の値の変更、再フォーマット、連結、または減算が含まれます。

組織では、特定の属性が Azure AD にフローしないようにすることができますが、それはプロビジョニング エンジンのパフォーマンスには影響を及ぼしません。

注意

同期規則にある不要な属性フローは削除しないでください。 むしろ、無効にすることをお勧めします。削除された規則は、Azure AD Connect のアップグレード中に再度作成されるためです。

Azure AD Connect の依存関係の因子

Azure AD Connect のパフォーマンスは、インポート先とエクスポート先の接続されたディレクトリのパフォーマンスに依存します。 たとえば、インポートする必要がある Active Directory のサイズや、Azure AD サービスに対するネットワーク待機時間です。 プロビジョニング エンジンが使用する SQL データベースも、同期サイクルの全体的なパフォーマンスに影響します。

Active Directory の因子

前述のように、インポートするオブジェクトの数は、パフォーマンスにかなりの影響を及ぼします。 Azure AD Connect のハードウェアと前提条件に関するページで、デプロイのサイズに応じた特定のハードウェア レベルの概要を説明しています。 「Azure AD Connect のトポロジ」で概説されているように、Azure AD Connect は特定のトポロジのみサポートしています。 サポートされていないトポロジに対するパフォーマンスの最適化と推奨事項はありません。

Azure AD Connect サーバーが、インポートする Active Directory のサイズに応じたハードウェア要件を満たしていることを確認してください。 Azure AD Connect サーバーと Active Directory ドメイン コントローラー間のネットワーク接続が良好でなかったり低速であったりすると、インポートが遅くなる可能性があります。

Azure AD の因子

Azure AD では、サービス拒否 (DoS) 攻撃からクラウド サービスを保護するために調整を使用します。 現在のところ、Azure AD の調整制限は、5 分あたり 7,000 回の書き込み (1 時間あたり 84,000 回) です。 たとえば、次の操作を調整できます。

  • Azure AD への Azure AD Connect のエクスポート。
  • Azure AD をバックグラウンドでも直接更新する PowerShell スクリプトまたはアプリケーション (動的グループ メンバーシップなど)。
  • MFA または SSPR (セルフサービス パスワード リセット) の登録など、独自の ID レコードを更新するユーザー。
  • グラフィカル ユーザー インターフェイスでの操作。

Azure AD Connect の同期サイクルが調整制限による影響を確実に受けないようにする、デプロイおよび保守タスクの計画。 たとえば、何千ものユーザー ID を作成する大規模な人材採用の動きがある場合は、それによって動的グループ メンバーシップに対する更新、ライセンスの割り当て、およびセルフサービス パスワード リセットの登録が発生する可能性があります。 これらの書き込みは、数時間または数日に分散させることをお勧めします。

SQL データベースの因子

ソースの Active Directory トポロジのサイズは、SQL データベースのパフォーマンスに影響します。 SQL Server データベースのハードウェア要件に従って、次の推奨事項について検討してください。

  • ユーザーの人数が 10 万人を超える組織では、SQL データベースとプロビジョニング エンジンを同じサーバー上に共存させることで、ネットワーク待機時間を減らすことができます。
  • 同期プロセスのディスク入出力 (I/O) の要件が高いため、最適な結果を得るには、プロビジョニング エンジンの SQL データベース用にソリッド ステート ドライブ (SSD) を使用してください。できない場合は、RAID 0 または RAID 1 構成を検討してください。
  • 完全同期は事前には行わないでください。不要なチャーンが発生し、応答時間が遅くなります。

まとめ

Azure AD Connect の実装のパフォーマンスを最適化するためには、次の推奨事項を考慮してください。

  • Azure AD Connect サーバーの実装サイズに応じた、推奨されるハードウェア構成を使用してください。
  • 大規模なデプロイで Azure AD Connect をアップグレードする場合は、最小限のダウンタイムと最高の信頼性を確保するために、スウィング移行方法の使用を検討してください。
  • 最適な書き込みパフォーマンスを得るためには、SQL データベース用に SSD を使用してください。
  • ドメイン、OU、または属性のフィルター処理を使用して、Azure AD にプロビジョニングする必要があるオブジェクトだけが含まれるように、Active Directory のスコープをフィルター処理してください。
  • 既定の属性フロー規則を変更する必要がある場合は、最初に規則をコピーしてから、そのコピーを変更し、元の規則を無効にしてください。 忘れずに完全同期を再度実行してください。
  • 最初の完全同期の実行プロファイルの計画には、十分な時間を取ってください。
  • 差分同期サイクルは 30 分で完了するよう努めてください。 差分同期プロファイルが 30 分で完了しない場合は、完全な差分同期サイクルが含まれるように既定の同期の頻度を変更してください。
  • Azure AD で Azure AD Connect 同期の正常性を監視してください。

次のステップ

オンプレミス ID と Azure Active Directory の統合」をご覧ください。