オンプレミスの Linux アプリケーションを Azure VM にリホストする

この記事では、Contoso という架空の会社が、Azure IaaS (サービスとしてのインフラストラクチャ) 仮想マシン (VM) を使用して、LAMP ベースの 2 層アプリケーションをリホストする方法について説明します。

この例で使用されるサービス デスク アプリケーションである osTicket は、オープンソース ソフトウェアとして提供されています。 独自のテスト目的に沿って使用する場合は、GitHub からダウンロードできます。

ビジネス ドライバー

IT リーダーシップ チームは、ビジネス パートナーと密接に連絡を取り合い、彼らがこの移行で何を達成しようとしているのかを理解しました。

  • ビジネスの成長への対応。 Contoso は成長を続けています。その結果、オンプレミスのシステムとインフラストラクチャに負荷がかかっています。
  • リスクの限定。 このサービス デスク アプリケーションは、Contoso のビジネスにとって非常に重要です。 Contoso は、リスクを負うことなく Azure に移行したいと考えています。
  • 拡張。 Contoso は、アプリケーションに今すぐ変更を加えることは望んでいません。 アプリケーションの安定性を確保することを望んでいます。

移行の目標

Contoso クラウド チームは、最適な移行方法を決定するために、この移行の目標を明確にしました。

  • 移行後、Azure 内のアプリケーションは、現在のオンプレミスの VMware 環境内と同じパフォーマンスを発揮できる必要があります。 このアプリケーションは、オンプレミスにあったときと同様に、クラウドでも引き続き非常に重要です。
  • Contoso は、このアプリケーションに投資することは望んでいません。 これはビジネスにとって重要なものですが、現状のまま確実にクラウドに移すことだけを望んでいます。
  • Contoso は、このアプリケーションの操作モデルを変更したくありません。 現在と同様に、クラウドでアプリケーションを操作したいと考えています。
  • Contoso は、アプリケーションの機能を変更したくありません。 変えるのはアプリケーションの場所のみです。
  • Windows アプリケーションの移行を何件か完了したら、Contoso は Azure で Linux ベースのインフラストラクチャを使用する方法を学びたいと考えています。

ソリューション設計

Contoso は、目標と要件を明確にした後、デプロイ ソリューションを設計してレビューし、移行プロセスを確認します。 Contoso が移行に使用する Azure サービスも確認します。

現在のアプリケーション

  • osTicket アプリケーションは、2 つの VM (OSTICKETWEBOSTICKETMYSQL) に階層化されています。
  • これらの VM は、VMware ESXi ホスト contosohost1.contoso.com (バージョン 6.5) 上に配置されています。
  • VMware 環境は vCenter Server 6.5 (vcenter.contoso.com) によって管理され、VM 上で実行されています。
  • Contoso には、オンプレミスのデータセンター (contoso-datacenter) があり、これにはオンプレミスのドメイン コントローラー (contosodc1) が含まれています。

提案されたアーキテクチャ

  • このアプリケーションは運用ワークロードであるため、Azure 内の VM は運用リソース グループ ContosoRG に配置されます。
  • VM はプライマリ リージョン (米国東部 2) に移行され、運用ネットワーク (VNET-PROD-EUS2) 内に配置されます。
    • Web VM は、フロントエンド サブネット (PROD-FE-EUS2) 内に存在することになります。
    • データベース VM は、データベース サブネット (PROD-DB-EUS2) 内に存在することになります。
  • Contoso データセンター内のオンプレミス VM は、移行が行われた後に使用停止にされます。

シナリオ アーキテクチャの図。

ソリューションのレビュー

Contoso は、長所と短所の一覧をまとめて、提案されたデザインを評価します。

考慮事項 詳細
長所 アプリケーション VM はどちらも変更なしで Azure に移されるので、移行が簡単になります。

Contoso は両方のアプリケーション VM にリフトアンドシフト アプローチを使用するため、アプリケーション データベース用に特別な構成や移行ツールは不要です。

