アプリケーションの移行パターンと例Application migration patterns and examples

Cloud Adoption Framework のこのセクションでは、一般的な移行シナリオの例をいくつか紹介し、オンプレミス インフラストラクチャを Microsoft Azure クラウドに移行するための方法を示します。This section of the Cloud Adoption Framework provides examples of several common migration scenarios, demonstrating how you can migrate on-premises infrastructure to the Microsoft Azure cloud.

はじめにIntroduction

Azure には、クラウド サービスの包括的なセットが用意されています。Azure provides access to a comprehensive set of cloud services. 開発者や IT プロフェッショナルは、これらのサービスを利用し、データセンターのグローバルなネットワークを通じて、さまざまなツールやフレームワークをベースにアプリケーションを構築、デプロイ、および管理することができます。As developers and IT professionals, you can use these services to build, deploy, and manage applications on a range of tools and frameworks, through a global network of datacenters. ビジネスはデジタル シフトに関連する課題に直面しているため、Azure クラウドはリソースや操作の最適化、お客様や従業員との連携、および製品の変換の方法を理解できるように支援します。As your business faces challenges associated with the digital shift, the Azure cloud helps you to figure out how to optimize resources and operations, engage with your customers and employees, and transform your products.

ただし、速度と柔軟性、最小限のコスト、パフォーマンス、および信頼性の面でのクラウドのすべての利点にもかかわらず、多くの組織ではまだしばらくの間、オンプレミス データセンターを実行する必要があることも認識しています。However, Azure recognizes that even with all the advantages that the cloud provides in terms of speed and flexibility, minimized costs, performance, and reliability, many organizations are going to need to run on-premises datacenters for some time to come. クラウドの採用の障壁に対処するために、Azure では、オンプレミスのデータセンターと Azure パブリック クラウドの間に橋を構築するハイブリッド クラウド戦略を提供しています。In response to cloud adoption barriers, Azure provides a hybrid cloud strategy that builds bridges between your on-premises datacenters, and the Azure public cloud. たとえば、Azure Backup などの Azure クラウド リソースを使用してオンプレミスのリソースを保護したり、Azure 分析を使用してオンプレミスのワークロードを把握したりすることができます。For example, using Azure cloud resources like Azure Backup to protect on-premises resources, or using Azure analytics to gain insights into on-premises workloads.

ハイブリッド クラウド戦略の一環として、Azure ではオンプレミスのアプリやワークロードをクラウドに移行するためのソリューションを用意しています。As part of the hybrid cloud strategy, Azure provides growing solutions for migrating on-premises apps and workloads to the cloud. 簡単な手順で、オンプレミス リソースを包括的に評価し、Azure クラウドではどのように実行されるかを把握することができます。With simple steps, you can comprehensively assess your on-premises resources to figure out how they'll run in the Azure cloud. 次に、入手した詳しい評価に基づき、自信を持ってリソースを Azure に移行することができます。Then, with a deep assessment in hand, you can confidently migrate resources to Azure. Azure でリソースを稼働させたら、リソースを最適化して、アクセス、柔軟性、セキュリティ、および信頼性を保持したり向上させたりすることができます。When resources are up and running in Azure, you can optimize them to retain and improve access, flexibility, security, and reliability.

移行パターンMigration patterns

クラウドへの移行戦略は、リホスト、リファクター、リアーキテクト、リビルドという 4 つの大きなパターンに分類できます。Strategies for migration to the cloud fall into four broad patterns: rehost, refactor, rearchitect, or rebuild. 採用する戦略は、ビジネスの主導者や移行の目標によって変わります。The strategy you adopt depends on your business drivers and migration goals. 複数のパターンを採用する場合もあります。You might adopt multiple patterns. たとえば、単純なアプリやビジネス上重要でないアプリはリホストし、より複雑でビジネスに不可欠なアプリはリアーキテクトするという選択も可能です。For example, you could choose to rehost simple apps, or apps that aren't critical to your business, but rearchitect those that are more complex and business-critical. これらのパターンを確認しましょう。Let's look at these patterns.

