専用エグレス IP アドレス

専用のエグレス IP アドレスを設定して使用する方法を説明します。このアドレスを使用すると、AEM からの送信接続を専用の IP から発信できます。

専用のエグレス IP アドレスとは

専用のエグレス IP アドレスを使用すると、AEM as a Cloud Service からのリクエストで専用の IP アドレスを使用でき、外部サービスはこの IP アドレスで受信リクエストをフィルタリングできるようになります。 フレキシブルエグレスポートと同様、専用のエグレス IP を使用すると非標準ポートに出力できます。

Cloud Manager プログラムでは、単一の ​ネットワークインフラストラクチャタイプのみを持つことができます。 次のコマンドを実行する前に、専用エグレス IP アドレスが AEM as a Cloud Service に最も適切なタイプのネットワークインフラストラクチャであることを確認します。

前提条件

Cloud Manager API を使用して専用エグレス IP アドレスを設定する場合は、次が必要です。

詳しくは、次の Cloud Manager API 資格情報の設定、構成、取得方法、およびそれらを使用した Cloud Manager API 呼び出しの作成方法に関するチュートリアルを参照してください。

このチュートリアルでは、curl を使用して Cloud Manager API を設定します。 指定された curl コマンドは、Linux/macOS 構文を想定しています。 Windows のコマンドプロンプトを使用する場合は、\ 改行文字を ^ で置換します。

プログラムの専用のエグレス IP アドレスを有効にする

まず、AEM as a Cloud Service で専用のエグレス IP アドレスを有効にして設定します。

Cloud Manager

Cloud Manager を使用すると、専用エグレス IP アドレスを有効にすることができます。次の手順では、Cloud Manager を使用して AEM as a Cloud Serviceで専用エグレス IP アドレスを有効にする方法の概要について説明します。

  1. Cloud Manager ビジネスオーナーとして Adobe Experience Manager Cloud Manager にログインします。

  2. 目的のプログラムに移動します。

  3. 左側のメニューで、サービス/ネットワークインフラストラクチャ ​に移動します。

  4. ネットワークインフラストラクチャを追加」ボタンを選択します。

    ネットワークインフラストラクチャを追加

  5. ネットワークインフラストラクチャを追加 ​ダイアログで、「専用エグレス IP アドレス」オプションを選択し、「地域」を選択して専用エグレス IP アドレスを作成します。

    専用エグレス IP アドレスを追加

  6. 保存」を選択して、専用エグレス IP アドレスの追加を確認します。

    専用エグレス IP アドレスの作成を確認

  7. ネットワークインフラストラクチャが作成され、準備完了 ​とマークされるまで待ちます。このプロセスには最大 1 時間かかる場合があります。

    専用エグレス IP アドレスの作成ステータス

専用エグレス IP アドレスを作成したので、以下の説明に従って Cloud Manager API を使用して設定できます。

Cloud Manager API

Cloud Manager API を使用すると、専用エグレス IP アドレスを有効にすることができます。次の手順では、Cloud Manager API を使用して AEM as a Cloud Service で専用エグレス IP アドレスを有効にする方法の概要について説明します。

  1. まず、Cloud Manager API listRegions 操作を使用して、詳細ネットワークが必要な地域を決定します。 region name は後続の Cloud Manager API 呼び出しを行うために必要です。 通常、実稼動環境が存在する地域が使用されます。

    Cloud Manager で、環境の詳細の下にある AEM as a Cloud Service 環境の地域を見つけます。 Cloud Manager に表示される地域名は、Cloud Manager API で使用される地域コードにマッピングできます。

    listRegions HTTP リクエスト

    code language-shell
    $ curl -X GET https://cloudmanager.adobe.io/api/program/{programId}/regions \
        -H 'x-gw-ims-org-id: <ORGANIZATION_ID>' \
        -H 'x-api-key: <CLIENT_ID>' \
        -H 'Authorization: Bearer <ACCESS_TOKEN>' \
        -H 'Content-Type: application/json'
    
  2. Cloud Manager API の createNetworkInfrastructure 操作を使用して、Cloud Manager プログラム用の専用のエグレス IP アドレスを有効にします。 Cloud Manager API の listRegions 操作から取得した適切な region コードを使用します。

    createNetworkInfrastructure HTTP リクエスト

    code language-shell
    $ curl -X POST https://cloudmanager.adobe.io/api/program/{programId}/networkInfrastructures \
        -H 'x-gw-ims-org-id: <ORGANIZATION_ID>' \
        -H 'x-api-key: <CLIENT_ID>' \
        -H 'Authorization: Bearer <ACCESS_TOKEN>' \
        -H 'Content-Type: application/json' \
        -d '{ "kind": "dedicatedEgressIp", "region": "va7" }'
    

    Cloud Manager プログラムがネットワークインフラストラクチャをプロビジョニングするまで 15 分待ちます。

  3. プログラムが、Cloud Manager API の getNetworkInfrastructure 操作を使用して​ 専用エグレス IP アドレス ​の設定を完了したことを、前の手順で createNetworkInfrastructure HTTP リクエストから返された id を使用して確認します。

    getNetworkInfrastructure HTTP リクエスト

    code language-shell
    $ curl -X GET https://cloudmanager.adobe.io/api/program/{programId}/networkInfrastructure/{networkInfrastructureId} \
        -H 'x-gw-ims-org-id: <ORGANIZATION_ID>' \
        -H 'x-api-key: <CLIENT_ID>' \
        -H 'Authorization: Bearer <ACCESS_TOKEN>' \
        -H 'Content-Type: application/json'
    

    HTTP 応答に、準備完了 ​の​ ステータス ​が含まれていることを確認します。 まだ準備完了ではない場合は、数分ごとにステータスを再確認します。