Contoso は、Azure で引き続きアプリケーションの VM を完全に制御できます。

アプリケーションの VM では、動作保証済みの Linux ディストリビューション Ubuntu 16.04-TLS が実行されています。 Azure で動作保証済みの Linux ディストリビューションの詳細をご覧ください。
短所 アプリケーションの Web 層とデータ層は、依然として単一フェールオーバー ポイントになります。

Contoso は、Azure App Service や Azure Database for MySQL などのマネージド サービスに移行するのではなく、引き続き Azure VM としてアプリケーションをサポートする必要があります。

Contoso は、リフトアンドシフトの VM 移行によって単純化すると、Azure Database for MySQL の特長を最大限に活用できないことを認識しています。 これらの特長には、組み込みの高可用性、予測可能なパフォーマンス、単純なスケーリング、自動バックアップ、組み込みのセキュリティなどがあります。

移行プロセス

Contoso は、次のようにして移行プロセスを完了します。

  • 最初の手順として、Azure Migrate:Server Migration 用の Azure コンポーネントを準備および設定し、オンプレミスの VMware インフラストラクチャを準備します。
  • 同社には、Azure インフラストラクチャが既に用意されているので、Azure Migrate: Server Migration ツールを使用して VM のレプリケーションを構成するだけで済みます。
  • すべての準備ができたら、VM のレプリケートを開始できます。
  • レプリケーションを有効にしたら、Azure へのフェールオーバーによって VM を移行します。

移行プロセスの図。

Azure サービス

サービス 説明 コスト
Azure Migrate: Server Migration このサービスは、オンプレミスのアプリケーションとワークロード、および Amazon Web Services (AWS) と Google Cloud Platform (GCP) VM のインスタンスの移行を調整、管理します。 Azure へのレプリケーションの間に、Azure Storage の料金が発生します。 移行が行われると、Azure VM が作成されて料金がかかります。 料金と価格の詳細をご覧ください。

前提条件

このシナリオで Contoso に必要なことを以下に示します。

必要条件 詳細
Azure サブスクリプション このシリーズの先行する記事の中で、Contoso はサブスクリプションを作成しました。 Azure サブスクリプションをお持ちでない場合は、無料アカウントを作成してください。

無料アカウントを作成する場合、サブスクリプションの管理者としてすべてのアクションを実行できます。

既存のサブスクリプションを使用する場合に、自分が管理者でないようであれば、管理者と連携して所有者または共同作成者のアクセス許可を自分に割り当てます。

より詳細なアクセス許可が必要な場合は、「Azure のロールベースのアクセス制御 (Azure RBAC) を使用して Site Recovery のアクセスを管理する」をご覧ください。
Azure インフラストラクチャ Contoso が Azure インフラストラクチャをセットアップする方法を確認します。

以下についての具体的な前提条件をご確認ください。Azure Migrate:Server Migration に関するエラーのトラブルシューティングに役立つ情報を提供しています。
オンプレミスのサーバー オンプレミス vCenter Server では、バージョン 5.5、6.0、または 6.5 を実行している必要があります。

バージョン 5.5、6.0、または 6.5 を実行している ESXi ホスト。

ESXi ホスト上で実行している 1 つ以上の VMware VM。
オンプレミスの VM Azure での実行が保証されている Linux ディストリビューションを確認します

シナリオのステップ

Contoso は、次のようにして移行を完了します。

  • ステップ 1:Azure Migrate: Server Migration 用の Azure を準備するServer Migration. Azure Migrate:Server Migration ツールを Azure Migrate プロジェクトに追加します。
  • 手順 2:Azure Migrate: Server Migration 用のオンプレミス VMware を準備するServer Migration. VM 検出用のアカウントを準備し、移行後に Azure VM に接続するための準備をします。
  • ステップ 3:VM をレプリケートする。 レプリケーションを設定し、Azure Storage への VM のレプリケーションを開始します。
  • 手順 4:Azure Migrate: Server Migration で VM を移行するServer Migration. テスト移行を実行してすべてが機能していることを確認した後、移行を実行して VM を Azure に移動します。

