チュートリアル: Load Balancer として Azure Application Gateway を使用して、Azure に WebLogic Server クラスターを移行する

このチュートリアルでは、Azure Application Gateway と共に WebLogic Server (WLS) をデプロイするプロセスについて説明します。 Key Vault を作成して、TLS/SSL 証明書を Key Vault に格納し、TLS/SSL 終端にその証明書を使用する具体的な手順について説明します。 これらの要素はすべて個別に詳しく文書化されていますが、このチュートリアルでは、これらのすべての要素を連携させて、Azure 上の WLS 向けのシンプルだが強力な負荷分散ソリューションを作成する具体的な方法について説明します。

Diagram showing the relationship between WLS, App Gateway, and Key Vault.

負荷分散は、Oracle WebLogic Server クラスターの Azure への移行において不可欠な部分です。 最も簡単な解決策は、Azure Application Gateway の組み込みサポートを使用することです。 App Gateway は、Azure での WebLogic クラスターのサポートの一部として含まれています。 Azure での WebLogic クラスターのサポートの概要については、「Azure の Oracle WebLogic Server とは」を参照してください。

このチュートリアルでは、次の作業を行う方法について説明します。

  • App Gateway に TLS/SSL 証明書を提供する方法を選択する
  • Azure Application Gateway と共に WebLogic Server を Azure にデプロイする
  • WLS と App Gateway が正常にデプロイされたことを確認する

前提条件

  • UNIX のようなコマンド ライン環境を実行しているコンピューター上の OpenSSL

    証明書の管理に使用できるツールは他にもありますが、このチュートリアルでは OpenSSL を使用します。 OpenSSL は、Ubuntu など、多くの GNU または Linux ディストリビューションにバンドルされています。

  • 有効な Azure サブスクリプション。

    • Azure サブスクリプションをお持ちでない場合は、無料アカウントを作成してください。
  • Oracle WebLogic Server Azure アプリケーション」に記載されている、いずれかの WLS Azure アプリケーションをデプロイできること。

移行のコンテキスト

オンプレミスの WLS インストールと Azure Application Gateway の移行について考慮すべきことをいくつか次に示します。 このチュートリアルの手順は、Azure 上の WebLogic Server クラスターの前にロードバランサーを配置する最も簡単な方法ですが、他にも多くの方法があります。 次の一覧に、その他の考慮事項をいくつか示します。

Application Gateway と共に WebLogic Server を Azure にデプロイする

このセクションでは、クラスター ノードのロード バランサーとして自動的に作成される Azure Application Gateway と共に WLS クラスターをプロビジョニングする方法について示します。 Application Gateway は、指定された TLS/SSL 証明書を TLS/SSL 終端に使用します。 Application Gateway での TLS/SSL 終端の詳細については、「Application Gateway での TLS 終了とエンド ツー エンド TLS の概要」を参照してください。

WLS クラスターと Application Gateway を作成するには、次の手順を実行します。

まず、Oracle のドキュメントで説明されているように、WebLogic サーバーの構成済みまたは動的なクラスターのデプロイ プロセスを開始しますが、次に示すように Azure Application Gatewayにアクセスしたら、このページに戻ってください。

Azure portal screenshot showing the Azure Application Gateway.

App Gateway に TLS/SSL 証明書を提供する方法を選択する

TLS/SSL 証明書をアプリケーション ゲートウェイに提供する方法はいくつかありますが、選択できるオプションは 1 つだけです。 このセクションでは、デプロイに最適なものを選択できるように、それぞれのオプションについて説明します。

オプション 1: TLS/SSL 証明書をアップロードする

このオプションは、App Gateway が公的インターネットが接する運用ワークロードや、TLS/SSL を必要とするイントラネットのワークロードに適しています。 このオプションを選択すると、Azure Key Vault は App Gateway で使用される TLS/SSL 証明書を含むように自動的にプロビジョニングされます。

既存のサイン済み TLS/SSL 証明書をアップロードするには、次の手順に従います。

  1. 証明書発行者の手順に従って、パスワードで保護された TLS/SSL 証明書を作成し、証明書の DNS 名を指定します。 ワイルドカードと単一名の証明書を選択する方法については、このドキュメントでは説明しません。 ここでは、どちらかが機能します。
  2. PFX ファイル形式を使用して発行者から証明書をエクスポートし、ローカル コンピューターにダウンロードします。 発行者が PFX としてのエクスポートをサポートしない場合は、多くの証明書の形式を PFX 形式に変換するツールが用意されています。
  3. [Azure Application Gateway] セクションを選択します。
  4. [Azure Application Gateway に接続] で、[はい]を選択します。
  5. [SSL 証明書のアップロード] を選択します。
  6. [SSL 証明書] フィールドのファイル ブラウザー アイコンを選択します。 ダウンロードした PFX 形式の証明書に移動し、[開く] を選択します。
  7. [パスワード] ボックスと [パスワードの確認] ボックスに証明書のパスワードを入力します。
  8. パブリック トラフィックを、マネージド サーバーのノードに直接拒否するかどうかを選択します。 [はい] を選択すると、マネージド サーバーにアクセスできるのは App Gateway を通した場合のみになります。