専用エグレス IP アドレスを作成したので、以下の説明に従って Cloud Manager API を使用して設定できます。

環境ごとの専用のエグレス IP アドレスプロキシの設定

  1. Cloud Manager API の enableEnvironmentAdvancedNetworkingConfiguration 操作を使用して、各 AEM as a Cloud Service 環境で​ 専用のエグレス IP アドレス ​設定を行います。

    enableEnvironmentAdvancedNetworkingConfiguration HTTP リクエスト

    code language-shell
    $ curl -X PUT https://cloudmanager.adobe.io/api/program/{programId}/environment/{environmentId}/advancedNetworking \
        -H 'x-gw-ims-org-id: <ORGANIZATION_ID>' \
        -H 'x-api-key: <CLIENT_ID>' \
        -H 'Authorization: Bearer <ACCESS_TOKEN>' \
        -H 'Content-Type: application/json' \
        -d @./dedicated-egress-ip-address.json
    

    dedicated-egress-ip-address.json で JSON パラメーターを定義し、... -d @./dedicated-egress-ip-address.json を介して curl に提供します。

    サンプルの dedicated-egress-ip-address.json をダウンロードします。 このファイルは例に過ぎません。enableEnvironmentAdvancedNetworkingConfiguration に記載されているオプション/必須フィールドに基づいて、必要に応じてファイルを設定します。

    code language-json
    {
        "nonProxyHosts": [
            "example.net",
            "*.example.org",
        ],
        "portForwards": [
            {
                "name": "mysql.example.com",
                "portDest": 3306,
                "portOrig": 30001
            },
            {
                "name": "smtp.sendgrid.net",
                "portDest": 465,
                "portOrig": 30002
            }
        ]
    }
    

    専用のエグレス IP アドレス設定の HTTP 署名は、オプションの nonProxyHosts 設定もサポートするという点のみ、柔軟なエグレスポートと異なります。

    nonProxyHosts は、ポート 80 または 443 が専用のエグレス IP ではなくデフォルトの共有 IP アドレス範囲を介してルーティングされるホストのセットを宣言します。 共有 IP を介して送信されたトラフィックがアドビによって自動的に最適化されるので、nonProxyHosts が役立つ場合があります。

    portForwards マッピングでは、詳細ネットワークは次の転送ルールを定義します。

    table 0-row-5 1-row-5
    プロキシホスト プロキシポート 外部ホスト 外部ポート
    AEM_PROXY_HOST portForwards.portOrig portForwards.name portForwards.portDest
  2. 各環境で、Cloud Manager API の getEnvironmentAdvancedNetworkingConfiguration 操作を使用して送信ルールが有効であることを検証します。

    getEnvironmentAdvancedNetworkingConfiguration HTTP リクエスト

    code language-shell
    $ curl -X GET https://cloudmanager.adobe.io/api/program/{programId}/environment/{environmentId}/advancedNetworking \
        -H 'x-gw-ims-org-id: <ORGANIZATION_ID>' \
        -H 'x-api-key: <CLIENT_ID>' \
        -H 'Authorization: <YOUR_TOKEN>' \
        -H 'Content-Type: application/json'
    
  3. 専用のエグレス IP アドレス設定は、Cloud Manager API の enableEnvironmentAdvancedNetworkingConfiguration 操作を使用して更新できます。 enableEnvironmentAdvancedNetworkingConfigurationPUT 操作であるため、この操作を呼び出すたびにすべてのルールを提供する必要があることに注意してください。

  4. ホスト:p{programId}.external.adobeaemcloud.com で DNS リゾルバー(DNSChecker.org など)を使用するか、コマンドラインから dig を実行して、専用のエグレス IP アドレス ​を取得します。

    code language-shell
    $ dig +short p{programId}.external.adobeaemcloud.com
    

    ホスト名を pinged にすることはできません。これはエグレスであり、イングレス​ ではない ​からです。

    専用エグレス IP アドレスは、プログラム内のすべての AEM as a Cloud Service 環境で共有されることに注意してください。

  5. これで、カスタムの AEM コードおよび設定で専用エグレス IP アドレスを使用できるようになりました。多くの場合、専用のエグレス IP アドレスを使用する場合、外部サービスの AEM as a Cloud Service 接続先は、この専用 IP アドレスからのトラフィックのみを許可するように設定されます。

