Amazon Web Services ブログ

新しい Strategy Recommendations サービスが AWS クラウドの移行とモダナイゼーションの合理化を支援

クラウドへのアプリケーションの移行とモダナイゼーションを成功させるための実行可能な戦略を決定するには、時間がかかります。また、分析するアプリケーションポートフォリオのサイズと複雑さによっては、多大な労力が必要になることがあります。今日まで、分析プロセスは大部分が人によるものであり、本質的に標準化されておらず、サイズの大きいポートフォリオに大規模に適用することは困難でした。意思決定に要する時間が限られていること、ドメインに関する知識やクラウドの専門知識が不足していること、および利用可能なモダナイゼーションツールやサービスに対する意識の低さが、労力と複雑さを倍加させている可能性があります。

2021 年 10 月 25 日、アプリケーションポートフォリオの分析を自動化するのに役立つ AWS Migration Hub Strategy Recommendations を発表しました。Strategy Recommendations は、実行中のアプリケーションを分析してランタイム環境とプロセスの依存関係を確認し、オプションでソースコードやデータベースなどを分析します。分析から収集されたデータは、ライセンスコストの削減、移行のスピード、マネージドサービスの使用から生じる運用オーバーヘッドの削減、クラウドネイティブテクノロジーを使用することによるインフラストラクチャのモダナイズなど、お客様によって優先順位が付けられる一連のビジネス目標に照らして評価されます。その後、アプリケーションを移行およびモダナイズするための実行可能なパスのレコメンデーションが生成されます。

どのアプリケーションでも、リホスト、リプラットフォーム、リファクタリングなど、移行とモダナイゼーションのために複数のパスを持つことができます。実行可能なすべてのパスについてのレコメンデーションを得ることができ、必要に応じてレコメンデーションを上書きすることができます。Strategy Recommendations は、アプリケーションポートフォリオが移行を待機しているオンプレミスにある場合でも、さらなるモダナイゼーションを保留している AWS クラウドにある場合でも、その評価において必要な労力と時間、および複雑さを軽減するために、経験の有無にかかわらず、どのようなお客様にもご利用いただけます。

Microsoft SQL Server データベースを使用する ASP.NET ウェブアプリケーションの典型的な N 層アプリケーションを例にとると、Strategy Recommendations は、ウェブフロントエンドをホストするサーバー、バックエンドサーバー、データベース自体などのさまざまなコンポーネントを分析して、AWS クラウドへの移行とモダナイズに使用できる実行可能なパスとツールを決定するのに役立ちます。例えば、アプリケーションのライセンスコストを削減することが目標である場合、Strategy Recommendations は、Porting Assistant for .NET を使用して Linux 上の .NET にアプリケーションをリファクタリングすることを推奨する場合があります。

Strategy Recommendations 用のアプリケーションサーバーの登録
アプリケーションポートフォリオをホストするサーバーを AWS Application Discovery Service に登録することは、Strategy Recommendations の前提条件です。登録するサーバーは、物理サーバーまたは仮想マシン (VM) としてオンプレミスで実行することも、既に「リフトアンドシフト」プロセスで移行したアプリケーション用の Amazon Elastic Compute Cloud (Amazon EC2) インスタンスとして使用することもできます。アプリケーションサーバーを登録するためのさまざまなオプションの詳細については、AWS Application Discovery Service ユーザーガイドを参照してください。

分析のための自動データ収集
サーバーを AWS Application Discovery Service に登録すると、Strategy Recommendations が提供するエージェントレスデータコレクターを使用して、アプリケーションポートフォリオのプロセスレベル分析の自動収集をセットアップできます。エージェントレスコレクターは、VMWare vCenter 環境向けの Open Virtualization Appliance (OVA) としてダウンロードできます。アプリケーションの一部または全部を既に EC2 に移行しているお客様のために、コレクターを含む EC2 Amazon マシンイメージ (AMI) も用意しています。これは、モダナイゼーションの機会を探るためにこれらのアプリケーションをさらに分析するのに役立ちます。

