チュートリアル: データセンターで実行されている Spring Boot アプリケーションを検出する (プレビュー)

この記事では、Azure Migrate: Discovery and Assessment ツールを使用して、データセンターにあるサーバーで実行されている Spring Boot アプリケーションを検出する方法について説明します。 この検出プロセスは完全にエージェントレスです。ターゲット サーバーにエージェントはインストールされません。

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

  • Spring Boot アプリケーションを検出するための、Kubernetes ベースのアプライアンスを設定する
  • そのアプライアンスを構成し、継続的な検出を開始する

Note

  • Spring Boot アプリケーションを検出するには、Kubernetes ベースのアプライアンスが必要です。 Windows ベースのアプライアンスが使用されるシナリオについては、こちらの詳細情報をご覧ください。
  • チュートリアルではシナリオを試すためのごく簡単な方法を紹介します。 可能な場合は既定のオプションが使用されます。

Azure サブスクリプションをお持ちでない場合は、開始する前に無料アカウントを作成してください。

サポートされている地域

地理的な場所
アジア太平洋
韓国
日本
米国
ヨーロッパ
イギリス
カナダ
オーストラリア
フランス

前提条件

Kubernetes ベースのアプライアンスを設定する

Azure Migrate アプライアンスを使用してサーバーの検出とソフトウェア インベントリを実行したら、次のように Kubernetes アプライアンスを設定して、Spring Boot アプリケーションの検出を有効にすることができます。

Kubernetes ベースのアプライアンスをオンボードする

  1. Azure portal に移動します。 Azure アカウントでサインインし、Azure Migrate を検索します。

  2. [概要] ページ >[サーバー、データベース、Web アプリ] で、[検出、評価、移行] を選択します。

  3. 前提条件の一部として Azure Migrate アプライアンスを設定したプロジェクトを選びます。

  4. [Azure Migrate: Discovery and assessment] タイルの上に、Kubernetes ベースのアプライアンスをオンボードして Spring Boot アプリケーションの検出を有効にするためのメッセージが表示されます。

    Web アプリの検出と評価のバナーを示すスクリーンショット。

  5. 操作を続けるには、メッセージのリンクを選択します。これにより、Kubernetes ベースのアプライアンスのオンボードを開始できます。

    Note

    サービスでディスク暗号化を使用する Kubernetes クラスターを選択することをお勧めします。 Kubernetes の保存データの暗号化に関する詳細について説明します。

  6. [アプライアンスの選択] で、次のオプションから 1 つを選択できます。

    • パッケージ化された Kubernetes クラスターを使用してアプライアンスをインストールする - このオプションは、ユーザーがインストーラー スクリプトを使用してオンプレミスの Linux サーバーに Kubernetes クラスターをダウンロードしてインストールしてアプライアンスを設定できる推奨される方法であるため、既定で選択されます。
    • "Kubernetes クラスターの持ち込み" を選択します。オンプレミスで実行されている独自の Kubernetes クラスターを持ち込み、Azure Arc に接続し、インストーラー スクリプトを使用してアプライアンスを設定する必要があります。
  1. [Azure Migrate のアプライアンスの詳細を指定する] で、アプライアンス名があらかじめ設定されていますが、アプライアンスに独自のフレンドリ名を付けることもできます。

    [パッケージ化された Kubernetes クラスターを使用してアプライアンスをインストールする] オプションが選択されていることを示すスクリーンショット。

  2. ドロップダウンから Key Vault を選択するか、Key Vault の [新規作成] を選択します。 この Key Vault は、プロジェクトで指定されている資格情報を処理して Spring Boot アプリケーションの検出を開始するために使用されます。

    Note

    Key Vault は、Azure Migrate プロジェクトと同じサブスクリプションおよびリージョンで選択または作成できます。 KV を作成または選択する場合は、消去保護が有効になっていないことを確認します。それ以外の場合は、Key Vault を介した資格情報の処理に問題があります。

  3. アプライアンス名と Key Vault を指定したら、[スクリプトの生成] を選択して、オンプレミスの Linux サーバーにコピーして貼り付けることができるインストーラー スクリプトを生成します。 スクリプトを実行する前に、Linux サーバーで次の前提条件が満たされていることを確認してください。

    サポート 詳細
    サポートされている Linux OS Ubuntu 20.04、RHEL 9
    必要なハードウェア構成 8 GB の RAM、30 GB のストレージ、4 コアの CPU
    ネットワーク要件 次のエンドポイントへのアクセス:

    .docker.io

    .docker.com

    api.snapcraft.io

    https://dc.services.visualstudio.com/v2/track

    Azure Arc 対応 Kubernetes ネットワークの要件

    プロキシ バイパス用の Azure CLI エンドポイント