専用のエグレス IP アドレスを使用した外部サービスへの接続

専用のエグレス IP アドレスを有効にすると、AEM のコードと設定で、専用のエグレス IP を使用して外部サービスを呼び出すことができます。 外部呼び出しには、AEM での処理方法が 2 種類あります。

  1. 外部サービスへの HTTP/HTTPS 呼び出し
    • 標準の 80 または 443 ポート以外のポートで動作するサービスに対して行われる HTTP/HTTPS 呼び出しが含まれます。
  2. 外部サービスへの HTTP/HTTPS 以外の呼び出し
    • HTTP 以外の呼び出し(メールサーバーとの接続、SQL データベース、HTTP/HTTPS 以外のプロトコルで実行されるサービスなど)が含まれます。

標準ポート(80/443)上の AEM からの HTTP/HTTPS リクエストはデフォルトで許可されていますが、以下に説明するように適切に設定されていない場合は、専用エグレス IP アドレスを使用しません。

TIP
ルーティングルールの完全なセットについては、AEM as a Cloud Service の専用エグレス IP アドレスのドキュメントを参照してください。

HTTP/HTTPS

AEM から HTTP/HTTPS 接続を作成するときに、専用のエグレス IP アドレスを使用すると、HTTP/HTTPS 接続は専用のエグレス IP アドレスを使用して AEM から自動的にプロキシされます。 HTTP/HTTPS 接続をサポートするために、追加のコードや設定は必要ありません。

コードの例

HTTP/HTTPS

HTTP/HTTPS

HTTP/HTTPS プロトコルを使用して、AEM as a Cloud Service から外部サービスへの HTTP/HTTPS 接続を作成する Java™ コードの例。

外部サービスへの HTTP/HTTPS 以外の接続

AEM から HTTP/HTTPS 以外の接続を作成する場合(例:SQL、SMTP など)、接続は AEM から提供される特別なホスト名を使用して行う必要があります。

変数名
使用方法
Java™ コード
OSGi 設定
AEM_PROXY_HOST
HTTP/HTTPS 以外の接続用のプロキシホスト
System.getenv("AEM_PROXY_HOST")
$[env:AEM_PROXY_HOST]

外部サービスへの接続は、その後、AEM_PROXY_HOST とマッピングされたポート(portForwards.portOrig)を使用しで呼び出されます。次に、AEM はこれをマッピングされた外部ホスト名(portForwards.name)とポート(portForwards.portDest)にルーティングします。

プロキシホスト
プロキシポート
外部ホスト
外部ポート
AEM_PROXY_HOST
portForwards.portOrig
portForwards.name
portForwards.portDest

コードの例

JDBC DataSourcePool を使用した SQL 接続

JDBC DataSourcePool を使用した SQL 接続

AEM JDBC データソースプールを設定して外部 SQL データベースに接続する Java™コード例。

Java API を使用した SQL 接続

Java™ API を使用した SQL 接続

Java™ の SQL API を使用して外部 SQL データベースに接続する Java™ コードの例。

仮想プライベートネットワーク(VPN)

メールサービス

外部のメールサービスへの接続に AEM を使用する OSGi 設定例です。

recommendation-more-help
4859a77c-7971-4ac9-8f5c-4260823c6f69