アプリケーションのリホストでは、コアアーキテクチャやコードを変更せずに、他環境にアプリケーションを移行します。この移行は通常はオンプレミス環境からクラウド環境へ行うことが一般的ですが、場合によってはワークロードに特化したオンプレミスに戻すケースもあります。
この記事を読み終えると、以下のことができるようになります。
関連コンテンツ
是非、Cloudflareが毎月お届けする「theNET」を購読して、インターネットで最も人気のある洞察をまとめた情報を入手してください!
記事のリンクをコピーする
アプリケーションのリホストは、「リフト&シフト」とも呼ばれ、基盤となるアーキテクチャにほとんど、または一切変更を加えず、アプリケーションをオンプレミス環境からクラウドに移行するプロセスです。このアプローチにより、企業はアプリケーションの再構築や大幅な変更を行うことなく、ワークロードを迅速に移行することができます。
アプリケーションをクラウドプラットフォームに再配置することで、企業は物理的なハードウェアへの依存を減らし、運用コストを削減し、拡張性と耐障害性を高めることができます。
クラウド環境への移行の背景には、いくつかの重要な要因があります。
ほとんどの企業がこうした利点を求めてクラウドへ移行する中、一部の大企業は独自の処理性能、コンプライアンス、またはコスト面の理由から特定のアプリケーションをオンプレミス環境に戻す(リホスト)ケースもあります。
アプリケーションモダナイゼーションとは、組織のセキュリティ、パフォーマンス、およびスケーラビリティのニーズをより適切にサポートするために、既存のソフトウェアアプリケーションとその基盤となるインフラストラクチャを更新および移行するプロセスのことです。こうした幅広い取り組みの中で一般的に行われているアプローチの1つが、「リホスト」です。
リホストは、アプリケーション自体に大幅な変更を加えずに、クラウドの利点を引き出し、コンテナ化、マイクロサービスの採用、再設計など、追加のモダナイゼーションを進めやすくします。
場合によっては、リホストは、大規模なアップグレードを必要としないレガシーアプリケーションにとって、最後の作業となる場合もあります。また、大きな変革の前の土台づくりになる場合もあります。
アプリケーションをモダナイズする方法にはいくつかの選択肢があります。
それぞれのアプローチには、時間、コスト、および複雑さの点でトレードオフがあります。中でも「リホスト」は、高速かつ容易な方法として、リスクを抑えながらクラウド移行を進めたい企業に適した選択肢です。
リホストは、単にデータセンターにあるサーバーからクラウドにある仮想マシンにアプリケーションを移動するだけではありません。コンピューティングリソースだけでなく、アプリケーションのインフラ全体を対象にした、計画、自動化、テスト、スケーリングを含む構造的なプロセスです。
クラウド環境にアプリケーションをリホストする前に、何を移動させる必要があり、他のシステムとのからみも事前に洗い出しておく必要があります。
調査フェーズでは、モノリシックアプリケーションの本体(JAR、WAR、EXEなど、すべてのロジックを含む単一のファイル)や、サーバー側でレンダリングされる表示層(JSP、ASP.NETなど)、アプリケーションに直接組み込まれたビジネスロジック、リレーショナルデータベース(多くの場合、Oracle、SQL Server、MySQLのような単一のRDBMS)など、主要なアプリケーションコンポーネントとの依存関係を洗い出します。
また、アプリケーションサーバー(Tomcat、WebLogic、IISなど)、外部API、認証システム、ネットワーキングルール、ハードコードされたIPやエンドポイント、その他の接続されている各種サービスなど、一般的な依存関係についても考慮する必要があります。ここで紹介したものがすべてではありませんが、従来のアプリケーションアーキテクチャにみられる一般的なものは網羅していると考えられます。
この段階でしっかりと把握しておくことで、移行中に想定外のトラブルが起きるリスクを減らすことができます。
主要な依存関係を洗い出したら、新しい環境に対するアプリケーション側の要件を評価します。
このフェーズは、サポートスタック(DNS、CDN、DDoS攻撃対策、可観測性など)も一緒に見直すチャンスでもあります。リホストは、それらのレイヤーも一緒にモダナイズする機会でもあります。
クラウドプロバイダーは、移行作業の長期的な成功において非常に大きな役割を果たします。比較の際には、単にコンピュートの料金だけでなく、より深い観点から検討することが大切です。
クラウドやモダナイゼーションのパートナーを評価する際には、パフォーマンス、セキュリティ、運用効率をサポートする包括的な機能セットを提供するプロバイダーを探すことが重要です。これには、予期せぬコストの急増を招くことなく、需要に応じた拡張が可能なスケーラブルなバックエンドサービスや、Webアプリケーションファイアウォール(WAF)、DDoS攻撃対策、きめ細かいアクセス制御などのネットワークレベルのセキュリティ機能が組み込まれているかなどを評価する必要があります。
また、静的・動的の両方のアセットを世界中のユーザーに高速かつ一貫して配信するために、グローバルなコンテンツ配信ネットワーク(CDN)も不可欠です。高速、高信頼性であることに加え、自動化や冗長性をサポートするためにプログラム可能なビルトインDNSサービスを提供していることも重要です。
最後に、既存のロギングや監視スタックとシームレスに連携できるネイティブな可観測性ツールを備えていることも、アプリケーションの拡張や進化に対応しながら可視性と制御を維持するために不可欠です。
移行後にアプリケーションが正しく、安全かつ効率的に動作して始めて成功と言えます。リホスト後、遅延やスループットなどの主要なパフォーマンス指標をオンプレミス環境と比較し、アプリケーションがユーザーの期待に応えるものであることを確認することが重要です。また、実際の使用状況を想定した負荷テストを行うことで、通常の条件では見つからない問題を早期に発見することができます。ログやアラートを確認することも、信頼性やセキュリティに影響を与える可能性のある異常や設定ミスを特定するためにも重要です。
アプリケーションのパフォーマンスだけでなく、 DNS解決、 CDNの動作、 TLS設定、 ファイアウォールルールなどのインフラの周りの部分も検証し、新しい環境で意図したとおりに機能することを確認する必要があります。
移行の最終段階では、トラフィックステアリングが、システムを停止することなくクラウド環境へ移行する鍵となります。DNSベースのトラフィックシフト、重み付けによる負荷分散、カナリアデプロイメントなどの技術を使えば、段階的にオンプレミスからクラウド環境へユーザーを移行させることができ、システムの挙動をリアルタイムで監視しながら問題を早期に発見・対応できます。必要に応じて元に戻す(ロールバック)ことも可能です。このすべてをユーザー影響なしに行うことができます。この重要なフェーズをサービスを停止することなく行うには、 DNS TTL、ヘルスチェック、監視体制を慎重に調整することが不可欠です。
スケーリングは、問題が起きてからではなく、先回りして行う必要があります。現在のワークロードに応じて、自動スケーリンググループまたはサーバーレスのオプションを検討してください。また、クラウドでアプリケーションを起動した後も継続的にコスト管理を行う必要があります。
移行後の継続的オブザーバビリティ実行のメリット:
そのために、クラウドネイティブまたはサードパーティの監視ツールを実装して以下をモニタリングしましょう:
リホストは、企業が移行を急ぐ場合、大掛かりな開発作業を避けたい場合、レガシーシステムを延命させたい場合に適しています。また、物理的なインフラへの依存を減らし、IT基盤の大規模な変革を始めたい企業にも適しています。
リホストは、安定しているものの運用コストの高いレガシーアプリケーションを持ち、オンプレミスでの維持が難しくなっていると感じている企業に最も効果的です。また、データセンターから早急に移行する必要がある場合や、既存のアプリケーションのベースにできるだけ手を加えずにクラウドに移行したい場合にも適しています。
また、将来的にアプリケーションの本格的なモダナイゼーションを計画している場合でも、リホストはその第一歩として有効です。まずはクラウドに移行して土台を整え、将来的にリファクタリング(抜本的な改修)を行う柔軟性を確保します。このようにリホスティングは、レガシーアプリケーションの価値を活かしつつ、企業が本格的な変革に向けた準備を進めるための「時間稼ぎ」としても役立ちます。
アプリケーションモダナイゼーションの手法としてリホストを検討する際、以下の点を考慮してください。
リホストは、こうしたリスクやリソースの制約に対して、比較的負荷の少ない方法でクラウド移行を実現できるため、有効な選択肢となります。
リホストは、ハードウェアの保守費用やライセンス費用、データセンターの運用コスト、インフラストラクチャのプロビジョニングにかかる時間を削減できるため、クラウド移行における短期的なコスト最適化に効果があります。しかし、長期的なコスト最適化は、リホストだけでは不十分なことがあります。リファクタリングやリプラットフォームが行われなければ、アプリケーションは、自動スケーリングやサーバーレス、マネージドサービスなどのクラウドネイティブの利点を活かせない可能性があります。
短期的には、設備投資を削減し、物理的なインフラストラクチャの必要性をなくすことで、企業は手早くROIを達成することができます。一方で、長期的な真のコスト効率を実現するためには、コンピューティング使用量のチューニング、インスタンスの適正化、モノリシックサービスの分離など、スケーラビリティとリソースの配分を改善するなど、より深い最適化が必要となります。
リホストは、脆弱性や古いインフラストラクチャへのパッチ適用への依存など、いくつかのセキュリティリスクを減らすことができますが、新しいリスクも生み出します。例えば、管理されたオンプレミス環境では安全に動作していたアプリケーションも、クラウドネイティブのセキュリティプラットフォームを介して適切な保護を施していなければ、管理の不十分なクラウド設定により危険にさらされる可能性があります。
また、コストも重要な課題の一つです。積極的な管理を行わなければ、リホストされたアプリケーションは予想以上に高いクラウド料金を発生させる可能性があります。たとえば、クラウドプロバイダーの環境から外部にデータを送る「エグレス料金」は、特にデータ量の多いアプリケーションではすぐに膨れ上がります。
こうしたクラウド移行後の予期せぬコストを回避するためには、組織はリソースとコストの管理を積極的に行う必要があります。利用状況を継続的に監視し、使用パターンや異常を早期に把握する、コストに関する明確なルール(ガバナンス)を定め、責任の所在を明確にする、十分に活用されていないリソースの自動適正化やス自動停止などのタスクを設定することで、無駄を削減して費用を抑えることができます。さらに、クラウドプラットフォーム内で予算やアラートを設定して、コストが一定の水準を超える前に早期警告シグナルを受け取るなどの対策を実施することで、環境が拡大した場合もコントロールし続けることができます。
どの移行戦略でも、プロセス全体を通して中核的な考慮事項としてセキュリティを組み込む必要があります。
リホストを成功させるには、単にアプリをクラウドにコピーすれば完了するわけではありません。準備が不十分なまま移行を実施すると、以下のような問題が発生する可能性があります:
よくあるトラブルのひとつに、顧客や取引先が旧データセンターの固定IPアドレスを使って接続していたため、移行後に通信できなくなるという問題があります。こうしたケースでは、相手側がIPアドレスを更新しない限り、接続が失敗します。このような依存関係を事前に洗い出し、スムーズな移行を実現するために関係者との積極的な調整が重要です。
綿密に計画されたリホストには以下のようなものが含まれます:
Cloudflareは、動画や画像の変換、アプリの負荷分散、DNSのグローバルな解決によってアプリケーションの最新化を加速し、高速で信頼性の高いパフォーマンスを実現します。自動化された保護により、ボット、DDoS、zero-day攻撃から防御し、統合された可観測性により、クラウド環境全体のコンプライアンスを確保します。こうした機能により、Cloudflareはアプリケーションスタックのあらゆる層を強化し、安全かつ高パフォーマンスで将来に備えたモダナイゼーションを実現します。
アプリケーションモダナイゼーションの詳細はこちら。
リホスト(別名「リフト&シフト」)とは、アプリケーションをある環境(通常はオンプレミスインフラストラクチャ)からクラウドプラットフォームに、コアアーキテクチャやコードへの変更を最小限に留めながら移行することを指します。リホストにより、ワークロードを手早く移行することができます。
組織がアプリケーションをクラウドに移行する理由には、「柔軟なリソースを活かした拡張性の向上」「オーバーヘッドの削減と従量課金モデルによるコスト効率の改善」「組み込みの冗長性を活かしたレジリエンスと可用性の強化」「主要なクラウドプロバイダーが提供する堅牢なセキュリティ機能とコンプライアンス認定」「AIやサーバーレスコンピューティングなどの先進的サービスを活用したイノベーションの加速」などが挙げられます。
リホストは、既存のアプリケーションをクラウドに移行することでクラウドの利点を享受できるようになり、アプリケーションのモダナイゼーションへと繋がります。リホストにアプリケーションの大幅な変更は伴いませんが、コンテナ化やリアーキテクチャといったさらなるモダナイゼーションの取り組みへの基礎的な土台を築くことができます。また、大規模なアップグレードを必要としないレガシーアプリケーションにとって、最後の作業となる場合もあります。
「リホスト」は、最小限の変更でアプリケーションをクラウドに移行することを差し、「リプラットフォーム」は、アプリケーションの基本的な構造はそのままに、データベースを自己管理型からクラウドのマネージドサービスに移行するなど、一部をクラウド側で最適化されたものに変更することを指し、「リファクタリング」は、アプリケーションを、コンテナやサーバーレスコンピューティングなどのクラウドネイティブな機能を活用できるように、再設計または書き換えることを指します。
リホストのベストプラクティスには、「アプリケーションの依存関係を特定するための徹底的な評価と計画」、「クラウドインフラストラクチャに求められる要件(演算能力、ストレージ、レイテンシ、バックアップ、リージョンの可用性、帯域幅)の評価」、「包括的な機能(価格だけではなく)に基づく適切なクラウドプロバイダーの選定」、「移行後の厳格なテストと検証」、「クラウドリソースの継続的な監視とスケーリング」などがあります。
リホストが適しているケースとしては、「安定しているもののコストの高いレガシーアプリケーションをオンプレミス環境から手早く移行したい場合」、「既存のコードの変更を最小限に留めながらデータセンターから手早く移行したい場合」などが挙げられます。また、将来的により広範なモダナイゼーションを計画するチームの戦略的な第一歩としても適しており、将来の変革に向けた時間と柔軟性を確保できます。
リホストは、ハードウェアの保守費用やライセンス費用、データセンターの運用コスト、インフラストラクチャのプロビジョニングにかかる時間を削減できるため、短期的なコスト最適化に効果があります。しかし、単にリホストするだけではクラウドネイティブの効率性を完全に活用できないため、長期的なコスト効率の最大化を狙うには、コンピュート使用量の調整、インスタンスの適正化、サービスの分離など、より深い最適化の取り組みが必要です。
アプリケーションのリホスト時には、管理が不十分なクラウド環境で発生する可能性のある新たなセキュリティリスクを考慮することが重要です。データの暗号化(転送中および保存中の両方)、堅牢なアクセス制御とID管理の実装、関連する業界基準への準拠に対処する必要があります。また、クラウドネイティブのセキュリティプラットフォームを活用した、先を見越した対策が推奨されます。
準備が不十分なままリホストを実行した場合、ユーザー体験の悪化、ドメインネームシステム(DNS)伝播中のダウンタイム、遅延や可用性の問題、依存関係の見落としなどの問題が発生する可能性があるため、これらの問題を回避するため入念な前準備は極めて重要です。準備には、お客様やパートナーが使用している可能性のある古いIPアドレスなど、潜在的な課題に対する計画も含まれます。十分に準備されたリホスト戦略には、関係者との計画の共有、ロールバック可能なテスト環境の構築、変更内容を明記したドキュメントの作成が含まれます。
利用開始
クラウドについて
クラウド構成
クラウドセキュリティ