White Paper

AWS による モダンアプリケーション構築: 「オブザーバビリティ駆動型」 リホスティングを始める クラウドにおけるレガシーアプリケーションのモダン化に関する ホワイトペーパー第1 部(全3 部)

概要

俊敏性と競争上の優位性を獲得するために、モダン化は企業が無視することのできないビジネス上の必須事項です。これには、アプリケーション、インフラストラクチャ、テクノロジー、さらにはソフトウェア開発へのアプローチが含まれます。

インフラストラクチャの観点から、オンプレミスまたはレガシー環境から Amazon Web Services(AWS)へモダン化することは、クラウドの俊敏性、柔軟性、およびスケーラビリティの利用開始に役立ちます。DevOps などのモダンなソフトウェア開発方法論はモダンクラウド環境と関連しているため、クラウドテクノロジーとツールを利用して、ソフトウェア開発をさらに加速し、クラウドで実行されるソフトウェアの弾力性、復元力、またパフォーマンスを最適化できます。

ただし、レガシーアプリケーションもモダン化する必要があります。そうしないと、クラウドを使用してIT とビジネスの革新的な成果を達成する能力が妨げられます。アプリケーションのモダン化への 6 つのアプローチ(リタイア、リパーチェス、リテイン、リホスティング、リプラットフォーミングおよびリファクタリング)のうちで最も一般的で最初のステップはリホスティングです。これは、リホスティングが比較的低リスクの方法でモダン化を開始し、コスト削減、パフォーマンスの向上、またモダンなプラットフォームでの操作の容易さなど、初期のメリットを享受できるためです。 

アプリケーションのリホスティングを手ごわく感じるのは当然のことです。アプリケーションがどれほどクリティカルなものかの程度によっては、リホスティングのリスクは比較的低いものになります。それでも最低限に抑えるため、しっかりとした対策を講じるべきリスクが存在します。これらのリスクの軽減には 適切な計画、オブザーバビリティ、データ駆動型の意思決定、そして AWS Well-Architected フレームワークにあるような、セキュアで、高性能で、高いレジリエンスを持った効果的なアプリケーション向けインフラストラクチャ構築のために策定されたベストプラクティスの採用が欠かせません。

本ホワイトペーパーでは、AWS 上でアプリケーションをリホスティングする「理由」と「方法」およびAWS Well-Architected フレームワークの5 つの柱を適用して利点を最適化する方法を紹介します。

「…現在北米の企業の65%がパブリッククラウドプラットフォームに依存しています。」

出 典 : 「Predictions 2020: Cloud Computing Sees New Alliances and New Security Concerns(2020 年の予測: クラウドコンピューティングにまつわる新たな味方と新たなセキュリティの懸念)」、Forrester、2019 年11 月

リホスティングとは何ですか、いつ使用する必要がありますか?

リホスティングとは何かの説明から始めましょう。これは、アプリケーションをモダン化するための比較的低リスクのアプローチです。アプリケーションをそのまま「リフト」して、ビジネスロジックを変更することなく、アプリケーションを有効にするコード 変更を最小限に、または全く行わずに新しい環境に「シフト」し、実行します。

リホスティングは、同じインフラストラクチャの新しいバージョンにアプリケーションを移動するのと同じくらい簡単な場合と、オンプレミスサーバーから AWS に移動する場合など、より複雑な場合があります。リホスティングの例は、以下のとおりです。

  • 古いAmazon Elastic Compute Cloud (EC2) インスタンスから新しいインスタンスへのアプリケーションの移動
  • オンプレミスインフラストラクチャからAWS へのアプリケーションの移行
  • 異なるクラウド環境からAWS へのアプリケーションの移動/ 移行

アプリケーションをモダン化する方法を決定するには、アプリケーション、現在実行されているインフラストラクチャ、その品質とパフォーマンス、またアプリケーションがビジネスに与える影響を深く理解する必要があります。次に、アプリケーションの詳細なビューを備えた状態で、リホスティングと他のモダン化アプローチのどちらが最善の選択であるかを決定できます。