パターンPattern 定義Definition いつ使用するかWhen to use
リホストRehost 多くの場合、"リフトアンドシフト" の移行と呼ばれます。Often referred to as a "lift and shift" migration. このオプションでは、コードの変更を必要とせずに、既存のアプリを Azure にすばやく移行できます。This option doesn't require code changes, and allows you to migrate your existing apps to Azure quickly. 各アプリはそのままの状態で移行されるので、コード変更に伴うリスクとコストなしにクラウドのメリットを享受できます。Each app is migrated as is, to reap the benefits of the cloud, without the risk and cost associated with code changes. アプリをクラウドにすばやく移動する必要がある場合。When you need to move apps quickly to the cloud.

アプリを変更せずに移動したい場合。When you want to move an app without modifying it.

移行後に Azure IaaS のスケーラビリティを活かせるように、アプリが設計されている場合。When your apps are architected so that they can take advantage of Azure IaaS scalability after migration.

ビジネスにとって重要なアプリであるが、アプリの機能をすぐに変更する必要がない場合。When apps are important to your business, but you don't need immediate changes to app capabilities.
リファクターRefactor 多くの場合、"再パッケージ化" と呼ばれます。リファクターを行うには、Azure PaaS に接続してクラウド サービスを使用できるように、アプリに最小限の変更を加える必要があります。Often referred to as "repackaging," refactoring requires minimal changes to apps, so that they can connect to Azure PaaS, and use cloud offerings.

たとえば、既存のアプリを Azure App Service または Azure Kubernetes Service (AKS) に移行できます。For example, you could migrate existing apps to Azure App Service or Azure Kubernetes Service (AKS).

または、リレーショナル データベースおよび非リレーショナル データベースを、Azure SQL Database Managed Instance、Azure Database for MySQL、Azure Database for PostgreSQL、Azure Cosmos DB などのオプションにリファクターすることもできます。Or, you could refactor relational and nonrelational databases into options such as Azure SQL Database Managed Instance, Azure Database for MySQL, Azure Database for PostgreSQL, and Azure Cosmos DB.
Azure で動作するようにアプリを簡単に再パッケージ化できる場合。If your app can easily be repackaged to work in Azure.

Azure が提供する革新的な DevOps プラクティスを適用したい場合、またはワークロード向けのコンテナー戦略を使用した DevOps を検討している場合。If you want to apply innovative DevOps practices provided by Azure, or you're thinking about DevOps using a container strategy for workloads.

リファクタリングでは、既存のコード ベースの移植性と使用可能な開発スキルを考慮する必要があります。For refactoring, you need to think about the portability of your existing code base, and available development skills.
リアーキテクトRearchitect 移行のためのリアーキテクトは、アプリのアーキテクチャを最適化してクラウドのスケーラビリティを活かすために、アプリの機能とコード ベースを変更、拡張することを中心とした作業となります。Rearchitecting for migration focuses on modifying and extending app functionality and the code base to optimize the app architecture for cloud scalability.

たとえば、モノリシック アプリケーションを、相互に連携し、簡単にスケーリングできるマイクロサービスのグループに分割できます。For example, you could break down a monolithic application into a group of microservices that work together and scale easily.

または、リレーショナル データベースと非リレーショナル データベースを、Azure SQL Database Managed Instance、Azure Database for MySQL、Azure Database for PostgreSQL、Azure Cosmos DB など、フル マネージドのデータベース ソリューションにリアーキテクトすることもできます。Or, you could rearchitect relational and nonrelational databases to a fully managed database solution, such as Azure SQL Database Managed Instance, Azure Database for MySQL, Azure Database for PostgreSQL, and Azure Cosmos DB.
アプリにメジャー リビジョンを施し、新機能を組み込んだり、クラウド プラットフォームで作業を効果的に行ったりする必要がある場合。When your apps need major revisions to incorporate new capabilities, or to work effectively on a cloud platform.