自動収集方法を希望しない、もしくは利用できない場合、または別のツールやサービスを使用してこのデータを既に収集している場合は、代わりに分析用に手動でデータをインポートできます。ただし、手動でインポートしたデータについて取得するレコメンデーションは、自動データ収集から得られるものほど詳細なものではありません。自動収集のもう 1 つの利点は、作業を進めるのに伴ってデータの更新がはるかに簡単になることです。

サーバー上のアプリケーションとプロセスの検出は、言語に依存しません。GitHub および GitHub Enterprise リポジトリ、ならびに Microsoft SQL Server データベース内の .NET および Java アプリケーションでは、オプションでクラウドのアンチパターンの検出を含めることができます。ソースコードまたはデータベース分析を実行することを選択した場合、実際のコードやデータは Strategy Recommendations にアップロードされず、分析の結果のみが送信されることに注意してください。なお、分析のためにデータを手動でインポートする場合、より詳細なソースコードおよびデータベースの分析を実行するオプションはサポートされません。

アプリケーションポートフォリオの分析
自動データ収集の設定方法、分析オプション、その他の重要な前提条件の詳細については、Strategy Recommendations ユーザーガイドに記載されているので、ここでは詳しく説明しません。代わりに、エージェントレスコレクターを使用して、さらにモダナイズする目的で、既に EC2 に移行されているアプリケーションポートフォリオの分析を開始する方法を見ていきたいと思います。前述のとおり、Strategy Recommendations は、オンプレミスの物理サーバーや仮想マシン、または (この記事で示すように) EC2 インスタンスでホストされるアプリケーションポートフォリオの分析をサポートします。

分析のためのデータの収集を開始するには、いくつかの手順を実行する必要があります。

  1. ダウンロード可能な OVA または提供された EC2 AMI のいずれかを使用して、Strategy Recommendations エージェントレスコレクターを起動して設定します。
  2. コレクターからのアクセスを許可するように、アプリケーションをホストする各 Windows インスタンスと Linux インスタンスを設定します。
  3. ビジネスに関する最初の優先順位を設定し、その他のアプリケーションとデータベースの詳細設定を行って、最初のレコメンデーションを取得します。これらのオプションは後で細かく調整できます。

最初の作業は Migration Hub コンソールで、ナビゲーションパネルの [Strategy] をクリックして、[Get started] (開始する) ページに移動します。[Download data collector] (データコレクターのダウンロード)、[Download import template] (インポートテンプレートのダウンロード)、または [Get recommendations] (レコメンデーションの取得) のいずれかのボタンをクリックすると、最初に、サービスにリンクされたロールの作成に同意するかどうかを尋ねられます。同意すると、自分に代わって他のサービスにアクセスするために必要な許可が Strategy Recommendations に付与されます。同意したら、短いウィザードの [Configure data sources] (データソースを設定) ページから始めます。ここでは、以前に登録されたコレクターのリストを表示できます。また、OVA バージョンのデータコレクターと、自動収集以外で手動でインポートするアプリケーションデータ用のインポートテンプレートをダウンロードすることもできます。

最初のデータソースの設定ページ

EC2 AMI ベースのコレクターを使用するので、このウィザードを続行する前に、EC2 コンソールを新しいブラウザタブで開いて起動します。Strategy Recommendations のデータコレクターのイメージを探すには、[AMIs] (AMI) ページに移動して [Public images] (パブリックイメージ) を選択し、所有者 [703163444405] でフィルタリングするか、[Launch Instances] (インスタンスを起動) ウィザードから、[Search] (検索) フィールドで AWSMHubApplicationDataCollector という名前を入力します。イメージを見つけたら、他の AMI と同様に起動ウィザードを進めます。

