ASP.NET Web アプリの Azure Kubernetes Service へのモダン化 (プレビュー)

この記事では、Azure Migrate を使用して、ASP.NET Web アプリを Azure Kubernetes Service に大規模に移行する方法について説明します。 現時点では、このフローでは、VMware で実行されている ASP.NET Web アプリのみがサポートされています。 その他の環境では、次の手順に従います。

Note

チュートリアルでは、概念実証をすばやく設定できるように、シナリオの最も簡単なデプロイ パスを示します。 チュートリアルでは、可能な限り既定のオプションを使用しており、使用可能な設定とパスをすべて示しているわけではありません。

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

  • Azure Migrate の統合フローを使用して、Azure Kubernetes Service への移行のために ASP.NET Web アプリを大規模に選択して準備します。
  • アプリケーションを実行およびレプリケートするアプリケーション インスタンスの数などのターゲット設定を構成します。
  • テスト移行を実行して、アプリケーションが正しく起動することを確認します。
  • AKS へのアプリケーションの完全な移行を実行します。

前提条件

このチュートリアルを始める前に、次のことに対処する必要があります。

制限事項

  • Microsoft .NET Framework 3.5 以降を使用して ASP.NET アプリケーションを移行できます。
  • Windows Server 2012 R2 以降が実行されるアプリケーション サーバーを移行できます (アプリケーション サーバーで、PowerShell バージョン 5.1 が実行されている必要があります)。
  • アプリケーションは、インターネット インフォメーション サービス (IIS) 7.5 以降で実行されている必要があります。

レプリケーションを有効にする

評価が実施されると、Azure Migrate の統合移行フローを使用して Web アプリを移行できます。 このプロセスの最初の手順では、Web アプリのレプリケーションを構成して開始します。

意図を指定する

  1. Azure Migrate プロジェクト >[サーバー、データベース、Web アプリ]>[移行ツール]>[移行およびモダン化] に移動し、[レプリケート] を選択します。

    Screenshot of the Replicate option selected.

  2. [意図の指定] タブ >[移行する内容] で、ドロップダウンから [ASP.NET Web アプリ] を選択します。

  3. [移行先] で、[Azure Kubernetes Service (AKS)] を選択します。

  4. [仮想化] の種類で、 [VMware vSphere] を選択します。

  5. [オンプレミス アプライアンス] で、vSphere で目的の Web アプリを検出したアプライアンスを選択します。

  6. [続行] を選択します。

    Screenshot of the specify intent tab.

検出されたアプリから選択する

[レプリケート]>[Web アプリ] では、環境で検出された ASP.NET アプリの一覧を確認できます。