既存のアプリケーションへの投資を活かしたい場合、スケーラビリティ要件を満たしたい場合、革新的な Azure DevOps プラクティスを適用したい場合、仮想マシンの使用を最小限に抑えたい場合。When you want to use existing application investments, meet scalability requirements, apply innovative Azure DevOps practices, and minimize use of virtual machines.
リビルドRebuild リビルドでは、Azure のクラウド テクノロジを利用してアプリを最初からリビルドし、進化させることができます。Rebuild takes things a step further by rebuilding an app from scratch using Azure cloud technologies.

たとえば、Azure Functions、Azure AI、Azure SQL Database Managed Instance、Azure Cosmos DB などのクラウド ネイティブ テクノロジを活用して、新しいアプリを構築できます。For example, you could build greenfield apps with cloud-native technologies like Azure Functions, Azure AI, Azure SQL Database Managed Instance, and Azure Cosmos DB.
開発は迅速に行いたいが、既存のアプリの機能と寿命が限られている場合。When you want rapid development, and existing apps have limited functionality and lifespan.

ビジネスのイノベーションの加速 (Azure が提供する DevOps のプラクティスを含む)、クラウドネイティブ テクノロジを活用した新しいアプリケーションの構築、AI、ブロックチェーン、IoT の進化の活用に対する準備が整っている場合。When you're ready to expedite business innovation (including DevOps practices provided by Azure), build new applications using cloud-native technologies, and take advantage of advancements in AI, Blockchain, and IoT.

移行例に関する記事Migration example articles

このセクションに示した記事では、いくつかの一般的な移行シナリオの例を紹介しています。The articles in this section provide examples of several common migration scenarios. これらの各例では、背景情報や詳細なデプロイ シナリオについて説明すると共に、移行のインフラストラクチャを設定して移行のためのオンプレミス リソースの適合性を評価する方法を示しています。Each of these examples include background information and detailed deployment scenarios that illustrate how to set up a migration infrastructure and assess the suitability of on-premises resources for migration. このセクションには、今後も記事が追加される予定です。More articles will be added to this section over time.

一般的な移行/モダン化プロジェクト

"一般的な移行およびモダン化プロジェクトのカテゴリ。"Common migration and modernization project categories.

シリーズ内の記事は、以下のように要約されます。The articles in the series are summarized below.

  • 各移行シナリオは、少しずつ異なるビジネス目標に沿って作成されています。このビジネス目標によって移行戦略が決まります。Each migration scenario is driven by slightly different business goals that determine the migration strategy.
  • 各デプロイ シナリオでは、ビジネス ドライバーと目標、提案されたアーキテクチャ、移行を実施するための手順、クリーンアップの推奨事項、移行完了後の次の手順についての情報が記載されています。For each deployment scenario, we provide information about business drivers and goals, a proposed architecture, steps to perform the migration, and recommendation for cleanup and next steps after migration is complete.

評価Assessment

記事Article 詳細Details
Azure への移行の対象となるオンプレミスのリソースの評価Assess on-premises resources for migration to Azure この記事では、VMware 上で実行されているオンプレミス アプリの評価を実行する方法を示します。This article shows how to run an assessment of an on-premises app running on VMware. 例では、サンプル組織が Azure Migrate サービスを使用してアプリの VM を、また、Data Migration Assistant を使用してアプリの SQL Server データベースを評価します。In the example, an example organization assesses app VMs using the Azure Migrate service, and the app SQL Server database using Data Migration Assistant.

インフラストラクチャInfrastructure