コレクターの設定は簡単なプロセスであり、一連の質問に回答しながら進めることができます。前述したように、リンク先のユーザーガイドに詳細情報が記載されているため、ここでは詳細な説明を割愛します。設定プロセスを開始するには、最初に SSH を使用してコレクターインスタンスに接続し、docker exec -it application-data-collector bash コマンドを使用して Docker コンテナを実行します。実行中のコンテナで、collector setup コマンドで設定 Q&A を開始します。このプロセスでは、次の情報項目に関するデータを入力するように求められます。

  1. 利用に関する合意、および必要なロールがすべて設定されていることの確認、その後に一連の AWS アクセスキーおよびシークレットキー。
  2. vCenter または EC2 Windows インスタンスによって管理されていないオンプレミスの Windows アプリケーションサーバーの場合、コレクターが WinRM を使用して私のサーバーに接続できるようにユーザー ID とパスワードを提供する必要があります。
  3. Linux アプリケーションサーバーがある場合は、コレクターが SSH または証明書ベースの認証のどちらを使用して接続するかを選択できます。
  4. 最後に、GitHub または GitHub Enterprise のリポジトリで、.NET および Java アプリケーションについてのソースコードの分析を設定できます。これらには Git ユーザーネームと個人用アクセストークン (PAT) が必要です。また、C# アプリケーションのより詳細なソースコードの追加分析を設定することもできます。ただし、これには Windows を実行している別のサーバーが必要です。私はこのサーバーに Porting Assistant for .NET をインストールしました。

これらの手順を完了すると、データコレクターが登録され、サーバーの検査を開始する準備が整います。Strategy Recommendations の [Configure data sources] (データソースを設定) ページに戻って、ページを更新すると、コレクターがリストに表示されます。

登録されたデータコレクター

2 つ目のステップとして、コレクターからアプリケーションサーバーへのアクセスを有効にします。詳細については、ユーザーガイドの Step 4: Set up the Strategy Recommendations collector のトピックを参照してください。Windows Server では、RDP を使用して接続し、WinRM を設定するために、ガイドに記載されているリンクから 2 つの PowerShell スクリプトをダウンロードして実行しました。大規模なサーバーフリートの場合は、AWS Systems Manager Automation を使用してこのタスクを実行することを検討してください。Linux サーバーでは、コレクターのために SSH 認証を使用することを選択したので、コレクターの設定プロセス中に生成された公開キーマテリアルを各サーバーにコピーする必要がありました。

この時点で、分析対象のサーバーは AWS Application Discovery Service に認識され、Strategy Recommendations データコレクターが設定され、各サーバーはコレクターからのアクセスを許可するように設定されます。そして、最終ステップとなる 3 つ目のステップに進みます。簡単に説明すると、分析のためにビジネスやその他の優先事項を設定し、サービスを稼働させてレコメンデーションを取得します。

Strategy Recommendations の [Get started] (開始する) ページに戻ると、コレクターが登録済みであり、手動でインポートするアプリケーションデータはないため、[Next] (次へ) を選択します。これにより、[Specify Preferences] (詳細設定を指定) ページが表示されます。このページでは、ビジネスに関する優先順位を設定したり、その他の詳細設定を行ったりします。これらの修正や再分析はいつでも可能ですが、ここでは、ドラッグアンドドロップを使用して、ライセンスのコスト削減クラウドネイティブテクノロジーを使用したインフラストラクチャのモダナイゼーション、およびマネージドサービスによる運用オーバーヘッドの削減を最優先事項として設定します。アプリケーションとデータベースの詳細設定の他のオプションは変更しません。

分析に関するレコメンデーションのための、ビジネスに関する優先事項などの設定の実行

[Next] (次へ) を選択すると、選択内容の要約が記載された [Review] (確認) ページが表示されます。その後、[Start data analysis] (データ分析を開始) を選択します。分析は Application Discovery Service で設定したすべてのサーバーに対して実行されるため、前の手順でインポートしたよりも多くのサーバーが処理されている場合があることに注意してください (コレクターによるアクセスを許可するように設定されていないサーバーは、[data collection failed] (データ収集失敗) の収集ステータスで、結果に表示されます)。

分析が完了すると、レコメンデーションが要約されます (アンチパターン分析はまだ実行されていません)。

サーバー分析からの最初のレコメンデーション

私のサーバーの 1 つは Windows を実行しており、元々は .NET Framework ベースのアプリケーションであった古いバージョンの nopCommerce、および関連する SQL Server データベースをホストしています。ビジネスに関する私の最優先事項はライセンスコストの削減だったので、そのサーバーで検査を開始します。これまでに使用可能となっているレコメンデーションは、サーバー自体の検査のみに基づいています。アプリケーションを構成するソースコードとコンポーネントの分析は、これらのレコメンデーションに影響を与える可能性が高いため、関心のあるサーバーとアプリケーションにドリルダウンしてアプリケーションのソースコードをさらに分析するようリクエストします。

