レプリケーションエージェントは、次の目的で使用されるメカニズムとして Adobe Experience Manager(AEM)の中核を成すものです。
要求は適切なエージェントに登録され、処理を待機します。
ユーザーデータ(ユーザー、ユーザーグループおよびユーザープロファイル)は、オーサーインスタンスとパブリッシュインスタンスの間でレプリケートされません。
パブリッシュインスタンスが複数ある場合は、ユーザーの同期が有効化されたときにユーザーデータが Sling 分配されます。
パブリッシュインスタンスまたは Dispatcher へのレプリケーションは、いくつかの段階を踏んで実行されます。
作成者が特定のコンテンツの公開(アクティベート)を要求します。これは、手動の要求または設定済みの自動トリガーによって開始できます。
デフォルトの適切なレプリケーションエージェントに要求が渡されます。このようなアクションのために選択されるデフォルトエージェントを、1 つの環境にいくつか用意することができます。
レプリケーションエージェントがコンテンツを「パッケージ化」して、レプリケーションキューに配置します。
「Web サイト」タブで、個々のページに対して色付きのステータスインジケーターが設定されます。
設定されたプロトコル(通常は HTTP)を使用して、コンテンツがキューから取り出されて、パブリッシュ環境に移されます。
パブリッシュ環境内のサーブレットが要求を受信し、受信したコンテンツを公開します。デフォルトのサーブレットは https://localhost:4503/bin/receive
です。
複数のオーサー環境とパブリッシュ環境を設定できます。
一部の機能は、ユーザーに対してパブリッシュインスタンス上でのデータ入力を許可します。
状況によっては、このデータをオーサー環境に返してそこから別のパブリッシュ環境へ再分配するために、リバースレプリケーションという種類のレプリケーションが必要になることがあります。セキュリティ上の問題を考慮し、パブリッシュ環境からオーサー環境へのトラフィックは厳密に制御する必要があります。
リバースレプリケーションでは、オーサー環境を参照するパブリッシュ環境内のエージェントを使用します。このエージェントが、データをアウトボックスに配置します。このアウトボックスは、オーサー環境のレプリケーションリスナーに対応付けられています。リスナーはアウトボックスをポーリングして、入力されているすべてのデータを収集し、必要に応じて配布します。これにより、オーサー環境がすべてのトラフィックを確実に制御できるようになります。
その他の場合、例えばフォーラム、ブログ、コメント、レビューなどのコミュニティ機能では、パブリッシュ環境に入力されるユーザー生成コンテンツ(UGC)の量が多いので、AEM インスタンス間の効率的な同期をレプリケーションで実現することは難しくなります。
AEM Communities では、UGC にレプリケーションを使用しません。その代わりに、Communities のデプロイメントでは UGC 用の共通ストアが必要になります(コミュニティコンテンツのストレージを参照)。
AEM の標準インストールに含まれている we-retail web サイトを使用して、レプリケーションの仕組みを見ていきましょう。
この例に従ってデフォルトのレプリケーションエージェントを使用するには、次の環境を使用して AEM をインストールする必要があります。
4502
)4503
)以下はデフォルトで有効になっています。
事実上、以下はデフォルトで無効になっています(AEM 6.1 以降)。
エージェントまたはキューのステータスを確認するには、ツールコンソールを使用します。
レプリケーションエージェントの監視を参照してください。
<pi>
このレプリケーションは、次のエージェントによってオーサー環境から実行されます。
デフォルトエージェント(publish)
このエージェントは、デフォルトのパブリッシュインスタンスにコンテンツをレプリケーションします。
この設定およびログの詳細には、オーサー環境のツールコンソールまたは次の URL からアクセスすることができます。 あるいは以下のようにしてください。
https://localhost:4502/etc/replication/agents.author/publish.html
次に示すエージェントは標準の AEM インストールで使用できます。
デフォルトエージェントオーサー環境からパブリッシュ環境へのレプリケーションに使用します。
Dispatcher フラッシュDispatcher キャッシュの管理に使用します。詳しくは、オーサリング環境からの Dispatcher キャッシュの無効化およびパブリッシュインスタンスからの Dispatcher キャッシュの無効化を参照してください。
リバースレプリケーションパブリッシュ環境からオーサー環境へのレプリケーションに使用します。リバースレプリケーションは、フォーラム、ブログ、コメントなどのコミュニティ機能には使用されません。アウトボックスが有効化されていないので、事実上、この機能は無効になっています。リバースレプリケーションを使用するには、カスタム設定が必要になります。
静的エージェント
これは、「ノードの静的な表現をファイルシステムに格納するエージェント」です。例えば、デフォルト設定では、コンテンツページと DAM アセットが /tmp
に HTML または適切なアセット形式として格納されます。設定については、Settings
タブと Rules
タブを参照してください。これは、ページがアプリケーションサーバーから直接要求される場合に、コンテンツを確認できるようにするためのエージェントです。これは特殊なエージェントであり、(おそらく)ほとんどのインスタンスでは必要ありません。
ツールコンソールからレプリケーションエージェントを設定する場合は、ダイアログ内の 4 つのタブを使用できます。
名前
レプリケーションエージェントの一意の名前です。
説明
このレプリケーションエージェントの用途の説明です。
Enabled
現在レプリケーションエージェントが有効かどうかを示します。
エージェントが有効な場合は、キューが次のように表示されます。
シリアル化の種類
シリアル化の種類です。
再試行遅延
問題が発生した場合の、2 回の再試行の間の遅延(ミリ秒単位の待機時間)です。
デフォルト: 60000
エージェントユーザー ID
環境に応じて、エージェントはこのユーザーアカウントを使用して次の処理をおこないます。
システムユーザーアカウント(sling で管理者ユーザーとして定義したアカウント。デフォルトでは、admin
です)を使用するには、このフィールドを空白のままにします。
オーサー環境におけるエージェントの場合、このアカウントには、レプリケーションしたすべてのパスに対する読み取りアクセス権が必要です*。*
パブリッシュ環境におけるエージェントの場合、このアカウントでコンテンツをレプリケーションするには、作成/書き込みアクセス権が必要です。
これは、レプリケーション用の特定のコンテンツを選択するためのメカニズムとして使用できます。
ログレベル
ログメッセージに使用する詳細レベルを指定します。
Error
:エラーだけがログに記録されます。Info
:エラー、警告およびその他の情報メッセージがログに記録されます。Debug
:主にデバッグを目的として、高いレベルの詳細がメッセージで使用されます。デフォルト: Info
リバースレプリケーションに使用
このエージェントをリバースレプリケーションに使用するかどうかを示します。パブリッシュ環境からオーサー環境にユーザーの入力を戻します。
エイリアスの更新
このオプションを選択すると、Dispatcher へのエイリアスまたはバニティーパスの無効化要求が有効になります。Dispatcher フラッシュエージェントの設定 も参照してください。
URI
ターゲットの場所にある受信側のサーブレットを指定します。具体的には、ホスト名(またはエイリアス)とターゲットインスタンスのコンテキストパスを指定できます。
次に例を示します。
https://localhost:4503/bin/receive
https://localhost:8000/dispatcher/invalidate.cache
ここで指定するプロトコル(HTTP または HTTPS)によってトランスポート方法が決まります。
Dispatcher フラッシュエージェントの場合、「URI」プロパティは、パスに基づく virtualhost エントリを使用してファームを区別する場合にのみ使用されます。このフィールドを使用して、無効にするファームをターゲット設定してください。例えば、ファーム #1 の仮想ホストは www.mysite.com/path1/*
で、ファーム #2 の仮想ホストは www.mysite.com/path2/*
です。この場合、/path1/invalidate.cache
の URL を使用して最初のファームをターゲット設定し、/path2/invalidate.cache
を使用して 2 つ目のファームをターゲット設定できます。
ユーザー
ターゲットへのアクセスに使用するアカウントのユーザー名です。
パスワード
ターゲットへのアクセスに使用するアカウントのパスワードです。
NTLM ドメイン
NTML 認証用のドメインです。
NTLM ホスト
NTML 認証用のホストです。
緩和された SSL を有効にする
自己証明 SSL 証明書を受け取る場合に有効にします。
期限切れの証明書を許可する
期限切れ SSL 証明書を受け取る場合に有効にします。
以下の設定は、プロキシが必要な場合にのみおこないます。
プロキシホスト
トランスポートに使用するプロキシのホスト名です。
プロキシポート
プロキシのポートです。
プロキシユーザー
使用するアカウントのユーザー名です。
プロキシパスワード
使用するアカウントのパスワードです。
プロキシ NTLM ドメイン
プロキシの NTLM ドメインです。
プロキシ NTLM ホスト
プロキシの NTLM ドメインです。
インターフェイス
ここでは、バインド先のソケットインターフェイスを定義できます。
接続の作成時に使用するローカルアドレスを設定します。設定しない場合は、デフォルトのアドレスが使用されます。これは、マルチホームシステムやクラスターシステムで使用するインターフェイスを指定する場合に役立ちます。
HTTP メソッド
使用する HTTP メソッドです。
Dispatcher フラッシュエージェントでは、ほとんどの場合 GET です。この設定を変更しないでください(有効なもう 1 つの値は POST です)。
HTTP ヘッダー
Dispatcher フラッシュエージェントで使用されます。フラッシュする必要のある要素を指定します。
Dispatcher フラッシュエージェントの場合、次の 3 つの標準エントリを変更する必要はありません。
CQ-Action:{action}
CQ-Handle:{path}
CQ-Path:{path}
必要に応じてこれらを使用して、ハンドルまたはパスのフラッシュ時に使用するアクションを指定します。サブパラメーターは動的です。
{action}
はレプリケーションアクションを示します
{path}
はパスを示します
これらは、要求に関連するパスまたはアクションで置き換えられるので、ハードコーディングする必要はありません。
推奨されるデフォルトのコンテキスト以外のコンテキストに AEM をインストールした場合は、「HTTP ヘッダー」にそのコンテキストを登録する必要があります。次に例を示します。
CQ-Handle:/<*yourContext*>{path}
接続を閉じる
各要求の後に接続を閉じられるようにします。
接続タイムアウト
接続の確立の試行時に適用するタイムアウト(ミリ秒単位)です。
Socket Timeout
接続の確立後のトラフィックの待機時に適用するタイムアウト(ミリ秒単位)です。
プロトコルのバージョン
プロトコルのバージョンです。例えば、HTTP/ の場合は 1.0
1.0 です。
以下の設定を使用して、自動化されたレプリケーションのトリガーを定義します。
デフォルトを無視
オンにすると、デフォルトのレプリケーションからエージェントが除外されます。つまり、コンテンツの作成者がレプリケーションのアクションを実行しても、そのエージェントは使用されません。
変更時
ページが変更されると、このエージェントによるレプリケーションが自動的にトリガーされます。これは主に Dispatcher フラッシュエージェントに使用されますが、リバースレプリケーションにも使用されます。
配布時
オンにすると、配布用にマークされたコンテンツの変更時に、エージェントがそのコンテンツを自動的にレプリケーションします。
オン / オフタイムに達しました
ページに対して定義されたオンタイムまたはオフタイムになると、自動レプリケーションをトリガーします(必要に応じて、ページをアクティベート/アクティベート解除します)。これは主に Dispatcher フラッシュエージェントに使用されます。
受信時
オンにすると、レプリケーションイベントを受信するたびにエージェントがチェーンレプリケーションをおこないます。
ステータス更新がありません
オンにすると、エージェントはレプリケーションステータスの更新を強制しません。
バージョン管理がありません
オンにすると、エージェントはアクティベートされたページのバージョン管理を強制しません。
MSSL を使用してレプリケーションエージェントをパブリッシュインスタンスに接続する方法については、相互 SSL を使用したレプリケーションを参照してください。
オーサー環境の「ツール」タブから、オーサー環境(作成者のエージェント)またはパブリッシュ環境(発行のエージェント)にあるレプリケーションエージェントを設定できます。次の手順は、オーサー環境用のエージェントの設定方法を示していますが、どちらの環境にも使用できます。
Dispatcher がオーサーインスタンスまたはパブリッシュインスタンスの HTTP 要求を処理する場合は、レプリケーションエージェントからの HTTP 要求に PATH ヘッダーが含まれている必要があります。次の手順に加えて、クライアントヘッダーの Dispatcher のリストに PATH ヘッダーを追加する必要があります(/clientheaders(クライアントヘッダー)に関するページを参照してください)。
AEM の「ツール」タブにアクセスします。
「レプリケーション」(フォルダーを開くための左側のウィンドウ)をクリックします。
「作成者のエージェント」(左側または右側のウィンドウ)をダブルクリックします。
適切なエージェント名(リンク)をクリックして、そのエージェントの詳細情報を表示します。
「編集」をクリックして設定ダイアログを開きます。
デフォルトのインストールに適した値を指定する必要があります。値を変更したら、「OK」をクリックして値を保存します(個々のパラメーターについて詳しくは、レプリケーションエージェント - 設定パラメーターを参照してください)。
AEM の標準インストールでは、admin
をデフォルトのレプリケーションエージェント内のトランスポート資格情報のユーザーとして指定します。
このユーザーを、必要なパスをレプリケーションする権限を持つ、サイト固有のレプリケーションのユーザーアカウントに変更する必要があります。
リバースレプリケーションは、パブリッシュインスタンスで生成されたユーザーコンテンツをオーサーインスタンスに戻すために使用されます。この機能は、通常はアンケート調査や登録フォームなどで使用されます。
ほとんどのネットワークトポロジは、セキュリティ上の理由により、「非武装地帯(DMZ)」(インターネットなどの信頼できないネットワークに外部サービスを公開するサブネットワーク)からの接続を許可しません。**
通常、パブリッシュ環境は DMZ にあるので、コンテンツをオーサー環境に戻すには、オーサーインスタンスから接続を開始する必要があります。そのためには、次のものを使用します。
AEM Communities では、パブリッシュインスタンス上のユーザー生成コンテンツにレプリケーションを使用しません。コミュニティコンテンツのストレージを参照してください。
そのためには、次のものが必要です。
オーサー環境のリバースレプリケーションエージェント これは、パブリッシュ環境のアウトボックスから情報を収集するアクティブなコンポーネントとして機能します。
リバースレプリケーションを使用する場合は、このエージェントをアクティベートします。
パブリッシュ環境(アウトボックス)のリバースレプリケーションエージェント これは「アウトボックス」として機能する受動的な要素です。オーサー環境でエージェントが収集する場所から、ユーザー入力がここに配置されます。
コンテンツのみがレプリケートされます。ユーザーデータ(ユーザー、ユーザーグループ、ユーザープロファイル)はレプリケートされません。
複数のパブリッシュインスタンス間でユーザーデータを同期させるには、ユーザーの同期を有効化します。
インストール時には、localhost のポート 4503 で実行されているパブリッシュインスタンスにコンテンツをレプリケートするデフォルトエージェントが既に設定されています。
その他のパブリッシュインスタンスへのコンテンツレプリケーションを設定するには、新しいレプリケーションエージェントを作成し、設定する必要があります。
AEM の「ツール」タブを開きます。
「レプリケーション」を選択し、左側のパネルで「作成者のエージェント」を選択します。
「新規」を選択します。
「タイトル」と「名前」を設定し、「レプリケーションエージェント」を選択します。
「作成」をクリックして新しいエージェントを作成します。
新しいエージェント項目をダブルクリックして、設定パネルを開きます。
「編集」をクリックします。エージェントの設定ダイアログが開きます。「シリアル化の種類」には既に「デフォルト」が定義されているので、そのままにしてください。
「設定」タブで、次のように設定します。
「有効」をアクティブにします。
「説明」を入力します。
「再試行遅延」を 60000
に設定します。
シリアル化のタイプはDefault
のままにします。
「トランスポート」タブで、次のように設定します。
新しいパブリッシュインスタンスに必要な URI を入力します。次に例を示します。
https://localhost:4504/bin/receive
.
レプリケーションに使用する、サイト固有のユーザーアカウントを入力します。
必要に応じて、その他のパラメーターを設定できます。
「OK」をクリックして設定を保存します。
次に、オーサー環境でページを更新および公開して操作をテストできます。
更新された内容は、前述の手順で設定したすべてのパブリッシュインスタンスに表示されます。
問題が発生した場合は、オーサーインスタンスでログを確認できます。必要な詳細レベルに応じて、前述の エージェント設定 ダイアログを使用して、ログレベル を Debug
に設定することもできます。
この設定を「エージェントユーザー ID」と一緒に使用すると、個々のパブリッシュ環境にレプリケーションする別のコンテンツを選択できます。それぞれのパブリッシュ環境に対して、次の手順を実行します。
デフォルトエージェントはインストールに付属しています。ただし、一部の設定については調整が必要です。新しいエージェントを定義する場合も同様です。
AEM の「ツール」タブを開きます。
「導入」をクリックします。
レプリケーションを選択した後、パブリッシュ環境のエージェントを選択してください。
Dispatcher フラッシュ項目をダブルクリックして、概要を開きます。
「編集」をクリックします。エージェントの設定ダイアログが開きます。
「設定」タブで、次のように設定します。
「有効」をアクティブにします。
「説明」を入力します。
シリアル化のタイプを Dispatcher Flush
のままにするか、またはエージェントを新規作成する場合に同様の設定を行います。
(オプション)エイリアスの更新を選択して、Dispatcher に対するエイリアスまたはバニティーパスの無効化要求を有効にします。
「トランスポート」タブで、次のように設定します。
新しいパブリッシュインスタンスに必要な URI を入力します。次に例を示します。
https://localhost:80/dispatcher/invalidate.cache
.
レプリケーションに使用する、サイト固有のユーザーアカウントを入力します。
必要に応じて、その他のパラメーターを設定できます。
Dispatcher フラッシュエージェントの場合、「URI」プロパティは、パスに基づく virtualhost エントリを使用してファームを区別する場合にのみ使用されます。このフィールドを使用して、無効にするファームをターゲット設定してください。例えば、ファーム #1 の仮想ホストは www.mysite.com/path1/*
で、ファーム #2 の仮想ホストは www.mysite.com/path2/*
です。この場合、/path1/invalidate.cache
の URL を使用して最初のファームをターゲット設定し、/path2/invalidate.cache
を使用して 2 つ目のファームをターゲット設定できます。
推奨されるデフォルトのコンテキスト以外のコンテキストに AEM をインストールした場合は、「拡張」タブで HTTP ヘッダーを設定する必要があります。
「OK」をクリックして、変更を保存します。
「ツール」タブに戻ります。ここから Dispatcher フラッシュエージェント(発行のエージェント)をアクティベートできます。
Dispatcher フラッシュレプリケーションエージェントは、オーサーではアクティブではありません。同等の URI(例:https://localhost:4503/etc/replication/agents.publish/flush.html
)を使用すると、パブリッシュ環境で同じページにアクセスできます。
etc/replication
ノードに対するユーザーまたはグループのページの権限を使用して、レプリケーションエージェントの設定に使用するページへのアクセスを制御できます。
このような権限の設定は、例えば Web サイトコンソールやサイドキックのオプションからコンテンツをレプリケーションするユーザーには影響を及ぼしません。レプリケーションフレームワークでは、ページのレプリケーション時に、現在のユーザーの「ユーザーセッション」を使用してレプリケーションエージェントにアクセスしません。
レプリケーションエージェントの作成は、/etc/replication
リポジトリの場所でのみサポートされます。関連する ACL を正しく処理するには、これが必要です。ツリーの別の場所にレプリケーションエージェントを作成すると、不正アクセスにつながる可能性があります。
CRXDE Lite を使用して、レプリケーションエージェントの様々なパラメーターを設定できます。
/etc/replication
に移動すると、次の 3 つのノードがあります。
agents.author
agents.publish
treeactivation
2 つの agents
は、適切な環境に関する設定情報を保持し、その環境が実行中の場合にのみアクティブになります。例えば、agents.publish
は、パブリッシュ環境でのみ使用されます。次のスクリーンショットは、AEM WCM に含まれる、オーサー環境のパブリッシュエージェントを示しています。
レプリケーションエージェントを監視するには:
AEM の「ツール」タブにアクセスします。
「レプリケーション」をクリックします。
適切な環境のエージェントへのリンクをダブルクリックします(左右いずれかのウィンドウ)。例えば、「オーサーのエージェント」などです。
ウィンドウが開き、オーサー環境のすべてのレプリケーションエージェントの概要が、それぞれのターゲットとステータスを含めて表示されます。
適切なエージェント名(リンク)をクリックして、そのエージェントの詳細情報を表示します。
ここでは、以下のことができます。
エージェントが有効かどうかを確認。
レプリケーションのターゲットを確認。
レプリケーションキューが現在アクティブ(有効)かどうかを確認。
キュー内に項目が含まれているかどうかを確認。
更新または消去して、キューエントリの表示を更新。これは、キューに出入りする項目の確認に役立ちます。
ログを表示して、レプリケーションエージェントによるアクションのログにアクセス。
ターゲットインスタンスへの接続をテスト。
必要に応じて、任意のキュー項目で強制的に再試行。
パブリッシュインスタンスのリバースレプリケーションアウトボックスには、「接続をテスト」リンクは使用しないでください。
アウトボックスクエリ用にレプリケーションテストが実行されると、リバースレプリケーションのたびに、テストレプリケーションより古い項目がすべて再処理されます。
そのような項目がキュー内に既に存在する場合は、次の XPath JCR クエリを使用して検索し、削除する必要があります。
/jcr:root/var/replication/outbox//*[@cq:repActionType='TEST']
バッチレプリケーションは、個々のページやアセットをレプリケートしませんが、時間やサイズに基づいて、2 つの最初のしきい値がトリガーされるのを待ちます。
次に、すべてのレプリケーション項目を 1 つのパッケージに圧縮し、単一のファイルとしてパブリッシャーにレプリケートします。
パブリッシャーは、すべての項目を展開し、保存して作成者に報告します。
http://serveraddress:serverport/siteadmin
に移動します。http://serveraddress:serverport/etc/replication/agents.author/publish.html
に移動して、デフォルトのパブリッシュレプリケーションエージェントに到達することもできます。Enable Batch Mode
- バッチレプリケーションモードを有効または無効にしますMax Wait Time
- バッチリクエストが開始されるまでの最大待機時間(秒単位)。デフォルト値は 2 秒です。Trigger Size
- このサイズの上限に達したときにバッチレプリケーションを開始しますトラブルシューティングの詳細については、レプリケーションのトラブルシューティングページを参照してください。