アプリケーションをリホストするという選択には説得力ある理由が数多く存在する一方、ほとんどの場合、組織は以下の表1 に示されているような一般的な要因と特性に基づきリホストすることを決定します。

表1.アプリケーションの性質と、一部アプリケーションのモダン化のためにリホスティングが最適となる理由
アプリケーションが…の場合  リホスティングは…の理由で正しい選択肢です

複雑および/ またはクリティカルシステム

(「何もしない」選択肢を除けば)最低のリスクでモダン化を進める最速アプローチです。

リホストされるアプリケーションのグループの一部

アプリケーションにはリホストされるその他のアプリケーションと依存関係があります。

自動化の優れた候補

クラウドの自動化は、アプリケーションを操作する必要がある、時間を要する人手による作業を削減または排除できます。 

ボリュームが大きく変化するもの(季節要因による急上昇など)

アプリケーションはクラウドの弾性計算から恩恵を受けられます。

現在の環境では実行できない

ハードウェアがリタイアする、データセンターが停止されるなどの理由でアプリケーションを移動する必要があります。
ブラックボックス化したアプリケーション 他のモダン化のアプローチでビジネスロジックを変更する方法はありません。
静的アプリケーション アプリケーションのコードが変更されていない、または計画されていないが、新しい環境に移動することで恩恵を受け続けられます。

リスクを知り、それを最小化する方法を知る

リホスティングは IT プロジェクトと同様に比較的低リスクのモダン化へのアプローチです。それでも、常に予想して最小化するべき関連リスクおよびクリティカルなリスクがあります。始める前に、既存のアプリケーションの移動には、以下のようなリスクの可能性があることを十分に理解することが重要です。

  • 間違ったアプリケーションを選択してリホストすると、プロジェクトの目的を満たせなくなります。
  • アプリケーションの健全性およびパフォーマンスへの可視性を損失
  • アプリケーションの一部または全部が新しい環境を破壊
  • アプリケーションが非効率にクラウドリソースを消費しているため、クラウド支出が予想以上に増加
  • リホスティング作業中に発生するアプリケーション修復問題による予想外コストに直面
  • リホスティング後、測定可能なメリットを享受できない
  • アプリケーションの既存の問題を新しい環境へ移行

幸いなことに、これらのすべてのリスクと他の多くのリスクは、計画、オブザーバビリティを適切に確保し、リホスト作業の前、最中、後に導出された詳細なデータを活用することで軽減することができます。

オブザーバビリティ駆動型アプローチの採用

1つ以上のアプリケーションを正常にリホストするには、リスクを軽減し、組織のビジネスおよび IT 目標を達成するための事前の考慮と計画が必要ですが、アプリケーションの状態も深く洞察します。

オブザーバビリティは包括的なベースラインデータをもたらします。これがあることで、リスクを軽減し、作業を合理化し、また、成功を測定する手段を提供するアプリケーションのリホスティングについて、情報に基づいた決定を下すことができます。 

オブザーバビリティに基づいたリホスティングのアプローチの重要な側面の1 つは、それがエンドユーザーに与える影響です。プラスの影響(パフォーマンスや信頼性の向上など)を達成する可能性を高めるには、理解に役立つデータが必要です。

  • 現在の「通常の」エンドユーザー体験
  • リホスティングする前に優先順位を付けて解決する継続的なアプリケーションの問題
  • アプリケーションの依存関係
  • アプリケーションの脆弱性
  • 顧客エクスペリエンスの目標

次に、表2 に示すように、AWS Well-Architected フレームワークのコンテキストでデータの収集を開始します。この情報は、リホスティングするためのアプリケーションに優先順位を付け、組織がリホスティングの取り組みで達成したい目標設定に役立ちます。

表2: AWS Well-Architected フレームワークの柱を使用して、リホスティング作業の優先順位を決める
柱  質問およびメトリクス
コストの最適化

どこに最も支出しているか? 

アプリケーションユーザー当たりのインフラストラクチャコストはどれほどか?

信頼性

アプリケーションの稼働化率はどうか? 

