移行のアシスタントを調べる

完了

移行の考慮事項の分析には、利用可能なさまざまなオプションをすべて確認することが含まれます。 前のユニットでは、IaaS や PaaS などのホスティング サービスについて説明しました。 IaaS への移行で提供されるリフトアンドシフト オプションを使用する場合は、VM を作成し、オンプレミス環境と同じソフトウェアと設定でそれを構成した後、Azure でそれをホストします。 IaaS の場合、VM 上のソフトウェアの管理、パッチ、更新、セキュリティ保護は、やはりユーザーの組織で行う必要があります。

移行したい ASP.NET アプリケーションがある場合は、PaaS オプションを使用して、Azure での自動化とスケーラビリティから最大のメリットを得ることを検討してください。 ASP.NET アプリケーションを使用する PaaS ソリューションの場合、検討は Azure App Service の使用に関することです。

Azure App Service とは

Azure App Service は、Web アプリケーションと REST API をホストするために使用できる、Azure 上の HTTP ベースのサービスです。 このサービスには、次のような利点があります。

  • 指定したパラメーターに基づいて、需要を満たすようにアプリをスケーリングした後、需要が減ったらスケールを自動的に縮小する自動スケーリング。

  • サーバーまたはデータセンターで障害やダウンタイムが発生した場合でもアプリケーションを引き続き使用できるようにする高可用性。 Azure でこれを実現するには、ゾーン、リージョン、可用性セットが使用されます。

  • Windows および Linux プラットフォームでのサポート。

  • Azure DevOps または GitHub リポジトリを使用して自動化されたデプロイ モデルとの統合。

Azure App Service による ASP.NET アプリのホスト方法

Azure App Service を使用すると、App Service プランで ASP.NET アプリケーションをホストできます。 App Service プランでは、ASP.NET アプリケーション用のコンピューティング リソースのセットが定義されています。 コンピューティング リソースは、オンプレミスのサーバー ファームのようなものと考えてください。 コンピューティング リソースは、アプリケーションをホストするために必要なソフトウェアが含まれる VM で構成されます。 これは、アプリをホストしている IIS で Windows Server 製品を実行している VM である場合があります。

Diagram of web app architecture hosted on Azure with app plan, DNS, resource group, and databases.

アプリでは、次のような他のリソースも使用されます。

  • 標準ポート 80 または HTTPS ポート 443 を使用して Web アプリケーションへのアクセスを提供するネットワーク リソース。 ネットワークにより、DNS とパブリック IP アドレスを構成するためのオプションも提供されます。
  • サービスに関する監視とログ記録のオプション。
  • Microsoft Entra ID とロールベースのアクセス制御 (RBAC) によるアクセス制御。
  • データベース アクセスやスケーリングと可用性のオプションなど、特定のアプリケーションに必要な構成に応じて使用可能なその他のオプション。
  • アプリケーションをホストするために必要なさまざまなファイルに関するストレージ オプション。

Azure SQL Database とは

Azure SQL Database は、クラウド向けに構築された、インテリジェントでスケーラブルなリレーショナル データベース サービスです。 フル マネージドの SQL データベース サービスであり、ユーザーの手を煩わせることなく、修正プログラムの適用、アップグレード、バックアップの管理が行われます。 Azure SQL データベースに関して選択できるデプロイ モデルは、単一データベースまたはエラスティック プールの 2 つです。

単一データベース モデル

単一データベース デプロイ モデルは、オンプレミスの SQL Server データベース エンジンにおける単一の包含データベースに似ています。 Azure SQL Database の単一デプロイ モデルでは、このユニットで既に説明したフル マネージド オプションを利用できます。 アプリケーションのデータ ニーズに合わせて分離されたデータベースです。

エラスティック プール モデル

エラスティック プールは、メモリや CPU などのリソースのセットを共有する単一データベースのコレクションです。 必要に応じて、単一データベースをエラスティック プールから外に移動したり、他の単一データベースをプールに移動したりすることができます。

用意されているさまざまなサービス レベルとコンピューティン グサイズを使用して、特定のアプリケーション ニーズに合わせて Azure SQL Database のデプロイをカスタマイズできます。 たとえば、既存のニーズを満たす 1 つの小さなデータベースから始めて、コストを抑えることができます。 アプリケーションの拡張が必要になったら、サービス レベルをアップグレードして、アプリケーションとデータ アクセスでの需要を満たすための動的なスケーラビリティ オプションを提供することができます。 動的スケーリングを使用すると、必要に応じてスケールを管理するためにリソースを追加し、後で需要が低下したらスケールを削減して、コストを低く抑えることができます。

