チュートリアル: Oracle WebLogic Server をカスタム仮想ネットワーク内の Azure Kubernetes Service に移行する
このチュートリアルでは、Oracle WebLogic Server (WLS) on Azure Kubernetes Service (AKS) プランをデプロイし、コンシューマーのサブスクリプションのカスタム仮想ネットワークと統合する方法について説明します。 WLS on AKS プランでは、新しい仮想ネットワークを作成するか、既存のものを使うかを決めることができます。
このチュートリアルでは、次の作業を行う方法について説明します。
- カスタム仮想ネットワークを作成し、そのネットワーク内にインフラストラクチャを作成します。
- カスタムの仮想ネットワークで Oracle WebLogic Server on AKS を実行します。
- Azure Application Gateway を使ってロード バランサーとして Oracle WebLogic Server を公開します。
- 正常なデプロイを検証します。
前提条件
- Azure サブスクリプション。 Azure サブスクリプションをお持ちでない場合は、開始する前に無料アカウントを作成してください。
- Ubuntu、macOS、Windows Subsystem for Linux などの Unix 系オペレーティング システムがインストールされたローカル マシンを準備します。
- Azure CLI 2.37.0 以降をインストールして、Azure CLI コマンドを実行します。
- az login コマンドを使用して、Azure CLI にサインインします。 認証プロセスを完了するには、ターミナルに表示される手順に従います。 その他のサインイン オプションについては、「Azure CLI を使用して Azure にサインインする」を参照してください。
- 初回使用時にインストールを求められたら、Azure CLI 拡張機能をインストールします。 拡張機能の詳細については、「Azure CLI で拡張機能を使用および管理する」を参照してください。
- az version を実行し、インストールされているバージョンおよび依存ライブラリを検索します。 最新バージョンにアップグレードするには、az upgrade を実行します。
- WLS on AKS マーケットプレース プランを利用するには、ユーザー割り当てのマネージド ID を作成し、Azure ロールを割り当てるアクセス許可が必要です。 Azure ロールを割り当てるには、
Microsoft.Authorization/roleAssignments/write
のアクセス許可 (ユーザー アクセス管理者や所有者など) が必要です。 - Oracle アカウント。 Oracle Container Registry の手順の場合、WebLogic Server イメージの使用許諾契約に同意するように指示されます。 Oracle アカウントのパスワードとメール アドレスをメモしておきます。
リソース グループを作成する
az group create を使用して、リソース グループを作成します。 この例では、 eastus
の場所に myResourceGroup
という名前のリソース グループを作成します。
export RESOURCE_GROUP_NAME="myResourceGroup"
az group create \
--name ${RESOURCE_GROUP_NAME} \
--location eastus
カスタム仮想ネットワークの作成
カスタム仮想ネットワークを作成する際には制約事項があります。 環境内で仮想ネットワークを作成する前に、次の記事を参照してください。
このセクションの例では、アドレス空間が 192.168.0.0/16
の仮想ネットワークを作成し、AKS と Application Gateway に使う 2 つのサブネットを作成します。
まず az network vnet create を使って仮想ネットワークを作成します。 次の例では、myVNet
という名前の既定の仮想ネットワークを作成します。
az network vnet create \
--resource-group ${RESOURCE_GROUP_NAME} \
--name myVNet \
--address-prefixes 192.168.0.0/16
次に、AKS クラスターに対して az network vnet subnet create を使ってサブネットを作成します。 次の例では、 myAKSSubnet
という名前のサブネットを作成します。
az network vnet subnet create \
--resource-group ${RESOURCE_GROUP_NAME} \
--name myAKSSubnet \
--vnet-name myVNet \
--address-prefixes 192.168.1.0/24
次に、Application Gateway に対して az network vnet subnet create を使ってサブネットを作成します。 次の例では、 myAppGatewaySubnet
という名前のサブネットを作成します。
az network vnet subnet create \
--resource-group ${RESOURCE_GROUP_NAME} \
--name myAppGatewaySubnet \
--vnet-name myVNet \
--address-prefixes 192.168.2.0/24
次に、次のコマンドを使って AKS サブネットのリソース ID を取得し、この記事で後で使うために変数に格納します。
export AKS_SUBNET_ID=$(az network vnet subnet show \
--resource-group ${RESOURCE_GROUP_NAME} \
--vnet-name myVNet \
--name myAKSSubnet \
--query id \
--output tsv)
仮想ネットワークに AKS クラスターを作成する
次のコマンドを使い、az aks create コマンドを使って仮想ネットワークとサブネットに AKS クラスターを作成します。
Note
この例では、kubenet とシステム割り当て ID を使って AKS クラスターを作成します。 クラスターの作成後に、Azure CLI によってシステム割り当て ID にネットワーク共同作成者ロールが付与されます。
Azure CNI を使う場合は、AKS での Azure CNI ネットワークの構成に関する記事を参照して Azure CNI 対応の AKS クラスターを作成します。
ユーザー割り当てマネージド ID を使う場合は、「システム割り当てマネージド ID を使用して AKS クラスターを作成する」を参照してください。
az aks create \
--resource-group ${RESOURCE_GROUP_NAME} \
--name myAKSCluster \
--generate-ssh-keys \
--enable-managed-identity \
--node-count 3 \
--network-plugin kubenet \
--vnet-subnet-id $AKS_SUBNET_ID \
--yes
Java EE アプリケーションをストレージ アカウントに格納する
WLS on AKS プランのデプロイと共に Java EE アプリケーションをデプロイすることができます。 アプリケーション ファイル (.war、.ear、.jar) を既存の Azure Storage アカウント とそのアカウント内のストレージ コンテナーにアップロードする必要があります。
次の例に示すように、az storage account create コマンドを使って Azure Storage アカウントを作成します。
export STORAGE_ACCOUNT_NAME="stgwlsaks$(date +%s)"
az storage account create \
--resource-group ${RESOURCE_GROUP_NAME} \
--name ${STORAGE_ACCOUNT_NAME} \
--location eastus \
--sku Standard_RAGRS \
--kind StorageV2
BLOB を格納するコンテナーは、az storage container create コマンドで作成します。 次の例では、ストレージ アカウント キーを使って、コンテナーの作成操作を認可します。 Microsoft Entra アカウントを使用して、コンテナーの作成操作を承認することもできます。 詳細については、「Azure CLI を使用して BLOB またはキュー データへのアクセスを承認する」を参照してください。
export KEY=$(az storage account keys list \
--resource-group ${RESOURCE_GROUP_NAME} \
--account-name ${STORAGE_ACCOUNT_NAME} \
--query [0].value \
--output tsv)
az storage container create \
--account-name ${STORAGE_ACCOUNT_NAME} \
--name mycontainer \
--account-key ${KEY} \
--auth-mode key
次に、az storage blob upload コマンドを使って、Java EE アプリケーションを BLOB にアップロードします。 次の例では、testwebapp.war テスト アプリケーションをアップロードします。
curl -fsL https://aka.ms/wls-aks-testwebapp -o testwebapp.war
az storage blob upload \
--account-name ${STORAGE_ACCOUNT_NAME} \
--container-name mycontainer \
--name testwebapp.war \
--file testwebapp.war \
--account-key ${KEY} \
--auth-mode key
複数のファイルを同時にアップロードするには、「Azure CLI を使用して BLOB を作成、ダウンロード、一覧表示する」を参照してください。
WLS on AKS プランをデプロイする
このセクションでは、以前に作成した AKS インスタンスを使って WLS クラスターをプロビジョニングする方法について説明します。 カスタム仮想ネットワーク内でクラスターをプロビジョニングし、ロード バランサーとして Azure Application Gateway を使ってクラスター ノードをエクスポートします。 このプランを使うと、Application Gateway TLS/SSL 終端用の自己署名証明書が自動的に生成されます。 Application Gateway での TLS/SSL 終端の高度な使用方法については、「Application Gateway Ingress Controller」を参照してください。
まず、Oracle WebLogic Server on AKS ユーザー ガイドの説明に従って WebLogic Server のデプロイ プロセスを始めます。ただし、次のスクリーンショットに示すように、[Configure AKS cluster] (AKS クラスターの構成) に到達したらこのページに戻ります。
AKS クラスターを構成する
仮想ネットワーク内に AKS クラスターを用意したら、デプロイの AKS クラスターを選びます。
- [Create a new AKS cluster?] (新しい AKS クラスターを作成しますか?) には [いいえ] を選びます。
- [Select AKS cluster] (AKS クラスターの選択) のドロップダウン メニューを開き、作成した AKS クラスター (この例では
myAKSCluster
という名前) を選びます。 - [Use a pre-existing, WebLogic Server Docker image from Oracle Container Registry?] (Oracle Container Registry から既存の WebLogic Server Docker イメージを使用する) には [はい] を選びます。
- [Create a new Azure Container Registry to store application images?] (アプリケーション イメージを格納するために新しい Azure コンテナー レジストリを作成する) には [はい] を選びます。
- [Username for Oracle Single Sign-on authentication] (Oracle シングル サインオン認証のユーザー名) に、Oracle シングル サインオン アカウントのユーザー名を入力します。
- [Password for Oracle Single Sign-on authentication] (Oracle シングル サインオン認証のパスワード) に、そのアカウントのパスワードを入力します。
- [パスワードの確認] に、前のフィールドの値をもう一度入力します。
- [Select desired combination of WebLogic Server, JDK and Operator System or fully qualified Docker tag] (WebLogic Server、JDK、オペレーティング システム、または完全修飾 Docker タグの望ましい組み合わせを選択する) は、既定値のままにします。
- [Deploy your application package] (アプリケーション パッケージをデプロイする) には [はい] を選びます。
- [アプリケーション パッケージ (.war、.ear、.jar)] には [参照] を選びます。
- 作成したストレージ アカウントを選択します。 この例では、
stgwlsaks
で始まる名前です。 - [コンテナー] ページでコンテナーを選びます。 この例では、
mycontainer
を使用します。 - コンテナー内に一覧表示されているアプリケーションを確認します。 この例では、testwebapp.war を使います。
- [選択] を選択します。
- 作成したストレージ アカウントを選択します。 この例では、
- その他のフィールドは、既定値のままにしておきます。
これで、AKS クラスター、WebLogic ベース イメージ、Java EE アプリケーションの構成が完了しました。
次は、[TLS/SSL の構成] ペインで自分の証明書を使い、HTTPS (セキュア) ポート上の WebLogic Server 管理コンソールとクラスターにエンドツーエンドの TLS/SSL を構成します。 このタスクについては、Oracle WebLogic Server on AKS ユーザー ガイドの手順に従います。ただし、次のスクリーンショットに示すように、[ネットワーク] に到達したら、このページに戻ります。 次のセクションを使ってネットワークを構成し、WLS on AKS ユーザー ガイドに戻ってデプロイを完了します。
Application Gateway イングレス コントローラーを構成する
次の手順を使って、仮想ネットワーク内の Application Gateway イングレス コントローラーを構成します。
- [Connect to Azure Application Gateway?] (Azure Application Gateway に接続しますか?) には [はい] を選びます。
- [仮想ネットワークの構成] の [仮想ネットワーク] には、作成した仮想ネットワークを選びます。 この例では、
myResourceGroup
内のmyVNet
を使います。 [サブネット] には Application Gateway のサブネットを選びます。 この例では、myAppGatewaySubnet
を使用します。 - [Select desired TLS/SSL certificate option] (TLS/SSL 証明書オプションの選択) には [Generate a self-signed front-end certificate] (自己署名フロントエンド証明書の生成) を選びます。
- [Create ingress for Administration Console] (管理コンソールのイングレスを作成する) には [はい] を選び、WebLogic 管理コンソールを公開します。
- 他のフィールドは既定値のままにします。
これで、Oracle WebLogic Server on AKS ユーザー ガイドで説明されているように、WLS デプロイの他の側面に進むことができます。
WLS の正常なデプロイを検証する
このセクションでは、WLS クラスターと Application Gateway イングレス コントローラーが正常にデプロイされたことを迅速に確認する方法について説明します。
デプロイが完了したら、[出力] を選びます。 WebLogic 管理コンソールとクラスターの外部 URL が表示されます。 これらのリソースには、次の手順に従ってアクセスします。
- WebLogic 管理コンソールを表示するには、まず出力変数
adminConsoleExternalUrl
の値をコピーします。 次に、その値をブラウザーのアドレス バーに貼り付けて Enter キーを押し、WebLogic 管理コンソールのサインイン ページを開きます。 - WebLogic クラスターを表示するには、まず出力変数
clusterExternalUrl
の値をコピーします。 次に、この値を使って、次のテンプレートに適用してサンプル アプリケーションの URL を構築します:${clusterExternalUrl}testwebapp/
。 次に、アプリケーション URL をブラウザーのアドレス バーに貼り付けて Enter キーを押します。 Application Gateway イングレス コントローラーのルーティング先であるポッドのプライベート アドレスとホスト名がサンプル アプリケーションに表示されます。
リソースをクリーンアップする
WLS クラスターを引き続き使う予定がない場合は、次の Azure portal の手順に従って仮想ネットワークと WLS クラスターを削除します。
- リソース グループ
myResourceGroup
の [概要] ページに移動し、[リソース グループの削除] を選びます。 - WLS on AKS プランをデプロイしたリソース グループの [概要] ページにアクセスし、[リソース グループの削除] を選びます。
次のステップ
Azure 上で WLS を実行するためのオプションについて引き続き調べます。