DNS 構成の選択

TLS/SSL 証明書は、証明書の発行者により発行されるときに DNS ドメイン名に関連付けられます。 このセクションの手順に従って、証明書用の DNS 名でデプロイを構成してください。 すでに作成済みの DNS ゾーンを使用することも、デプロイでご自分用に作成することもできます。 続行するには、「DNS 構成」セクションを選択します。

既存の Azure DNS ゾーンを使用する

App Gateway で既存の Azure DNS ゾーンを使用するには、次の手順に従います。

  1. [カスタム DNS エイリアスの構成] で、[はい] を選択します。
  2. [既存の Azure DNS ゾーンを使用する] の横で、[はい]を選択します。
  3. [DNS ゾーン名] の横にある Azure DNS ゾーンの名前を入力します。
  4. 前の手順の Azure DNS ゾーンを含むリソース グループを入力します。

デプロイで新しい Azure DNS ゾーンを作成できるようにする

App Gateway で使用する Azure DNS ゾーンを作成するには、次の手順に従います。

  1. [カスタム DNS エイリアスの構成] で、[はい] を選択します。
  2. [既存の Azure DNS ゾーンを使用する] の隣で、[いいえ] を選択します。
  3. [DNS ゾーン名] の横にある Azure DNS ゾーンの名前を入力します。 新しい DNS ゾーンは、WLS と同じリソース グループに作成されます。

最後に、子 DNS ゾーンの名前を指定します。 デプロイでは、管理コンソール用と App Gateway 用の 2 つの子 DNS ゾーンを作成します。 たとえば、DNS ゾーン名が ' contoso.net ' の場合は、値として「admin」と「app」を入力できます。 管理コンソールは、'admin.contoso.net' で使用でき、app gateway は 'app.contoso.net' で利用できます。 「Azure DNS における DNS ゾーンの委任」で説明されているように DNS 委任のセットアップは忘れないでください。

Azure portal screenshot showing fields for child DNS zones.

App Gateway への TLS/SSL 証明書の提供に関するその他のオプションについては、次のセクションで詳しく説明します。 選択したオプションに問題がなければ、「デプロイの続行」セクションに進むことができます。

オプション 2 : Azure Key Vault を識別する

このオプションは、提供される TLS/SSL 証明書に応じて、運用ワークロードまたは非運用ワークロードに適しています。 デプロイで Azure Key Vault を作成しない場合は、既存のものを特定するか、自分で作成することができます。 このオプションでは、次へ進む前に証明書とパスワードを Azure Key Vault に保存する必要があります。 使用する既存の Key Vault がある場合は、「TLS/SSL 証明書の作成」セクションに進んでください。 そうでない場合は、次の手順に進みます。

Azure Key Vault を作成する

このセクションでは、Azure portal を使用して Azure Key Vault を作成する方法について説明します。

  1. Azure portal メニューまたは [ホーム] ページで、[リソースの作成] を選択します。
  2. [検索] ボックスに「Key Vault」と入力します。
  3. 結果リストから、"Key Vault" を選択します。
  4. [Key Vault] セクションで、[作成] を選択します。
  5. [キー コンテナーの作成] セクションで、次の情報を入力します。
    • [サブスクリプション]: サブスクリプションを選択します。
    • [リソース グループ] で、[新規作成] を選択し、リソース グループ名を入力します。 Key Vault 名を書き留めておきます。 "これは、後で WLS をデプロイするときに必要になります。"
    • Key Vault 名: 一意の名前にする必要があります。 Key Vault 名を書き留めておきます。 "これは、後で WLS をデプロイするときに必要になります。"

    Note

    [リソース グループ][Key Vault 名] の両方に同じ名前を使用できます。

    • [場所] プルダウン メニューで場所を選択します。
    • 他のオプションは既定値のままにしておきます。
  6. [次へ: アクセス ポリシー] を選択します。
  7. [アクセスの有効化][Azure Resource Manager (テンプレートの展開用)] を選択します。
  8. [確認および作成] を選択します。
  9. [作成] を選択します。

Key Vault の作成は非常に負荷の低い操作であり、通常は 2 分未満で完了します。 デプロイが完了したら、[リソースに移動] を選択し、次のセクションに進みます。