手順 1:Azure Migrate: Server Migration ツール用の Azure を準備するServer Migration ツール

Contoso が VM を Azure に移行するには、以下の Azure コンポーネントが必要です。

  • 移行中に作成される Azure VM が配置される仮想ネットワーク。
  • Azure Migrate: Server Migration ツール (プロビジョニング済みのもの)。

これらのコンポーネントを次のように設定します。

  1. ネットワークをセットアップします。 Contoso は、Azure インフラストラクチャをデプロイしたときに、Azure Migrate: Server Migration に使用できるネットワークを既にセットアップしています。

    • SmartHotel360 アプリケーションは運用アプリケーションです。 VM は、プライマリ リージョン (East US 2) の Azure 運用ネットワーク (VNET-PROD-EUS2) に移行されます。
    • 両方の VM は、運用リソースのために使用される ContosoRG リソース グループに配置されます。
    • アプリケーション フロントエンド VM (OSTICKETWEB) は、運用ネットワークのフロントエンド サブネット (PROD-FE-EUS2) に移行されます。
    • アプリケーション データベース VM (OSTICKETMYSQL) は、運用ネットワークのデータベース サブネット (PROD-DB-EUS2) に移行されます。
  2. Azure Migrate: Server Migration ツールをプロビジョニングしますサーバー移行ツール。 ネットワークとストレージ アカウントが用意できたので、Recovery Services コンテナー (ContosoMigrationVault) を作成し、それをプライマリ リージョン (East US 2) の ContosoFailoverRG リソース グループに配置します。

    Azure Migrate サーバー移行ツールを示すスクリーンショット

さらにサポートが必要な場合

Azure Migrate: Server Migration ツールの設定についてご確認ください。

手順 2:Azure Migrate: Server Migration 用のオンプレミス VMware を準備するServer Migration

Contoso は、Azure への移行後に、Azure 内のレプリケートされた VM に接続できることを望んでいます。 Contoso の管理者は次のことを行う必要があります。

  • Azure VM にインターネット経由でアクセスするには、移行前に、オンプレミス Linux VM 上で SSH を有効にします。 Ubuntu の場合、sudo apt-get ssh install -y コマンドを使用してこの手順を実行できます。
  • Azure Linux エージェントをインストールします。
  • 移行を実行したら、ブート診断を調べて、VM のスクリーンショットを表示できます。
  • これが機能しない場合は、VM が実行中であることを確認し、こちらのトラブルシューティングのヒントを参照する必要があります。

さらにサポートが必要な場合

移行に向けて VM を準備する方法をご覧ください。

手順 3:オンプレミスの VM をレプリケートする

Contoso の管理者は、Azure への移行を実行する前に、レプリケーションを設定して有効にする必要があります。