Azure SQL Database と SQL Server を比較する

オンプレミスの SQL Server データベース エンジンを Azure SQL Database と比較すると、Azure を使用する利点を明らかにするのに役立ちます。

オンプレミスの SQL Server データベース エンジンの場合は、次のことを行います。

  • IT 部門にサーバー ハードウェアの購入を要求します。

  • オペレーティング システムのインストール。

  • データベース エンジンをインストールします。

  • 更新プログラムを管理します。

  • ファイアウォールのセキュリティを構成します。

  • データベース アクセスを管理します。

  • データベースのバックアップを管理します。

  • ディザスター リカバリーを管理します。

  • コンピューティング リソースが需要を満たすのに十分でなくなったら、新しいハードウェアで上記のすべてのタスクをもう一度実行します。

Azure SQL Database を使用する場合は、次のことを行います。

  • 選択したデプロイ モデルを使用して、Azure でデータベース インスタンスを作成します。

  • データを新しいインスタンスに移行します。

  • アプリケーション アクセスを構成します。

  • 必要に応じて、スケーラビリティ オプションを構成します。

  • マネージド環境のベネフィットを活用します。

ハイブリッド データのシナリオ

Azure ハイブリッド特典は、クラウドで SQL ワークロードを実行するためのライセンス コストを削減するのに役立つモデルです。 この特典を利用するには、Windows Server と SQL Server 用のオンプレミスの既存のソフトウェア アシュアランス対応ライセンスを、Azure プラットフォームで使用します。

次のグラフは、SQL Server Enterprise での節約の例を示したものです。

Graph of SQL hybrid savings, depicting enterprise at $3.97 per hour and hybrid at $0.598 per hour. This represents an 85% savings.

移行アシスタント ツールとは

Microsoft からは、既存の環境を評価し、移行の間に発生する可能性のある問題を明らかにし、アプリケーションとデータをクラウドに取り込む実際のプロセスを支援する、一連の移行アシスタント ツールが提供されています。

Azure Migrate とは

Azure Migrate は Microsoft から提供される無料のサービスであり、オンプレミスのシステムを検出して評価し、Azure に移行することができます。 このサービスを利用すると、移行するマシンのパフォーマンスに基づいてサイズ設定の計算 (VM のサイズ設定とコンピューティングおよびストレージ) を行い、これらのマシンを Azure で実行するための継続的なコストを見積もることができます。 Hyper-V と VMware ベースの両方の VM、を Azure Migrate で評価できます。また、物理サーバーも評価できます。 Azure Migrate では、それらのマシンの依存関係の視覚化もサポートされています。 それは、まとめて評価して最終的に Azure に移行できるコンピューターのグループを作成するのに役立ちます。 依存関係を理解することで、何も忘れていないという安心感が得られます。

Azure Migration Assistant とは

Azure Migration Assistant は、クラウドへの ASP.NET アプリケーションの移行を実行するために使用できるツールです。 無料でシンプルで高速なソリューションを使用して ASP.NET アプリケーションをオンプレミスからクラウドに移行することにより、クラウドへの移行が簡略化されるように設計されている、App Service Migration Assistant と共に動作します。 これらのツールを使用すると、次のことができます。

  • パブリック URL のスキャンを実行して、アプリが移行の候補として適しているかどうかを評価します。

  • Migration Assistant をダウンロードして、移行を開始します。

  • ツールを使用して、アプリの構成設定の準備チェックと全般的な評価を実行した後、アプリまたはサイトを Azure App Service に移行します。

Data Migration Assistant とは

Data Migration Assistant は、新しいバージョンの SQL Server または Azure SQL Database でのデータベース機能に影響する可能性のある互換性の問題を検出することにより、最新のデータ プラットフォームにアップグレードするのに役立ちます。 アシスタントを使用すると、ターゲット環境でのパフォーマンスと信頼性の改善が推奨され、スキーマ、データ、非包含オブジェクトをソース サーバーからターゲット サーバーに移動することができます。

主な機能は次のとおりです。

  • 互換性の問題または機能のサポート不足に起因する移行に関する問題を検出するための、オンプレミスの SQL Server インスタンスの評価

  • 利用できる Azure SQL Database の新機能の確認

  • オンプレミスの SQL Server インスタンスのクラウドへの移行

  • Azure SQL Database に移行するオンプレミスの SQL Server Integration Services パッケージの評価

既存の環境を評価する

