次の方法で共有


クイック スタート: Azure Virtual Machine (VM) に JBoss EAP クラスターをデプロイする

この記事では、Azure portal を使用して Azure Virtual Machine (VM) 上で JBoss Enterprise Application Platform (EAP) クラスターをすばやくデプロイする方法について説明します。

この記事では、Azure VM への移行を加速させるために、JBoss EAP クラスター向けの Azure Marketplace のオファーを使用します。 このオファーでは、Azure Red Hat Enterprise Linux (RHEL) VM、各 VM 上の JBoss EAP インスタンス、各 VM 上の OpenJDK の Red Hat ビルド、JBoss EAP 管理コンソール、必要に応じて Azure App Gateway インスタンスなど、多数のリソースが自動的にプロビジョニングされます。 このオファーを見るには、Azure portal を使用してソリューション JBoss EAP Cluster on RHEL VMs にアクセスしてください。

この Azure Marketplace オファーによって実現する自動化を使用せず、手動で Red Hat JBoss EAP クラスターを Azure VM 上にインストールする場合のステップ バイ ステップ ガイダンスについては、「チュートリアル: Red Hat JBoss EAP を Azure Virtual Machines に手動でインストールする」を参照してください。

JBoss EAP on Azure ソリューションを開発しているエンジニアリング チームと密接に連携しながら移行シナリオに取り組むことに関心がある場合は、こちらの簡単な JBoss EAP 移行に関するアンケートに内容を記入し、連絡先情報を含めてください。 プログラム マネージャー、アーキテクト、エンジニアのチームからすぐに連絡を取り、密接なコラボレーションが開始されます。

前提条件

  • Azure サブスクリプション。 Azure サブスクリプションをお持ちでない場合は、開始する前に Azure 無料アカウントを作成してください。
  • サインインに使用する Azure ID に、現在のサブスクリプションの共同作成者ロールまたは所有者ロールのいずれかがあることを確認してください。 Azure ロールの概要については、「Azure ロールベースのアクセス制御 (Azure RBAC)とは」を参照してください。
  • Java Development Kit (JDK) バージョン 17。 このガイドでは、OpenJDK の Red Hat ビルドをお勧めします。 コマンドを実行するシェルで JAVA_HOME 環境変数が正しく設定されていることを確認します。
  • Git. git --version を使用して git が正常に機能するかをテストします。 このチュートリアルは、バージョン 2.34.1 でテストされました。
  • Mavenmvn -version を使用して mvn が正常に機能するかをテストします。 このチュートリアルは、バージョン 3.8.6 でテストされました。

Note

この記事で使用する Azure Marketplace オファーには、ライセンス管理のための Red Hat Satellite のサポートが含まれています。 Red Hat Satellite の使用は、このクイックスタートでは扱いません。 Red Hat Satellite の概要については、「Red Hat Satellite」をご覧ください。 Red Hat JBoss EAP および Red Hat Enterprise Linux のサブスクリプションを Azure に移行する方法の詳細については、Red Hat Cloud Access プログラムをご覧ください。

Azure Database for PostgreSQL フレキシブル サーバーを設定する

このセクションの手順では、Azure Database for PostgreSQL フレキシブル サーバーをデプロイします。このサーバーは、次のセクションで JBoss EAP クラスターを設定するときにデータベース接続を構成するために使用します。

まず、次のコマンドを使用して、いくつかの環境変数を設定します。

export RG_NAME=<db-resource-group-name>
export SERVER_NAME=<database-server-name>
export ADMIN_PASSWORD=<postgresql-admin-password>