Screenshot of the Web apps tab on the Replicate tab.

  1. レプリケートする必要がある 1 つ以上のアプリケーションを選択します。

  2. [モダン化の状態] 列は、AKS で実行するアプリケーションの準備状況を示します。 これには、[準備完了][エラー][レプリケーション進行中] のいずれかの値を使用できます。

  3. アプリケーションを選択し、[アプリの構成] リンクを選択して [アプリケーションの構成] タブを開きます。これにより、検出された構成ファイルから検出された属性の一覧が提供されます。 必要な属性値を入力し、[保存] を選択します。 これらの構成は、ターゲット クラスターにシークレットとして直接格納されるか、Azure Key Vault を使用してマウントできます。 これは、詳細設定で構成できます。

    Screenshot of the Application configurations tab.

  4. アプリケーションを選択し、 [アプリ ディレクトリ] リンクを選択して [アプリケーション ディレクトリ] タブを開きます。アプリケーションを実行するためにコピーする必要があるフォルダー/ファイルへのパスを指定し、[保存] を選択します。 ドロップダウンから選択したオプションに基づいて、これらの成果物はコンテナー イメージに直接コピーされるか、Azure ファイル共有を介してクラスター上の永続ボリュームとしてマウントされます。 永続ボリュームを選択した場合は、詳細設定でターゲットを構成できます。

    Screenshot of the Application directories tab.

  5. 認証の種類で示される Windows 認証を使用するアプリケーションでは、ターゲット AKS クラスターで gMSA V2 を構成できます。

    Screenshot of the gMSA configuration tab.

    設定 説明
    アカウント名 使用する gMSA アカウントの名前。 アカウントが存在しない場合は、この名前の新しいアカウントが自動的に作成されます。
    アカウントのユーザー名 ドメイン コントローラーで構成された gMSA へのアクセスが承認されている標準ドメイン ユーザーのユーザー名。 指定されたユーザー名が存在しない場合は、新しい標準ドメイン ユーザーが自動的に作成されます。
    アカウント パスワード 上記ユーザーのパスワード。
    ドメイン DNS サーバー Active Directory ドメイン名を解決できる DNS サーバーの IP アドレス。
    ドメイン FQDN Active Directory ドメインの完全修飾ドメイン名。
    ドメイン コントローラーのアドレス Active Directory ドメイン コントローラーの IP アドレス。 指定したドメイン ユーザーが指定した gMSA の資格情報を取得できるように、接続が確立されます。
    ドメイン管理者のユーザー名 gMSA アカウントとドメイン ユーザーをリモートで検証するための十分な特権を持つユーザーのユーザー名。
    ドメイン管理者のパスワード 上記の管理者ユーザーのパスワード。
  6. [次へ] を選択します。

Note

アプリ構成とアプリ ディレクトリのソース パスと属性値は、3,000 文字以下にする必要があります。 これは、それぞれ約 200 文字の約 15 エントリ (構成とディレクトリの両方を含む) にほぼ変換できます。

ターゲット設定の構成

[レプリケート]>[ターゲット設定] では、アプリケーションの移行先のターゲットを構成できます。

Screenshot of the Target settings tab on the Replicate tab.

  1. アプリ コンテナー イメージをプッシュする先のサブスクリプション、リソース グループ、コンテナー レジストリ リソースを選択します。
  2. アプリをデプロイするサブスクリプション、リソース グループ、AKS クラスター リソースを選択します。
  3. [次へ] を選択します。

Note

Windows ノードを含む AKS クラスターのみが一覧表示されます。

展開の設定を構成する

[レプリケート]>[デプロイ] 設定で、AKS クラスターでアプリケーションを構成できます。

Screenshot of the Deployment settings tab on the Replicate tab.

  1. 既定値は、アプリの検出に基づいて指定されます。
  2. [レプリカ] オプションで、各アプリのアプリ インスタンスの数を選択します。
  3. アプリにインターネット経由でアクセスする必要がある場合は、[ロード バランサー] オプションで [外部] を選択します。 [内部] が選択されている場合、アプリには AKS クラスターの仮想ネットワーク内でのみアクセスできます。
  4. [次へ] を選択します。

上級設定を構成します

[レプリケート]>[Web アプリ] で 1 つ以上のアプリのアプリ構成またはディレクトリが更新された場合は、必要な追加の構成を提供するために [レプリケート]>[詳細] が使用されます。

Screenshot of the Advanced settings tab on the Replicate tab.

  1. アプリケーション構成が指定されている場合は、それらをネイティブ Kubernetes シークレットとして格納するか、シークレット ストア CSI ドライバーを使用して Azure Key Vault に格納するかを選択します。 ターゲット クラスターでシークレット ストア ドライバー アドオンが有効になっていることを確認します。
  2. アプリケーション ディレクトリに永続的なストレージ オプションが指定されている場合は、Azure ファイル共有を選択してこれらのファイルを格納します。
  3. [次へ] を選択します。

レプリケーションを確認して開始する

[レプリケート] タブの右側のタブに移動して、選択内容を確認し、その他の必要な変更を加えます。確認後、[レプリケート] を選択します。

Screenshot of the Review + start replication tab on the Replicate tab.

移行を準備する