TLS/SSL 証明書を作成する

このセクションでは、Azure 上に WebLogic サーバーと共にデプロイされた Application Gateway での使用に適した形式で自己署名 TLS/SSL 認定資格証を作成する方法について説明します。 この証明書には、空でないパスワードが必要です。 空でないパスワードがある .pfx 形式の有効な TLS/SSL 証明書が既にある場合は、このセクションをスキップし、次のセクションに進むことができます。 空でないパスワードがある既存の有効な TLS/SSL 証明書が .pfx 形式でない場合は、次のセクションに進む前に、まずそれを .pfx ファイルに変換します。 それ以外の場合は、コマンド シェルを開いて、以下のコマンドを入力します。

Note

このセクションでは、証明書をシークレットとして Key Vault に格納する前に Base 64 でエンコードする方法について説明します。 これは、WebLogic Server と Application Gateway を作成する、基になる Azure デプロイで必要となります。

次の手順に従って、証明書を作成して Base 64 でエンコードします。

  1. RSA PRIVATE KEY を作成します

    openssl genrsa 2048 > private.pem
    
  2. 対応する公開キーを作成します。

    openssl req -x509 -new -key private.pem -out public.pem
    

    OpenSSL ツールからプロンプトが表示されたら、いくつかの質問に答える必要があります。 これらの値は証明書に含まれます。 このチュートリアルでは自己署名証明書を使用するため、これらの値は無関係です。 次のリテラル値で構いません。

    1. [Country Name]\(国名\) には、2 文字のコードを入力します。
    2. [State or Province Name]\(州または都道府県\) には、「WA」と入力します。
    3. [Organization Name]\(組織名\) には、「Contoso」と入力します。 [Organizational Unit Name]\(組織単位名\) には、「billing」と入力します。
    4. [Common Name]\(共通名\) には、「Contoso」と入力します。
    5. [Email Address]\(メール アドレス\) には、「billing@contoso.com」と入力します。
  3. .pfx ファイルとして証明書をエクスポートします

    openssl pkcs12 -export -in public.pem -inkey private.pem -out mycert.pfx
    

    パスワードを 2 回入力します。 パスワードを書き留めておきます。 "これは、後で WLS をデプロイするときに必要になります。"

  4. mycert.pfx ファイルを Base 64 でエンコードします

    base64 mycert.pfx > mycert.txt
    

これで、Key Vault と、空でないパスワードのある有効な TLS/SSL 証明書を用意できたので、Key Vault に証明書を格納できます。

TLS/SSL 証明書を Key Vault に格納する

このセクションでは、前のセクションで作成した Key Vault に証明書とそのパスワードを格納する方法について説明します。

証明書を格納するには、次の手順に従います。

  1. Azure portal から、ページの上部にある検索バーにカーソルを置き、このチュートリアルで先ほど作成した Key Vault の名前を入力します。
  2. 自分の Key Vault が [リソース] 見出しの下に表示されます。 それを選択します。
  3. [設定] セクションで [シークレット] を選択します。
  4. [Generate/Import](生成/インポート) を選択します。
  5. [アップロード オプション] は、既定値のままにします。
  6. [名前] に、「myCertSecretData」または任意の名前を入力します。
  7. [値] に、mycert.txt ファイルの内容を入力します。 値の長さと改行の有無は、このテキスト フィールドでは問題になりません。
  8. 残りの値は既定値のままにし、[作成] を選択します。

証明書のパスワードを格納するには、次の手順に従います。

  1. [シークレット] ページに戻ります。 [Generate/Import](生成/インポート) を選択します。
  2. [アップロード オプション] は、既定値のままにします。
  3. [名前] に、「myCertSecretPassword」または任意の名前を入力します。
  4. [値] に、証明書のパスワードを入力します。
  5. 残りの値は既定値のままにし、[作成] を選択します。
  6. [シークレット] ページに戻ります。

Key Vault を識別する

これで、署名付きの TLS/SSL 証明書とそのパスワードをシークレットとして格納した Key Vault が作成されたので、「Azure Application Gateway」セクションに戻り、デプロイの Key Vault を特定します。