プレースホルダーは、この記事の中で使用される次の値に置き換えてください。

  • <db-resource-group-name>: PostgreSQL フレキシブル サーバーに使用するリソース グループの名前 (例 ejb040323postgresrg)。
  • : PostgreSQL サーバーの名前。Azure ejb040323postgresqlserver全体で一意である必要があります。 (例: <database-server-name>)。
  • <postgresql-admin-password>: PostgreSQL サーバーのパスワード。 このパスワードは 8 文字から 128 文字にする必要があります。 これには、英大文字、英小文字、数字 (0 から 9)、非英数字の文字 (!、$、#、% など) のうち、3 つのカテゴリの文字が含まれている必要があります。

次に、以下の手順に従って、Azure Database for PostgreSQL フレキシブル サーバーを作成します。

  1. 次のコマンドを使用して、Azure Database for PostgreSQL フレキシブル サーバーを作成します。

    az postgres flexible-server create \
        --resource-group ${RG_NAME} \
        --name ${SERVER_NAME} \
        --database-name testdb \
        --public-access 0.0.0.0  \
        --admin-user testuser \
        --admin-password ${ADMIN_PASSWORD} \
        --yes
    
  2. 次のコマンドを使用して、PostgreSQL サーバーのホストを取得します。

    export DB_HOST=$(az postgres flexible-server show \
        --resource-group ${RG_NAME} \
        --name ${SERVER_NAME} \
        --query "fullyQualifiedDomainName" \
        --output tsv)
    
  3. 次のコマンドを使用して、PostgreSQL サーバーの Java Database Connectivity (JDBC) 接続 URL を取得します。

    echo jdbc:postgresql://${DB_HOST}:5432/testdb
    

    この記事の後半で PostgreSQL サーバーのデータ ソース 接続文字列として使用する出力をメモしておきます。

Azure VM に JBoss EAP クラスターをデプロイする

このセクションの手順では、Azure VM に JBoss EAP クラスターをデプロイする方法について説明します。

次の手順を使用して、Azure VM 上の JBoss EAP クラスターを見つけます。

  1. Azure Portal (https://aka.ms/publicportal) を開いてサインインします。

  2. Azure portal の上部にある検索バーに、「JBoss EAP」と入力します。 検索結果の [Marketplace] セクションで、[VM 上の JBoss EAP クラスター] を選択します。

    検索結果に Azure VM 上の JBoss EAP サーバーが表示されている Azure Portal のスクリーンショット。

  3. ドロップダウン メニューで、[PAYG] が選ばれていることを確認します。

別の方法として、JBoss EAP Cluster on Azure VMs オファーに直接移動することもできます。 この場合、正しいプランが既に選択されています。

どちらの場合でも、このオファーでは、展開時に Red Hat サブスクリプションを提供することで、Azure VM に JBoss EAP クラスターがデプロイされます。 このオファーでは、ベース VM の従量課金制の支払い構成を使用して、Red Hat Enterprise Linux 上でクラスターが実行されます。

次の手順では、以下のスクリーンショットに示す [基本] ペインに入力する方法を示します。

[VM 上の JBoss EAP クラスター] の [基本] ペインを示す Azure Portal のスクリーンショット。

  1. オファー ページで、[作成] を選択します。
  2. [基本] ペインで、[サブスクリプション] フィールドに表示される値が、前提条件セクションに示されているロールと同じであることを確認します。
  3. このオファーを空のリソース グループにデプロイする必要があります。 [リソース グループ] フィールドで、[新規作成] を選択し、リソース グループの値を入力します。 リソース グループはサブスクリプション内で一意である必要があるため、一意の名前を選択します。 一意の名前を付ける簡単な方法は、自分の名前のイニシャル、今日の日付、何らかの識別子を組み合わせて使用することです。 例: ejb040323jbosseapcluster
  4. [インスタンスの詳細] で、デプロイのリージョンを選択します。
  5. [仮想マシンのサイズ] は既定の VM サイズのままにします。
  6. [JDK バージョン] は既定のオプションの OpenJDK 17 のままにします。
  7. [ユーザー名] は既定値の jbossuser のままにします。
  8. [認証の種類] は既定のオプション [パスワード] のままにします。
  9. [パスワード] にパスワードを入力します。 [パスワードの確認入力] にも同じ値を使います。
  10. [作成する仮想マシンの数] には 3 を指定します。
  11. [省略可能な基本構成] で、[省略可能な構成の既定値を受け入れる] は既定のオプションの [はい] のままにします。
  12. [基本] ペインの一番下までスクロールすると、問題の報告、ヘルプの参照、フィードバックの共有に役立つリンクがあります。
  13. [次へ: JBoss EAP の設定] を選びます。

次の手順では、以下のスクリーンショットに示す [JBoss EAP 設定] ウィンドウに入力する方法を示します。

[VM 上の JBoss EAP クラスター] の [JBoss EAP 設定] ペインを示す Azure Portal のスクリーンショット。

  1. [マネージドドメインまたはスタンドアロンホストを使用してクラスタを形成する] は、既定のオプション [マネージド ドメイン] のままにします。
  2. [JBoss EAP 管理者ユーザー名] は既定値の jbossuser のままにします。
  3. [JBoss EAP パスワード] には JBoss EAP パスワードを指定します。 [パスワードの確認入力] にも同じ値を使います。 後で使用できるようにこの値を保存しておきます。
  4. [既存の Red Hat Satellite Server に接続しますか?] は既定のオプションの [いいえ] のままにします。
  5. [次へ: Azure Application Gateway] を選択します。

次の手順では、以下のスクリーンショットに示す [Azure Application Gateway] ペインに入力する方法を示します。

[VM 上の JBoss EAP クラスター] の [Azure Application Gateway] ペインが表示されている Azure Portal のスクリーンショット。

  1. [Azure Application Gateway に接続する] で、[はい] を選択します。

  2. [次へ: ネットワーク] を選択します。

    このペインでは、JBoss EAP クラスターがデプロイされる仮想ネットワークとサブネットをカスタマイズできます。 仮想ネットワークの詳細については、「仮想ネットワークの作成、変更、削除」をご覧ください。 このペインでは、既定の設定をそのまま使用します。

  3. [次へ: データベース] を選びます。

次の手順では、以下のスクリーンショットに示す [データベース] ペインで情報を入力し、デプロイを開始する方法を示します。

[VM 上の JBoss EAP クラスター] の [データベース] ペインを示す Azure Portal のスクリーンショット。

  1. [Gateway に接続する][はい] を選択します。
  2. [データベースの種類の選択][PostgreSQL] を選択します。
  3. [JNDI 名] に 「java:jboss/datasources/JavaEECafeDB」を入力します。
  4. [データ ソース 接続文字列 (jdbc:postgresql://<host>:<port>/<database>)] に、前に保存した PostgreSQL サーバーの JDBC 接続 URL を指定します。
  5. [データベース ユーザー名] に 「testuser」と入力します。
  6. 前に指定したプレースホルダー <postgresql-admin-password> の値を、[データベース パスワード] に指定します。 [パスワードの確認入力] にも同じ値を使います。
  7. [Review + create](レビュー + 作成) を選択します。 緑色の [検証に成功しました] というメッセージが上部に表示されることを確認します。 このメッセージが表示されない場合は、検証の問題を修正してから、[確認および作成] をもう一度選択します。
  8. [作成] を選択します
  9. [デプロイが進行中です] ページで、デプロイの進行状況を追跡します。

選択したリージョンのネットワーク条件やその他のアクティビティによって、デプロイが完了するまでに最大 35 分かかる場合があります。 その後、[デプロイ] ページに [デプロイが完了しました] というテキストが表示されます。

デプロイの機能を確認する

次の手順に従って、Red Hat JBoss Enterprise Application Platform 管理コンソールから Azure VM 上の JBoss EAP クラスターのデプロイの機能を確認します。

  1. [デプロイ] ページで、[出力] を選択します。

  2. [adminConsole] の横にあるコピー アイコンを選択します。

    adminConsole URL が強調表示された [デプロイ] の [出力] メニューを表示している Azure Portal のスクリーンショット。

  3. インターネットに接続された Web ブラウザーに URL を貼り付け、「Enter」キーを押します。 次のスクリーンショットに示すように、見慣れた Red Hat JBoss Enterprise Application Platform 管理コンソールのサインイン画面が表示されます。

    JBoss EAP 管理コンソールのサインイン画面のスクリーンショット。

  4. [JBoss EAP 管理者ユーザー] に「jbossadmin」を入力します。[パスワード] に、前に JBoss EAP パスワードに指定した値を指定し、[サインイン] を選択します。

  5. 次のスクリーンショットに示すように、見慣れた Red Hat JBoss Enterprise Application Platform 管理コンソールのウェルカム ページが表示されます。

    JBoss EAP 管理コンソールのウェルカム ページのスクリーンショット。

  6. [ランタイム] タブを選択します。ナビゲーション ウィンドウで、[トポロジ] を選択します。 次のスクリーンショットに示すように、クラスターに 1 つのドメイン コントローラー マスターと 2 つのワーカー ノードが含まれているはずです。

    JBoss EAP 管理コンソール ランタイム トポロジのスクリーンショット。

  7. [構成] タブを選択します。ナビゲーション ウィンドウで、[プロファイル]>[ha]>[データソースとドライバー]>[データソース] を選択します。 次のスクリーンショットに示すように、データソース「dataSource-postgresql」が一覧表示されているはずです。

    JBoss EAP 管理コンソールの [構成] タブで [データソース] が選択されているスクリーンショット。

管理コンソールを開いたままにしておきます。 これを使用して、次のセクションでサンプル アプリを JBoss EAP クラスターにデプロイします。

アプリを JBoss EAP クラスターにデプロイする

次の手順を使用して、Java Enterprise Edition Cafe サンプル アプリケーションを Red Hat JBoss EAP クラスターにデプロイします。

  1. 次の手順を使用して、Java Enterprise Edition Cafe サンプルをビルドします。 これらの手順は、Git と Maven がインストールされたローカル環境があることを前提としています。

    1. 次のコマンドを使用して GitHub からソース コードをクローンし、このバージョンの記事に対応するタグをチェック アウトします。

      git clone https://github.com/Azure/rhel-jboss-templates.git --branch 20240904 --single-branch
      

      テキスト「You are in 'detached HEAD' state」を含むエラー メッセージが表示された場合は、無視しても問題ありません。

    2. 次のコマンドを使用して、ソース コードをビルドします。

      mvn clean install --file rhel-jboss-templates/eap-coffee-app/pom.xml
      

      このコマンドは、rhel-jboss-templates/eap-coffee-app/target/javaee-cafe.war ファイルを作成します。 次の手順でこのファイルをアップロードします。

  2. Red Hat JBoss Enterprise Application Platform 管理コンソールで次の手順を使用して、javaee-cafe.war[コンテンツ リポジトリ] にアップロードします。

    1. Red Hat JBoss EAP 管理コンソールの [デプロイ] タブにあるナビゲーション パネルで [コンテンツ リポジトリ] を選択します。

    2. [追加] を選択し、[コンテンツのアップロード] を選択します。

      [コンテンツのアップロード] メニュー項目が強調表示されている JBoss EAP 管理コンソールの [展開] タブのスクリーンショット。

    3. ブラウザー ファイルの選択ツールを使って、javaee-cafe.war ファイルを選択します。

    4. [次へ] を選択します。

    5. 次の画面で既定値を受け入れ、[完了] を選択します。

    6. [コンテンツの表示] を選択します。

  3. 次の手順を使用して、アプリケーションを main-server-group にデプロイします。

    1. [コンテンツ リポジトリ] から、javaee-cafe.war を選択します。

    2. ドロップダウン メニューを開き、[デプロイ] を選択します。

    3. javaee-cafe.war をデプロイするためのサーバー グループとして main-server-group を選択します。

    4. [デプロイ] を選んで、デプロイを始めます。 以下のスクリーンショットのような通知が表示されます。

      デプロイの正常完了を示すスクリーンショット。

これで、Java Enterprise Edition アプリケーションのデプロイが完了しました。 次の手順を実行して、アプリケーションにアクセスし、すべての設定を検証します。

  1. 次のコマンドを使用して、Azure Application Gateway のパブリック IP アドレスを取得します。 プレースホルダー <resource-group-name> を、JBoss EAP クラスターがデプロイされているリソース グループの名前に置き換えます。

    az network public-ip show \
        --resource-group <resource-group-name> \
        --name gwip \
        --query '[ipAddress]' \
        --output tsv
    
  2. デプロイされた Azure Application Gateway のパブリック IP アドレスである出力をコピーします。

  3. インターネットに接続された Web ブラウザーを開きます。

  4. URL http://<gateway-public-ip-address>/javaee-cafe の アプリケーションに移動します。 プレースホルダー <gateway-public-ip-address> を、前にコピーした Azure Application Gateway のパブリック IP アドレスに置き換えます。

  5. coffees の追加と削除を試みます。

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

Azure の課金を回避するには、不要なリソースをクリーンアップする必要があります。 Azure VM にデプロイされた JBoss EAP クラスターが不要になった場合は、JBoss EAP サーバーの登録を解除し、Azure リソースを削除します。

次のコマンドを実行して、Red Hat のサブスクリプション管理から JBoss EAP サーバーと VM の登録を解除します。 プレースホルダー <resource-group-name> を、JBoss EAP クラスターがデプロイされているリソース グループの名前に置き換えます。

# Unregister domain controller
az vm run-command invoke \
    --resource-group <resource-group-name> \
    --name jbosseapVm-adminVM \
    --command-id RunShellScript \
    --scripts "sudo subscription-manager unregister"

# Unregister host controllers
az vm run-command invoke \
    --resource-group <resource-group-name> \
    --name jbosseapVm1 \
    --command-id RunShellScript \
    --scripts "sudo subscription-manager unregister"
az vm run-command invoke \
    --resource-group <resource-group-name> \
    --name jbosseapVm1 \
    --command-id RunShellScript \
    --scripts "sudo subscription-manager unregister"

次のコマンドを実行して、JBoss EAP クラスターと Azure Database for PostgreSQL フレキシブル サーバーがデプロイされている 2 つのリソース グループを削除します。 プレースホルダー <resource-group-name> を、JBoss EAP クラスターがデプロイされているリソース グループの名前に置き換えます。 環境変数 $RG_NAME が、PostgreSQL フレキシブル サーバーがデプロイされているリソース グループの名前で設定されていることを確認します。

az group delete --name <resource-group-name> --yes --no-wait
az group delete --name $RG_NAME --yes --no-wait

次のステップ

JBoss EAP を Azure 上にデプロイする方法の選択肢についてさらに学びます。