記事Article 詳細Details
Azure インフラストラクチャをデプロイするDeploy Azure infrastructure この記事では、組織が移行に向けてオンプレミス インフラストラクチャと Azure インフラストラクチャを準備する方法を示します。This article shows how an organization can prepare its on-premises infrastructure and its Azure infrastructure for migration. この記事で構築したインフラストラクチャの例は、このセクション内で紹介されている他のサンプルの中で参照されます。The infrastructure example established in this article is referenced in the other samples provided in this section.

Windows Server ワークロードWindows Server workloads

記事Article 詳細Details
Azure VM でのアプリのリホストRehost an app on Azure VMs この記事では、Site Recovery サービスを使用してオンプレミス アプリ VM を Azure VM に移行する例を示します。This article provides an example of migrating on-premises app VMs to Azure VMs using the Site Recovery service.
Azure コンテナーと Azure SQL Database 内でアプリをリアーキテクトするRearchitect an app in Azure containers and Azure SQL Database この記事では、Azure Service Fabric 内で実行される Windows コンテナーとしてアプリの Web 層をリアーキテクトし、さらに、Azure SQL Database を使用してデータベースをリアーキテクトして、アプリを移行する例を示します。This article provides an example of migrating an app while rearchitecting the app web tier as a Windows container running in Azure Service Fabric, and the database with Azure SQL Database.

Linux ワークロードLinux workloads

記事Article 詳細Details
Azure VM および Azure Database for MySQL での Linux アプリのリホストRehost a Linux app on Azure VMs and Azure Database for MySQL この記事では、Site Recovery を使用して Linux でホストされているアプリを Azure VM に移行する例を示します。This article provides an example of migrating a Linux-hosted app to Azure VMs by using Site Recovery. アプリ データベースを Azure Database for MySQL に移行するために MySQL Workbench を使用します。It migrates the app database to Azure Database for MySQL by using MySQL Workbench.
Linux アプリの Azure VM へのリホストRehost a Linux app on Azure VMs この例では、Site Recovery サービスを使用して、Linux ベース アプリの Azure VM への "リフトアンドシフト" 移行を完了する方法を示します。This example shows how to complete a "lift and shift" migration of a Linux-based app to Azure VMs, using the Site Recovery service.

SQL Server ワークロードSQL Server workloads

記事Article 詳細Details
Azure VM および SQL Database Managed Instance でのアプリのリホストRehost an app on an Azure VM and SQL Database Managed Instance この記事では、オンプレミス アプリの Azure への "リフト アンド シフト" 移行の例を示します。This article provides an example of a "lift and shift" migration to Azure for an on-premises app. これには、Azure Site Recovery を使用してアプリのフロントエンド VM を移行し、Azure Database Migration Service を使用してアプリのデータベースを Azure SQL Database Managed Instance に移行します。This involves migrating the app front-end VM using Azure Site Recovery, and the app database to an Azure SQL Database Managed Instance using the Azure Database Migration Service.
Azure VM および SQL Server Always On 可用性グループでのアプリのリホストRehost an app on Azure VMs and in a SQL Server Always On availability group この例では、Azure にホストされている SQL Server VM を使用して、アプリとデータを移行する方法を示します。This example shows how to migrate an app and data using Azure hosted SQL Server VMs. Site Recovery を使用してアプリの VM を移行し、Azure Database Migration Service を使用してアプリのデータベースを Always On 可用性グループで保護されている SQL Server クラスターに移行します。It uses Site Recovery to migrate the app VMs, and the Azure Database Migration Service to migrate the app database to a SQL Server cluster that's protected by an Always On availability group.

ASP.NET / PHP / Java アプリASP.NET / PHP / Java apps