レプリケーションを開始すると、Azure Migrate によって、プロジェクトからアクセスできるレプリケーション ジョブが作成されます。

  1. Azure Migrate プロジェクト >[サーバー、データベース、Web アプリ]>[移行ツール]>[移行およびモダン化] に移動し、[概要] を選択します。

    Screenshot of the Overview option selected.

  2. [Azure Migrate: Server Migration ハブ] >[モダン化 (プレビュー)]>[ジョブ] を選択します。

    Screenshot of the Jobs tab in the migration hub.

  3. レプリケーション ターゲットとして [Azure Kubernetes Service (AKS)] を選択します。 Azure Migrate では、レプリケートされた ASP.NET アプリごとに 1 つのレプリケーション ジョブが作成されます。 [ワークロードのデプロイ] の種類の [ワークロードのデプロイの作成または更新] ジョブを選択します。

    Screenshot of selecting the replication jobs.

  4. [ターゲット] リソースを選択します。 移行前のすべての手順は、ここで構成できます。

    Screenshot of selecting the target resource within the replication job.

  5. レプリケーションが完了すると、レプリケーションの状態[完了] になり、全体的な [状態][イメージのビルド保留中] になります。

コンテナー イメージと Kubernetes マニフェストを確認する

[ターゲット設定] タブで、Docker ファイルと Kubernetes マニフェストへのリンクが提供されます。

Screenshot of the target settings in the target resource.

  1. [Docker ファイル] 確認リンクを選択してエディターを開きます。 確認し、必要に応じて変更します。 [保存] を選択します。

    Screenshot of the docker file editor in the target settings.

  2. [デプロイ仕様] 確認リンクを選択してエディターを開きます。 これには、StatefulSetServiceServiceAccount など、デプロイされるすべてのリソースが記載された Kubernetes マニフェスト ファイルが含まれています。確認し、必要に応じて変更します。 [保存] を選択します。

    Screenshot of the Kubernetes manifest file editor in the target settings.

  3. [概要] タブで、[コンテナー イメージのビルド] を選択してコンテナー イメージをビルドし、指定されたコンテナー レジストリにプッシュします。

  4. イメージがビルドされると、全体的な [状態] が [移行準備完了] に変わります。

    Screenshot of the Target resource post building container image.

テスト移行を実行する

コンテナー イメージの準備ができたら、テスト移行を実行して、アプリケーションが AKS で正しく起動することを確認します。

  1. [概要] タブで [テスト移行] を選択し、[はい] を選択して確認します。
  2. テスト移行が完了したら、ワークロードが AKS クラスターで実行されていることを確認します。 レプリケーション プロセス中に外部ロード バランサー オプションを選択した場合は、パブリック IP アドレスが割り当てられた種類 loadbalancer のサービスを介して、アプリケーションをインターネットに公開する必要があります。
  3. アプリケーションが動作していることを確認したら、[テスト移行のクリーンアップ] を選択してテスト移行をクリーンアップします。

テスト移行が失敗した場合:

  1. [Azure Migrate: Server Migration ハブ] >[モダン化 (プレビュー)]>[ジョブ] に移動します。

  2. 失敗した [テスト移行の開始] ジョブを選択します。

    Screenshot of the failed test migrate job.

  3. 失敗したタスクのリンクを選択して、考えられる失敗の原因と推奨事項を確認します。

    Screenshot of the failed test migrate task.

AKS にアプリケーションを移行する

ついにアプリケーションを移行する準備ができました。

  1. [概要] タブで [移行] を選択し、[はい] を選択して確認します。

    Screenshot of the target resource ready for migration.

  2. テスト移行のワークフローと同様に、ワークロードが AKS クラスターで実行されていることを確認します。

  3. これで、アプリケーションが正常に移行されました。 アプライアンスでもう一度検出し、移行に使用できるようにする場合は、[移行の完了] を選択します。

次の手順

アプリケーションを AKS に正常に移行したら、次の記事を調べてクラウド用アプリを最適化できます。