ユーザーはどのような頻度でエラーの影響を受けるか?

イベントのスケーリングはどのようにうまく機能しているか?

パフォーマンス効率 

リソース使用はどのように効率か?

ユーザーとよりよい地域連携をする必要があるか?

いかに迅速にグローバルにデプロイできるか?

オペレーショナルエクセレンス

環境のプロビジョニングにはどれだけかかるか?

どのような頻度でプロビジョニングするか?

問題解決にはどれだけかかるか?

セキュリティインジケータ オペレーティングシステムおよび/ またはパッチレベルがセキュリティ懸念を生じさせるか?

収集した情報を使用して、次のものを指定することにより、リホスティング計画を策定できます。

  • リホストされるアプリケーションとその順序
  • リホスティングの前に対処される問題
  • テストとユーザー受け入れの計画
  • たとえば、各アプリケーションの技術的およびビジネス上の目標は何か。
    • エンドユーザーエクスペリエンスの 向上(パフォーマンスと信頼性の向上)
    • 運用コストの削減、またはハード ウェア / データセンターを廃止する機能
    • 新機能により市場投入までの時間を短縮
    • スケーラビリティの向上

リホスティングの前、最中、後にオブザーバビリティを使用

オブザーバビリティはリホスティングの実践の計画策定と、取り組みの先にある意思決定に不可欠なだけでなく、アプリケーションの新環境への移行を成功させるための自信とインサイトを得る最高の方法ともなります。リホスティングの取り組みにおいて、終始アプリケーション、インフラストラクチャ、そしてエンドユーザーのエクスペリエンスにおける完全な可視性を確保することで、リスクを高めることなくリホスティングの取り組みを加速し、問題を予知して回避し、複雑さを最低限に抑え、またクラウド環境がもたらすメリットを最大限に高めることができます。 

リホスティング作業の各フェーズでオブザーバビリティを使用する方法は次のとおりです。

  • 前:リホスティングの対象となるアプリケーションを選択したら、オブザーバビリティのためにNew Relic One を使って現在の環境のアプリケーションに計装機能を装備し、アプリケーションのパフォーマンス、エンドユーザーのエクスペリエンス、リソース消費、エラー率、アプリケーションの稼働率、その他の重要なKPI を把握します。これらの測定は、リホスティングの最中とそれ以降における比較のためのベースラインメトリクスとなります。また、このデータにより、アプリケーションに特定されている体系的な問題に対応するための計画立案も可能とします。 

  • 最中:リホスティングのプロセスに着手するときは、移行による問題発生や速度低下が絶対に発生しないよう、アプリケーションをテストすることが重要です。リホスティングの最中にNew Relic Oneを使用してアプリケーションコード、データベース、また外部サービスのパフォーマンスをチェックし、「前」のフェーズで確認したリホスティング着手前のベースラインと比較します。こうすることで、同一条件での比較を徹底することができます。

  • 以降:リホスティングしたアプリケーションが新しい環境で実行されるようになったら、New Relic One を使用してモダン化の成功を測定し、パフォーマンス向上、リソースの効果的な使用、また簡単な操作のためにアプリケーションを最適化できる余地を特定します。リホスティング前後のベースラインデータを比較することで、新しい環境ですべてが順当に動作していることを確認できるだけでなく、二重のインフラストラクチャへの対応による時間と資金の消費を最低限に抑えることができます。

オブザーバビリティはクラウドのデプロイを加速する

2019 年にForrester Consulting が実施したTotal Economic Impact ™(総経済効果)調査では、New Relic プラットフォームを活用中の顧客がクラウドへのアプリケーションデプロイメントを90% 迅速化し、クラウドへのアプリケーションデプロイメントに伴うコストを90% 以上削減したことが明らかになっています。

調査の全文を確認する

柱:コストの最適化

New Relic One を使用すると、リホスティング作業の計画と予算を維持できます。1 つの例は、二重インフラストラクチャを運用するのに必要となる時間を短縮することによってです。New Relic One は、リホスティングを開始する前に既存のアプリケーションの依存関係、問題、またパフォーマンスを明確に理解するためにも役立ち、表面化されていないアプリケーションの問題に対処するリホスティング作業に費やす時間を短縮できます。