Azure portal screenshot showing Azure Key Vault fields.

  1. [Resource group name in current subscription containing the KeyVault]\(KeyVault を含む現在のサブスクリプションのリソース グループ名\) に、先ほど作成した Key Vault を含むリソース グループの名前を入力します。
  2. [Name of the Azure KeyVault containing secrets for the Certificate for SSL Termination]\(SSL 終端用の証明書のシークレットを含む Azure KeyVault の名前\) に、Key Vault の名前を入力します。
  3. [The name of the secret in the specified KeyVault whose value is the SSL Certificate Data]\(値が SSL 証明書データである、指定した KeyVault 内のシークレットの名前\) に、「myCertSecretData」または以前に入力した名前を入力します。
  4. [The name of the secret in the specified KeyVault whose value is the password for the SSL Certificate]\(値が SSL 証明書のパスワードである、指定した KeyVault 内のシークレットの名前\) に、「myCertSecretData」または以前に入力した名前を入力します。
  5. [確認および作成] を選択します。
  6. [作成] を選択します。 これにより、Key Vault 証明書を取得できることと、そのパスワードが Key Vault のパスワードとして格納した値と一致することが検証されます。 この検証手順が失敗した場合は、Key Vault のプロパティを見直して、証明書が正しく入力されたことと、パスワードが正しく入力されたことを確認します。
  7. [検証に成功しました] が表示されたら、[作成] を選択します。

これにより、WLS クラスターとそのフロントエンド Application Gateway の作成プロセスが開始されます。これには約 15 分かかる場合があります。 デプロイが完了したら、[リソース グループに移動] を選択します。 リソース グループ内のリソースの一覧から、myAppGateway を選択します。

TLS/SSL 証明書を App Gateway に提供するための最後のオプションについては、次のセクションで詳しく説明します。 選択したオプションに問題がなければ、「デプロイの続行」セクションに進むことができます。

オプション 3 : 己署名証明書を生成する

このオプションは、テストおよび開発のデプロイにのみ適しています。 このオプションを使用すると、Azure Key Vault と自己署名証明書の両方が自動的に作成され、App Gateway に証明書が提供されます。

これらの操作を実行するようにデプロイを要求するには、次の手順を使用します。

  1. Azure App Gateway」セションで、[自己署名証明書を生成する] を選択します。
  2. ユーザー割り当てマネージド ID を選択します。 これは、デプロイで Azure Key Vault と証明書を作成できるようにするために必要です。
  3. ユーザー割り当て済みマネージド ID をまだ持っていない場合は、[追加] を選択して、作成プロセスを開始します。
  4. ユーザー割り当てのマネージド ID を作成するには、「Azure portal を使用して、ユーザー割り当てのマネージド ID にロールを作成、一覧表示、削除、または割り当てる」の「ユーザー割り当てのマネージド ID を作成する」の手順に従います。 ユーザー割り当て済みマネージド ID を選択したら、ユーザー割り当て済みマネージド ID の横にあるチェックボックスがオンになっていることを確認します。

Azure portal screenshot showing fields for generating a self-signed certificate.

デプロイを継続する

これで、Oracle のドキュメントで説明されているように、WLS によるデプロイの他の側面に進むことができます。

WLS と App Gateway が正常にデプロイされたことを確認する

このセクションでは、WLS クラスターと Application Gateway が正常にデプロイされたことを迅速に確認する方法について説明します。

前のセクションの最後で [リソース グループに移動]myAppGateway を選択した場合は、その Application Gateway の概要ページが表示されています。 そうでない場合は、Azure portal の上部にあるテキスト ボックスに「myAppGateway」と入力し、表示された適切なものを選択して、このページを見つけることができます。 必ず、WLS クラスター用に作成したリソース グループ内のものを選択してください。 その後、次の手順を完了します。

  1. myAppGateway の概要ページの左ペインで、[監視] セクションまで下にスクロールし、[バックエンド正常性] を選択します。
  2. [読み込み中] メッセージが表示されなくなったら、バックエンド プール内のノードとして構成されているクラスターのノードを示すテーブルが画面の中央に表示されます。
  3. 各ノードの状態が [正常] と表示されていることを確認します。

リソースをクリーンアップする

WLS クラスターを引き続き使用する予定がない場合は、次の手順で Key Vault と WLS クラスターを削除します。

  1. 前のセクションで示したように、myAppGateway の概要ページにアクセスします。
  2. ページの上部にある [リソース グループ] テキストの下で、リソース グループを選択します。
  3. [リソース グループの削除] を選択します。
  4. 入力フォーカスは、[リソース グループ名を入力してください] というラベルのフィールドに設定されます。 要求に従ってリソース グループ名を入力します。
  5. これにより、[削除] ボタンが有効になります。 削除 ボタンを選択します。 この操作にはしばらく時間がかかりますが、削除の処理中に次の手順に進むことができます。
  6. TLS/SSL 証明書を Key Vault に格納する」セクションの最初の手順に従って、Key Vault を見つけます。
  7. 削除を選択します。
  8. 表示されるペインで、[削除] を選択します。

次のステップ

Azure 上で WLS を実行するためのオプションについて引き続き調べます。