移行プロセスでの重要なステップは、既存の環境の評価です。 これにより、移行シナリオでの円滑な切り替えが保証され、移行前、移行中、移行後に発生する可能性のある問題を明らかにすることもできます。

既存の環境のインベントリを作成する

既存の環境のインベントリを作成すると、移行の対象になっているサーバー、アプリケーション、サービスを特定するのに役立ちます。 それらのサービスで作業を行っている IT およびビジネス チームを利用して、移行に関するガイダンス、フィードバック、サポートを提供します。

また、移行の対象になっているサーバーとサービスの完全なインベントリと依存関係のマップを生成することもできます。 インベントリとマップにより、これらのサービスが相互に通信する方法が決まります。 それは、オンライン環境のニーズを定義して、移行を成功させるのに役立ちます。

アプリに必要な変更を明らかにする

アプリケーションが移行後に正常に動作するように、変更が必要になる場合があります。 たとえば、ASP.NET アプリケーションがデータベースにアクセスしているとします。 おそらく、データベース接続文字列の変更が必要になります。 Azure を使用する利点は、データベース接続文字列をシークレットとして Azure Key Vault に格納できることです。 これにより、キー コンテナー内のシークレットの背後に接続文字列を "隠す" ことで、接続文字列の認証パラメーターが保護されます。 その後、接続文字列を直接使用するのではなく、そのシークレットを使用するようにアプリを構成します。

コストの見積もり

すべての移行シナリオで重要な考慮事項は、Azure でアプリケーションをホストするために組織で発生するコストです。 一般的なオンプレミス環境とは異なるコスト モデルから移行することになります。 Azure 環境では、コンピューティング、ストレージ、アクセスのコストに関連するさまざまな従量課金コストについて、月額料金が請求されます。

前のユニットでは、Azure 料金計算ツールについて説明しました。これは、支出の見積もりを評価するのに役立ちます。

セキュリティに関する考慮事項を評価する

セキュリティは、移行シナリオにおける最優先事項であり、最優先事項にする必要があります。 ユーザーは、オンライン環境でデータをホストすることを心配したり、従業員が、現在の資格情報を使用して今後もアプリケーションにアクセスできるかどうかについて知りたいと思ったりしているかもしれません。 また、業界標準への準拠の観点から、データのセキュリティについて心配することもあります。 Azure で利用できるオプションを理解することは、これらの問題に対処するのに役立ちます。

アプリのセキュリティ要件を評価する

アプリでデータ ストアにアクセスする必要がある ASP.NET アプリケーションのシナリオでは、Web フロントエンドにアクセスできるようにしながら、データベースをセキュリティで保護する方法を検討する必要があります。 Azure には、そのために仮想ネットワークが用意されています。 Azure 仮想ネットワークは次のことに役立ちます。

  • ユーザーが制御するハイブリッド インフラストラクチャを構築する。

  • 独自の IP アドレスと DNS サーバーを使用する。

  • IPsec 仮想プライベート ネットワーク (VPN) または Azure ExpressRoute を使用して、接続をセキュリティで保護します。

  • サブネット間のトラフィックをきめ細かく制御する。

  • 仮想アプライアンスを使用して、高度なネットワーク トポロジを作成する。

  • アプリケーションのために、分離されて高度にセキュリティ保護された環境を実現する。

また、認証と ID 管理に Active Directory を使用して、オンプレミスで実行されているアプリケーションにアクセスすることもあります。 Microsoft Entra Connect を使うと、オンプレミスのディレクトリを Microsoft Entra ID と統合できます。 これは、従業員が認証用に複数の資格情報のセットを持つ必要がないことを意味します。

アプリとハードウェアに関してオンプレミス環境のインベントリを作成するのと同様に、移行シナリオについて適切なセキュリティ評価を実行できるように、既存のセキュリティ要件と実装を綿密に計画する必要もあります。 クラウドでホストされる環境で、組織のセキュリティ ニーズを引き続き満たされていることを確認する必要があります。

移行シナリオについて Azure Pipelines を調べる

多くの組織により、よりアジャイルな開発と高速なデプロイのために、DevOps のプラクティスが導入されています。 クラウド環境でこれを可能にする主な領域の 1 つは、開発者が使用するツール間のネイティブ統合です。 Microsoft Visual Studio、GitHub、App Service の統合により、開発者は変更を迅速にビルドして出荷できるようになります。 ASP.NET アプリケーションの場合、リモートとライブサイトのデバッグにより、運用環境での問題の診断に関して、いっそう大きなメリットが開発者に提供されます。