スクリプトをコピーしたら、Linux サーバーに移動し、スクリプトを Deploy.sh としてサーバーに保存できます。

送信プロキシ サーバーを使用して接続する

マシンが送信プロキシ サーバーの背後にある場合は、送信プロキシ サーバー経由で要求をルーティングする必要があります。 プロキシ設定を指定するには、次の手順に従います。

  1. サーバー上のターミナルを開き、ルート ユーザー sudo su - として次のコマンド セットアップ環境変数を実行します
  2. デプロイ マシンでは、送信プロキシ サーバーを使用するように、deploy.sh に必要な環境変数を設定します。
    export HTTP_PROXY=”<proxy-server-ip-address>:<port>”
    export HTTPS_PROXY=”<proxy-server-ip-address>:<port>”
    export NO_PROXY=””
    
  3. プロキシで証明書を使用する場合は、証明書への絶対パスを指定します。 export PROXY_CERT=””

Note

マシンでは、deploy.sh スクリプトを実行するために必要な前提条件をインストールするときに、プロキシの詳細を使用します。 Azure Arc 対応 Kubernetes クラスターのプロキシ設定はオーバーライドされません。

インストーラー スクリプトを実行する

Linux サーバーにスクリプトを保存したら、次の手順に従います。

Note

このスクリプトは、ネットワークの前提条件と OS の互換性を満たすターミナル上の Linux マシンに接続した後で実行する必要があります。
curl がサーバーにインストールされていることを確認します。 Ubuntu の場合は、sudo apt-get install curl コマンドを使ってインストールでき、他の OS (RHEL/CentOS) の場合は、yum install curl コマンドを使用できます。

重要

セットアップをクリーンアップしない限り、スクリプトを編集しないでください。

  1. サーバーでターミナルを開き、次のコマンドを実行して、スクリプトを root ユーザーとして実行します。sudo su -

  2. スクリプトを保存した場所にディレクトリを変更し、bash deploy.sh コマンドを使用してスクリプトを実行します。

  3. スクリプトの指示に従い、Azure ユーザー アカウントでのサインインを求められたらそれを行います。

  4. そのスクリプトでは、次の手順が実行されます。

    1. 必要な CLI 拡張機能をインストールする。
    2. Azure リソース プロバイダーの登録
    3. 必要なエンドポイントへの接続などの前提条件の確認
    4. MicroK8s Kubernetes クラスターの設定
    5. 必要なオペレーターのクラスターへのインストール
    6. 必要な Migrate リソースの作成
  5. スクリプトが正常に実行されたら、ポータルを使用してアプライアンスを構成します。

再インストール

Note

スクリプトの実行中に問題が発生した場合は、スクリプトを再実行する必要があり、最後に成功した状態から再開されます。 完全な新規インストールを実行する場合は、スクリプトを再実行する前にセットアップのクリーンアップの詳細を参照してください。

保存時の暗号化

パッケージ化されたアプライアンスを設定しているので、シークレットをセキュリティで保護する共同責任があります。

  • サービスのディスク暗号化を使用する Linux VM を選択することをお勧めします。