New Relic は、アプリケーションで十分に活用されていないクラウドリソースへの予算の浪費を回避するために、クラウドインスタンスのサイズを決定する上でより良い決定をする上でも役立ちます。たとえば、New Relic One のデータを使用すると、自動スケーリングポリシーを適切に構成して、インスタンスのサイズを管理し、過剰プロビジョニングや不要な支出を防ぐことができます。

クラウドのコンピューティングコストを最適化する

「従来からの企業向けデータセンターは限定的な資本支出指向の機能をあらかじめ調達して装備していますが、その機能を最も効果的に活用したとしても、それがコスト削減につながるとは限りません。クラウドコンピューティングのモデルはこのパラダイムを転換します。」

出 典 :How to Manage and Optimize Costs of Public Cloud IaaS and PaaSPaaS(パブリッククラウドのIaas とPaaS のコストを管理し、最適化する方法)」、Gartner、2020 年3 月

柱:信頼性

信頼性の高いシステムとは、安定していて、予測可能で、可用性が高いシステムです。これは、組織およびインフラストラクチャの観点から
見ると、優れた顧客エクスペリエンスを提供することを目的として、障害を防止し、発生した障害から迅速に回復することができる能力です。

リホスティングがアプリケーションの信頼性に与える影響を理解するには、ベースラインデータを、リホスティング中およびリホスティング後に収集する実際の情報と比較します。 

  • Apdex スコア(ユーザー満足度)
  • 平均解決時間(MTTR)
  • エラーおよびエラーが表面化している場所
  • 再生チケット 
  • 問題が提出されたコードとしてのインフラストラクチャ
New Relic Dashboard Showing User Metrics

図1.ユーザーエクスペリエンスのメトリクスを示すダッシュボード

柱:パフォーマンス効率

パフォーマンス効率とは、コンピューティングリソースを効率的に使用してシステム要件を満たし、需要の変化やテクノロジーの進化に合わせて効率を維持することです。リホストされたアプリケーションがリソースを使用する方法を最適化するには、まずベースラインパフォーマンスデータに焦点を当て、それを新しいAWS 環境でのアプリケーションのパフォーマンスと比較します。具体的には、図1 に示すApdex スコア、ページロードタイム、遅いトランザクション、エラー率を比較できます。

もう1 つの考慮事項は、ユーザーの地域性です。地域ごとにユーザーのいる場所に合わせていますか。その場合、各場所でどのようなパフォーマンスが発生していますか?AWS を使用すると、図2 に示すように、数分でグローバルに、世界中の場所に拡張し、さまざまなコスト構造と地域を利用して効率的に顧客にサービスを提供できます。ユーザーの場所とビジネス目標に基づいてリソースを選択できます。

New Relic Dashboard Showing Top Countries by Average Page Load Time

図2: ユーザーに対する局所性の特定: 国別の平均ページロードタイム

また、アプリケーションの新しい環境での CPU やメモリの使用量などのリソース消費も確認する必要があります。ストレージも重要な考慮事項です。単に容量を把握するだけでなく、読み取りと書き込みのパターンを検討して、アプリケーションの使用状況プロファイルに最適なストレージオプションを選択します。この情報は、AWS のパフォーマンス効率を最適化するためにインスタンスを適切なサイズにする上で役立ちます。

柱:オペレーショナルエクセレンス

リホスティングに着手することは、クラウドへの投資の最大化に活かす強力な実務の採用または継続のきっかけともなります。DevOps 調査会社であるDORA によれば、クラウドの利用はソフトウェア配信のパフォーマンスと可用性を向上します。そして、クラウドコンピューティングの本質的な特性を活用しているチームが高いパフォーマンスを発揮する確率は、そうでないチームに比べて24 倍も高くなります。1