記事Article 詳細Details
Azure Web App と Azure SQL Database 内でアプリをリファクターするRefactor an app in an Azure web app and Azure SQL Database この例では、オンプレミスの Windows ベース アプリを Azure Web アプリに移行し、また、Database Migration Assistant を使用してアプリのデータベースを Azure SQL Server インスタンスに移行する方法を示します。This example shows how to migrate an on-premises Windows-based app to an Azure web app and migrates the app database to an Azure SQL Server instance with the Data Migration Assistant.
Azure App Service、Azure Traffic Manager、および Azure Database for MySQL を使用して複数のリージョンに Linux アプリをリファクターするRefactor a Linux app to multiple regions using Azure App Service, Azure Traffic Manager, and Azure Database for MySQL この例では、Azure Traffic Manager を使用してオンプレミスの Linux ベース アプリを、継続的デリバリーのために GitHub に統合される複数の Azure リージョン上の Azure Web アプリに移行する方法を示します。This example shows how to migrate an on-premises Linux-based app to an Azure web app on multiple Azure regions using Azure Traffic Manager, integrated with GitHub for continuous delivery. アプリのデータベースは Azure Database for MySQL インスタンスに移行されます。The app database is migrated to an Azure Database for MySQL instance.
Azure でのアプリのリビルドRebuild an app in Azure この記事では、Azure のさまざまな機能とマネージド サービス (Azure App Service、Azure Kubernetes Service (AKS)、Azure Functions、Azure Cognitive Services、Azure Cosmos DB など) を使用してオンプレミス アプリをリビルドする例を示します。This article provides an example of rebuilding an on-premises app using a range of Azure capabilities and managed services, including Azure App Service, Azure Kubernetes Service (AKS), Azure Functions, Azure Cognitive Services, and Azure Cosmos DB.
Azure DevOps Services 上で Team Foundation Server をリファクターするRefactor Team Foundation Server on Azure DevOps Services この記事では、オンプレミスの Team Foundation Server のデプロイを Azure 内の Azure DevOps Services に移行する例を示します。This article shows an example migration of an on-premises Team Foundation Server deployment to Azure DevOps Services in Azure.

移行のスケーリングMigration scaling

記事Article 詳細Details
Azure への移行のスケーリングScale a migration to Azure この記事では、サンプル組織が Azure への完全な移行に対してスケーリングを行うための準備の方法を示します。This article how an example organization prepares to scale to a full migration to Azure.

デモ アプリDemo apps

このセクションで紹介している記事の例では、2 つのデモ アプリを使用します。SmartHotel360 と osTicket です。The example articles provided in this section use two demo apps: SmartHotel360 and osTicket.

  • SmartHotel360: このアプリは、Azure を操作する際に使用できるテスト アプリとして Microsoft が開発したものです。SmartHotel360: This app was developed by Microsoft as a test app that you can use when working with Azure. オープン ソースとして提供されており、GitHub からダウンロードできます。It's provided as open source and you can download it from GitHub. これは、SQL Server データベースに接続されている ASP.NET アプリです。It's an ASP.NET app connected to a SQL Server database. 上記の記事で取り上げられたシナリオでは、このアプリの現在のバージョンは Windows Server 2008 R2 および SQL Server 2008 R2 を実行している 2 つの VMware VM にデプロイされます。In the scenarios discussed in these articles, the current version of this app is deployed to two VMware VMs running Windows Server 2008 R2, and SQL Server 2008 R2. これらのアプリの VM はオンプレミスでホストされ、vCenter Server によって管理されています。These app VMs are hosted on-premises and managed by vCenter Server.
  • osTicket: Linux 上で稼働する、オープン ソースのサービス デスク向け発券アプリです。osTicket: An open-source service desk ticketing app that runs on Linux. GitHub からダウンロードできます。You can download it from GitHub. 上記の記事で取り上げられたシナリオでは、このアプリの現在のバージョンは Apache 2、PHP 7.0、および MySQL 5.7 を使用して、Ubuntu 16.04 LTS を実行している 2 つの VMware VM にオンプレミスでデプロイされます。In the scenarios discussed in these articles, the current version of this app is deployed on-premises to two VMware VMs running Ubuntu 16.04 LTS, using Apache 2, PHP 7.0, and MySQL 5.7