検出が完了したら、Azure への VMware VM のレプリケーションを開始します。

  1. Azure Migrate プロジェクトで、 [サーバー]>[Azure Migrate:Server Migration] の順に移動し、 [レプリケート] を選択します。

    [レプリケート] オプションを示すスクリーンショット。

  2. [レプリケート]>[ソースの設定]>[マシンは仮想化されていますか?] で、 [はい (VMware vSphere の場合)] を選択します。

  3. [オンプレミスのアプライアンス] で、設定した Azure Migrate アプライアンスの名前を選択し、 [OK] を選択します。

    [ソースの設定] タブを示すスクリーンショット。

  4. [仮想マシン] で、レプリケートしたいマシンを選択します。

    • VM の評価を実行した場合は、評価結果から VM のサイズ設定とディスクの種類 (Premium または Standard) の推奨事項を適用できます。 [Azure Migrate Assessment から移行設定をインポートしますか?] で、 [はい] オプションを選択します。
    • 評価を実行しなかった場合、または評価の設定を使用しない場合は、 [いいえ] オプションを選択します。
    • 評価の使用を選択した場合は、VM グループと評価名を選択します。

    評価の選択を示すスクリーンショット。

  5. [仮想マシン] で、必要に応じて VM を検索し、移行する各 VM を選択します。 次に、 [次のステップ: ターゲット設定] をクリックします。

  6. [ターゲット設定] で、移行先のサブスクリプションとターゲット リージョンを選択します。 移行後に Azure VM が属するリソース グループを指定します。 [仮想ネットワーク] で、移行後に Azure VM の参加先となる Azure 仮想ネットワークまたはサブネットを選択します。

  7. [Azure ハイブリッド特典] で、

    • Azure ハイブリッド特典を適用しない場合は、 [いいえ] を選択します。 [次へ] を選択します。
    • アクティブなソフトウェア アシュアランスまたは Windows Server サブスクリプションの対象となっている Windows Server マシンがあり、移行するマシンに特典を適用する場合は、 [はい] を選択します。 [次へ] を選択します。
  8. [コンピューティング] で、VM の名前、サイズ、OS ディスクの種類、可用性セットを確認します。 VM は Azure の要件に準拠している必要があります。

    • VM サイズ:評価の推奨事項を使用している場合は、[VM サイズ] ドロップダウン リストに推奨サイズが表示されます。 それ以外の場合は、Azure Migrate によって、Azure サブスクリプション内の最も近いサイズが選択されます。 または、 [Azure VM サイズ] でサイズを手動で選択します。
    • OS ディスク: VM の OS (ブート) ディスクを指定します。 OS ディスクは、オペレーティング システムのブートローダーとインストーラーがあるディスクです。
    • 可用性セット: 移行後に VM を Azure 可用性セットに配置する必要がある場合は、セットを指定します。 このセットは、移行用に指定するターゲット リソース グループ内に存在する必要があります。
  9. [ディスク] で、VM ディスクを Azure にレプリケートするかどうかを指定します。 Azure でのディスクタイプ (Standard SSD または HDD、あるいは Premium SSD) を選択します。 [次へ] を選択します。

    • レプリケーションからディスクを除外できます。
    • ディスクを除外すると、移行後に Azure VM 上に存在しなくなります。
  10. [レプリケーションの確認と開始] で、設定を確認します。 次に、 [レプリケート] を選択して、サーバーの初期レプリケーションを開始します。

Note

レプリケーションを開始する前であれば、 [管理]>[マシンのレプリケート] でレプリケーションの設定をいつでも更新できます。 レプリケーションの開始後は、設定を変更することができません。

手順 4:VM を移行する

Contoso の管理者は、クイック テスト移行を実行した後、移行を実行して VM を移動します。

テスト移行を実行する

  1. [移行の目標]>[サーバー]>[Azure Migrate: Server Migration] で、 [移行されたサーバーをテストします] を選択します。

    [移行されたサーバーをテストします] オプションを示すスクリーンショット。

  2. テストする VM を選択したままにします (または右クリックします)。 次に、 [テスト移行] を選択します。

    [テスト移行] 項目を示すスクリーンショット。

  3. [テスト移行] で、移行後に Azure VM が配置される Azure 仮想ネットワークを選択します。 非運用環境の仮想ネットワークを使用することをお勧めします。

  4. テスト移行ジョブが開始されます。 ポータルの通知でジョブを監視します。

  5. 移行の完了後、Azure portal の [仮想マシン] で、移行された Azure VM を確認します。 マシン名には、サフィックス -Test が含まれています。

  6. テストが完了したら、 [マシンのレプリケート] で Azure VM を選択したままにします (または右クリックします)。 次に、 [テスト移行をクリーンアップ] を選択します。

    [テスト移行をクリーンアップ] 項目を示すスクリーンショット。

VM を移行する