DevOps ジャーニーのどこにいても、自動化、継続的インテグレーション、継続的デリバリー、継続的テスト、継続的モニタリング、さらに迅速な修正などの主要なDevOps 機能に関連するプロセスの改善に焦点を当てます。AWS CloudFormation や Amazon Virtual Private Cloud(VPC)イベントなどの領域をモニター、ならびにソフトウェアで変更が発生する速さを追跡することで、新しい環境がどれほど脆弱であるか、そしてチームが成功に必要な新しいプロセスを採用する速さを示すことができます。

New Relic One によるデータ駆動型 DevOps を使用すると、オブザーバビリティ、可視性と詳細なメトリクスを取得して、変更やリリースのペースが増加してもパフォーマンスと可用性を維持できます。図3に示すように、New Relic One のデプロイメント追跡、メモ、プラグイン、およびその他の機能は、テレメトリデータを1 つのダッシュボードに統合して、リホスティング作業とともにプロセスの改善を追跡する上で役立ちます。 

1. 「Accelerate: State of DevOps 2019(迅速化: 2019年におけるDevOpsの現状)」、DORA、2019年

New Relic Dashboard Displaying DevOps Success Metrics

図3: DevOpsの成功のメトリクス

柱:セキュリティインジケータ

情報とシステムを攻撃から保護するため、セキュリティのプロセスとベストプラクティスはソフトウェアの開発ライフサイクルと一体化すべきです。このライフサイクルにはリホスティングが含まれ、そこではSecDevOpsがモダンアプリケーションの継続的なインテグレーションと継続的な配信モデルに向けたセキュリティの自動化において重要な役割を果たします。 

リホスティングに重要なセキュリティインジケータには、オペレーティングシステムとそのバージョン、ならびにAmazon Machine Image(AMI)が含まれます。セキュリティアーキテクトは、基盤となるシステムが古くなっているかどうか、およびアプリケーションに影響を与えるセキュリティアラートが出されているかを知ろうとしています。

新しい環境を選択するために、リホストおよび準備するアプリケーションに優先順位を付ける際に考慮すべきデータポイントには、次のものがあります。

  • レガシーなオペレーティングシステム
  • サポートされているオペレーティングシステムとバージョンの多さ
  • デフォルトのAmazon Virtual Private Cloud のインスタンス
  • インスタンスの作成に使用される AMI

この情報を準備すると、セキュリティ問題に基づき、どのホストをリホスティングの優先順位付けする必要があるかについて、セキュリティチームからガイダンスを得ることができます。更新が必要なホストを簡単に見つけるには、New Relic One 内のフィルタ機能を使用します。ホストがAWSクラウドにある場合、New Relic インテグレーションで使用可能な追加タグでフィルタリングできます。これには、インスタンスタイプ、地域、アプリケーションまたは状態などのカスタムタグが含まれます。

次のステップ

アプリケーションが完成したら、リホストされたアプリケーションがさらなるモダン化の候補でもあるかどうかを評価します。たとえば、リプラットフォーミング(データベースなどのアプリケーションのコンポーネントを取得し、それをマネージドサービスに移動)により、時間とリソースをさらに節約できます。リファクタリング(最新のクラウドサービス、アーキテクチャ、テクノロジーを利用するためにコードレベルを変更)は、アプリケーションの品質、パフォーマンス、スケーラビリティ、信頼性、柔軟性を向上させ、新機能の迅速な提供を可能にします。

クラウドベースで最もパワフルなオブザーバビリティプラットフォームであるNew Relic One を継続的なモダン化と最適化の取り組み全体で使用することで、アプリケーションをより迅速に、より費用対効果の高い方法で、より低リスクでモダン化し、クラウドへの移行のメリットを享受できます。New Relic は、AWS アドバンストテクノロジーパートナーとしてとして6 つのソリューション分野(移行、DevOps、コン
テナ、モバイル、リテール、公共)で、技術的熟練および立証された顧客事例に基づき、AWS コンピテンシーの資格が付与されています。

newrelic.com/awsにアクセスし、リホスティングまたはアプリケーションおよびインフラストラクチャモダン化のフェーズで、New Relic One がいかに役立つかに関する情報をご覧ください。