サーバーアプリケーションについてのソースコード分析の追加

コード分析により、Amazon Simple Storage Service (Amazon S3) に JSON 形式のレポートファイルが作成されます。このファイルを開くと、Amazon CloudWatch などのクラウドベースのサービス、固定 IP アドレス、サーバー固有のデータベース接続ではなく、Windows のファイルシステムパスを使用したログファイルへのアクセスなどのアンチパターンが示されます。

コード分析の後、提示されるレコメンデーションは、サーバーの検査のみに基づくものからわずかに更新されます。当初はリプラットフォームのアプローチ向けに推奨されていたアプリケーションコンポーネントの 1 つが、リファクタリングの候補となりました。

変更されたレコメンデーション

関心のあるサーバーに戻って、[Strategy options] (戦略オプション) タブをクリックすると、レコメンデーションが表示されます。コード分析の結果は、ビジネスに関して私が付けた優先順位とともに、重み付けに影響を及ぼしています。以下の図は、サーバー自体の分析のみに基づく最初のレコメンデーションを示しています。

最初のレコメンデーション

以下は、ソースコードの分析後に変更された、サーバーに関するレコメンデーションです。

ソースコードの分析後の変更されたレコメンデーション

サーバーに関するレコメンデーションには、アプリケーションの SQL Server データベースを Amazon Relational Database Service (RDS) 上の MySQL にリプラットフォームすることも含まれています。これは、私が優先事項としてマネージドサービスの検討を希望したためです。このレコメンデーションに従う前に、データベースのアンチパターン分析をさらに実行するのが望ましい場合があります。これは、データベース認証情報を保持するために AWS Secrets Manager でシークレットを作成した後に実行できます (詳細については、データベースの分析に関するユーザーガイドのトピックを参照してください)。データベースの分析は、現在 SQL Server についてのみ使用可能となっており、サポート対象外のデータ型など、移行における非互換性を特定します。

スクリーンショットでは、移行とモダナイゼーションのための実行可能な追加のパスを確認できます。これは、サーバーとアプリケーションコンポーネントの両方に適用されます。必要に応じて、実行可能な戦略オプションを選択して [Set preferred] (優先設定) をクリックすると、推奨される戦略向けの実行可能なパスを選択できます。以下のスクリーンショットでは、nopCommerce アプリケーションコンポーネントについて、AWS App2Container を使用して、アプリケーションのコンテナへのリプラットフォームルートを優先設定することにしました。もちろん、いつでも最初に戻って、ビジネスに関する優先事項やその他のオプションを調整し、データを再分析することができます。

レコメンデーションに関する優先アプローチの設定

最初のレコメンデーションを確認し、続いてコードとデータベースの分析を使用するか、分析の優先順位や提示されるレコメンデーションを変更することで、複数の「仮定の」オプションを存分に試して、アプリケーションポートフォリオをクラウドに移行およびモダナイズするための最適な戦略を見出すことができます。その最適な戦略が決定されたら、それをダウンストリームのチームに伝え、アプリケーションポートフォリオの移行とモダナイゼーションプロセスを開始できます。

移行とモダナイゼーションに関するレコメンデーションを今すぐ取得する
AWS Migration Hub Strategy Recommendations は、米国東部 (バージニア北部)米国西部 (オレゴン)アジアパシフィック (シドニー)アジアパシフィック (東京)欧州 (フランクフルト)欧州 (アイルランド)、および欧州 (ロンドン) リージョンにおいて、追加料金なしでご利用いただくことができ、サーバーとアプリケーションポートフォリオの分析を今すぐ開始できます。もちろん、ツールからのレコメンデーションに基づいて、移行およびモダナイズすることにしたアプリケーションをすべてのリージョンにデプロイできます。前述したように、前提条件、コレクターの開始方法、およびレコメンデーションの利用の詳細については、ユーザーガイドを参照してください。

– Steve

原文はこちらです。