Contoso の管理者は、ここで、移動を完了する完全移行を実行します。

  1. Azure Migrate プロジェクトで、 [サーバー]>[Azure Migrate:Server Migration] の順に移動し、 [サーバーをレプリケートしています] を選択します。

    [サーバーをレプリケートしています] オプションを示すスクリーンショット。

  2. [マシンのレプリケート] で VM を選択したまま (または右クリックし)、 [移行] を選択します。

  3. [移行]>[仮想マシンをシャットダウンし、データ損失のない計画された移行を実行しますか] で、 [はい]>[OK] の順に選択します。

    • 既定では、Azure Migrate によってオンプレミス VM がシャットダウンされ、前回のレプリケーションが発生した後に行われた VM の変更を同期するためにオンデマンド レプリケーションが実行されます。 このアクションにより、データ損失が発生しなくなります。
    • VM をシャットダウンしたくない場合は、 [いいえ] を選択します。
  4. VM に対して移行ジョブが開始されます。 Azure 通知でジョブを追跡します。

  5. ジョブが完了したら、 [仮想マシン] ページで VM を表示して管理できます。

VM をデータベースに接続する

移行プロセスの最終ステップとして、Contoso の管理者は、OSTICKETMYSQL VM で実行されているアプリケーション データベースを指すようにアプリケーションの接続文字列を更新します。

  1. PuTTY または別の SSH クライアントを使用して、OSTICKETWEB VM への SSH 接続を行います。 この VM はプライベートであるため、プライベート IP アドレスを使用して接続します。

    [仮想マシンに接続する] ペインを示すスクリーンショット。

    データベースへの接続を示すスクリーンショット。

  2. OSTICKETWEB VM が OSTICKETMYSQL VM と通信できることを確認します。 この時点で、構成はオンプレミスの IP アドレス 172.16.0.43 でハードコードされています。

    更新の前:

    更新前の IP を示すスクリーンショット。

    更新の後:

    更新後の IP を示すスクリーンショット。

  3. systemctl restart apache2 でサービスを再起動します。

    サービスの再起動を示すスクリーンショット。

  4. 最後に、Contoso ドメイン コントローラーのいずれかで、OSTICKETWEBOSTICKETMYSQL の DNS レコードを更新します。

    DNS レコードの更新を示すスクリーンショット。

    DNS レコードの更新を示すスクリーンショット。

さらにサポートが必要な場合

移行後にクリーンアップする

移行が完了すると、osTicket のアプリケーション層は Azure VM で実行されるようになります。

ここで、Contoso は次の作業を行う必要があります。

  • vCenter のインベントリからオンプレミスの VM を削除します。
  • ローカルのバックアップ ジョブからからオンプレミスの VM を削除します。
  • OSTICKETWEB および OSTICKETMYSQL の新しい場所と IP アドレスを示すように内部ドキュメントを更新します。
  • VM とやり取りするリソースを確認します。 すべての関連する設定またはドキュメントを更新して新しい構成を反映します。
  • Contoso では、管理 VM で Azure Migrate サービスを使用し、移行のための VM を評価しました。 管理者は、VMware ESXi Server から移行 VM と Web VM を削除する必要があります。

デプロイを再調査する

アプリケーションが実行されるようになったので、Contoso は新しいインフラストラクチャを完全に操作可能にし、セキュリティで保護する必要があります。

Security

Contoso セキュリティ チームは、OSTICKETWEBOSTICKETMYSQL VM を調査して、セキュリティの問題を特定します。

  • アクセスを制御するために、VM のネットワーク セキュリティ グループ (NSG) を見直します。 NSG は、アプリケーションに対して許可されるトラフィックのみが通過できるようにするために使用されます。
  • チームは、Azure Disk Encryption と Azure Key Vault を使用して、VM ディスク上のデータをセキュリティで保護することも検討します。

詳細については、「Azure における IaaS ワークロードのセキュリティに関するベスト プラクティス」を参照してください。

事業継続とディザスター リカバリー

事業継続とディザスター リカバリーのために、Contoso は次のアクションを実施します。

ライセンスとコストの最適化