Kubernetes ベースのアプライアンスを構成する

インストーラー スクリプトを使用してアプライアンスを正常に設定できたら、次の手順に従ってアプライアンスを構成する必要があります。

  1. Kubernetes ベースのアプライアンスのオンボードを開始した、Azure Migrate プロジェクトに移動します。

  2. [Azure Migrate: Discovery and Assessment] タイルで、アプライアンスの概要にある [保留中のアクション] のアプライアンス数を選択します。

    [保留中のアクション] オプションが表示されているスクリーンショット。

  3. [概要]>[管理]>[アプライアンス] に、フィルター処理されたアプライアンスの一覧が表示され、保留中のアクションが示されます。

  4. 設定した Kubernetes ベースのアプライアンスを見つけて、[資格情報を使用できません] 状態を選択し、アプライアンスを構成します。

    アプライアンスの詳細が表示されているスクリーンショット。

  5. [資格情報の管理] ページで、サーバーで実行されている Spring Boot アプリケーションの検出を開始するための資格情報を追加します。

    [資格情報の管理] オプションが表示されているスクリーンショット。

  6. [資格情報の追加] を選択し、Linux (非ドメイン) またはドメイン資格情報から資格情報の種類を選択し、フレンドリ名、ユーザー名、パスワードを指定します。 [保存] を選択します。

    Note

    • ポータルに追加された資格情報は、Kubernetes ベースのアプライアンスをオンボードするための最初の方の手順で選択した、Azure Key Vault を使用して処理されます。 それから、資格情報はアプライアンス上の Kubernetes クラスターに同期 (暗号化された形式で保存) され、Azure Key Vault から削除されます。
    • 資格情報は、正常に同期された後、次の検出サイクルで特定のワークロードの検出に使われます。
  7. 資格情報を追加した後、ページを更新して資格情報の [同期状態] を確認する必要があります。 状態が "不完全" である場合は、その状態を選択し、発生したエラーを確認し、推奨されている操作を実行することができます。 資格情報が正常に同期されたら、[検出済みサーバー] ページで特定のワークロードでフィルター処理して検出されたインベントリを確認できるようになるまで、24 時間待ちます。

    Note

    資格情報の追加または更新は、[Azure Migrate: Discovery and Assessment]>[概要]>[管理]>[アプライアンス] ページに移動し、Kubernetes ベースのアプライアンスで使用可能なオプションから [資格情報の管理] を選択することでいつでも行うことができます。

設定のクリーンアップ

クリーンアップするには、削除モードで次のスクリプトを実行します。

ポータルによって生成されたスクリプトで、すべてのユーザー引数の後に (次の図の 19 行目以降) export DELETE= “true” を追加して、同じスクリプトを再度実行します。 これにより、アプライアンスの作成時に作成されたすべての既存コンポーネントがクリーンアップされます。

削除モードが示されているスクリーンショット。

検出結果の概要

[検出済みサーバー] 画面には、次の情報が表示されます。

  • サーバー ベースの環境で実行中のすべての Spring Boot ワークロードが表示されます。
  • 各サーバーの基本情報が表形式で一覧表示されます。

検出済みサーバーが表示されているスクリーンショット。

Web アプリを選択すると、その詳細が表示されます。 [Web アプリ] 画面には、次の情報が表示されます。

  • 各サーバー上の各 Spring Boot プロセスの包括的なビューが表示されます。
  • 次のような各プロセスの詳細情報が表示されます。
    • JDK バージョンと Spring Boot バージョン。
    • 構成されている環境変数名と JVM オプション。
    • 使用中のアプリケーション構成ファイルと証明書ファイル。
    • サーバー上のプロセスの JAR ファイルの場所。
    • 静的コンテンツの場所とバインドのポート。

Web アプリ画面が表示されているスクリーンショット。

次のステップ