AEM as a Cloud Serviceの専用エグレス IPによる低速な外部API呼び出しのトラブルシューティング
この記事では、専用のエグレス IPでアドバンストネットワークを使用する場合に、Adobe Experience Manager as a Cloud Service(AEMaaCS)から行われた外部API呼び出しの高い遅延を診断および解決する方法について説明します。 一般的な原因と、パフォーマンスを向上させるための推奨される最適化について説明します。
説明 description
環境
- 高度なネットワークと専用のエグレス IPが有効になっているAdobe Experience Manager as a Cloud Service(AEMaaCS)。
- Adobe Experience Manager Cloud Manager
症状
AEMaaCSから作成された外部API呼び出しは、専用のエグレス IPを介してルーティングされた場合、大幅に高い遅延を示します。 同じAPI エンドポイント(AEM以外)への直接呼び出しは素早く返されますが、専用のエグレス IPを使用するAEMからの呼び出しは数倍遅くなる可能性があります。 この遅延の増加は、複数のAPI呼び出しを行うページで特に顕著で、ページの読み込み時間が遅くなります。 APIの応答時間を測定するために使用されるカスタムコードまたはサーブレットは、この動作を確認します。
原因
遅延の増加の主な原因は、各API呼び出しに対して新しい接続を確立する際のTLS ハンドシェイクのオーバーヘッドです。 接続プールが実装されていない場合、各リクエストには完全なハンドシェイクコストが発生します。 専用のエグレス IPと高度なネットワーク設定を使用すると、ネットワークパスの遅延が増加する場合があります。
解決策 resolution
問題を解決するには、次の手順に従います。
- アプリケーションコードで、外部APIへのアウトバウンド HTTP リクエストに接続プールが使用されていることを確認します。 これにより、各リクエストに対して新しい接続とTLS ハンドシェイクを確立するオーバーヘッドを削減できます。
- カスタムコードまたはサーブレットを確認して、AEMaaCSのAdobe HTTP クライアントガイドラインに従って接続プールが実装されていることを確認します。
- AEM オーサー環境またはパブリッシュ環境から、外部API エンドポイントに対して直接curl リクエストを実行し、ベースラインネットワークの遅延を測定します。
- 専用エグレス IPが有効になっている場合とない場合の応答時間を比較して、追加の遅延が高度なネットワーク設定に固有かどうかを判断します。
- フェーズごとの分類ツール(詳細な出力を含むcurlなど)を使用して、TLS ハンドシェイクが遅延の主な原因であるかどうかを特定します。
- Cloud Managerで、Advanced Networkingと専用のエグレス IPが有効になっていることを確認します。
- アウトバウンド HTTP/HTTPS接続で、AEMaaCS用に設定されたプラットフォームシステムプロキシを使用し、カスタムコードがこれらの設定をバイパスしないことを確認します。
- 接続プールを実装し、ネットワーク設定を確認した後、改善のためにAPI応答時間を監視します。
- 大幅な遅延が続く場合は、ネットワークまたはインフラストラクチャのレベルでさらに調査するために、Adobe サポートにエスカレーションすることを検討してください。
- 変更を加えた後、AEMからのアウトバウンド API呼び出しを再テストして、応答時間の改善と専用エグレス IPの一貫した使用を確認します。
recommendation-more-help
experience-cloud-kcs-help-kbarticles