API Gatewayを使用したクラウド移行戦略
January 18, 2023
クラウド移行とは、データ、アプリケーション、またはその他のビジネス要素をオンプレミス環境から部分的または完全に、Azure、AWS、Google Cloudなどの人気のあるクラウドサービスプロバイダーが提供するクラウドベースの環境に移行するプロセスです。この記事では、API Gatewayを使用してクラウド移行戦略を構築するためのさまざまなアプローチを探ります。
クラウド移行のメリット
クラウド移行を実施する企業にとって、クラウドは大きな影響を与える可能性があります。これには、ITインフラストラクチャに必要なハードウェアのコスト削減、迅速なサービス提供、アプリケーションのニーズに応じたスケーリング、ビジネスクリティカルなワークロードと最も機密性の高いデータの保護、そしてイノベーションの機会の拡大が含まれます。
ここでは、クラウド移行のさらなるメリットをまとめました:
- 敏捷性と柔軟性の向上
- より速いイノベーションの実現
- 増大するリソース需要の緩和
- 顧客の期待増大への対応改善
- コスト削減
- 即時のビジネス成果の提供
- ITの簡素化
- すべてをサービスとして提供するシフト
- 消費管理の改善
- クラウドのスケーラビリティ
- パフォーマンスの向上
クラウド移行の課題
クラウド移行は大きなメリットをもたらす一方で、いくつかの課題もあります。例えば、最初にクラウド移行戦略を持っていないこと、複雑な既存のアーキテクチャ、長い移行プロセス、移行中のビジネスダウンタイム、組織の適応、セキュリティとコンプライアンスなどです。
企業は、サービスの可用性やスケーラビリティの向上、またはクラウドが約束するその他のメリットを享受するためにクラウドに移行します。しかし、クラウドを最大限に活用するためには、組織がそのユースケースに最適なクラウドを選択していることを確認するための慎重な設計と計画が必要です。
クラウド移行戦略
APIベースのシステムをクラウドに向けて進化または移行するためのアプローチはいくつかあります。これには、現状維持(「何もしない」)から、リホスト、リプラットフォーム、リパーチェス、リファクタリング/再アーキテクチャ(クラウドインフラを活用するための書き換え)、そして廃止までが含まれます。
この記事では、6つの異なる移行戦略を概説し、既存のアーキテクチャとシステムをクラウドに移行するための評価やリーダーシップを任された場合の出発点として最適です。APIはしばしばユーザーに最も近いビジネス駆動型のコンポーネントであり、大多数のリクエストの主要な入口ポイントであるため、移行アプローチを決定する際に特に注意を払うべきです。6つのRは、「何もしない」からシステムの完全な再構築または廃止までのオプションのスペクトルを提供します。それらは以下の通りです:
- 現状維持または再検討
- リホスト
- リプラットフォーム
- リパーチェス
- リファクタリング/再アーキテクチャ
- 廃止
クラウド移行におけるAPI管理の役割
進化の旅において選択された戦略に関わらず、API管理は移行と組織内外でのAPIの価値を引き出す上で重要な役割を果たすことができます。APIマネージャーは本質的に強化されたゲートウェイであり、APIの公開と制御のためのさまざまな追加機能を提供します。APIマネージャーは、OAuth2の課題、コンテンツ検証、レート制限、キャッシング、スロットリングなど、ゲートウェイで典型的な多くの機能を提供するポリシーを提供します。多くのAPI管理ツールがあり、適切なものを選ぶ方法に注意してください。
さらに、APIマネージャーは、開発者が提供されたAPIを消費するシステムを構築する際に使用できるすべてのAPIのマーケットプレイスを含む開発者ポータルを提供できます。組織は、API管理を使用して、外部顧客や内部の「チャージバック」に対してAPIへのアクセスを収益化することもできます。これは、企業や部門横断的な展開で一般的です。おそらくAPI管理の最も重要な部分は、シーン裏で変更を続けながら、APIを発見するための中心的なポイントを提供できることです。
移行ツールとしてのAPI Gateway
API Gatewayは、API管理ソリューションの重要なコンポーネントです。Apache APISIXブログでAPI Gatewayの10の最も一般的なユースケースを読むことができます。APIゲートウェイの使用は、提供されているサービスやAPIの位置透過性を提供し、サービスをクラウドに展開し、既存のサービスから新しいサービスにトラフィックを徐々にシフトさせることができます。これにより、消費者への影響を最小限(またはゼロ)に抑えることができます。
以下に3つの可能な戦略を示します:
-
クラウド移行戦略でAPI Gatewayを使用する1つの方法は、オンプレミスサービスのプロキシを作成することです。これにより、既存のアプリケーションに変更を加えることなく、オンプレミスサービスからクラウド内の対応するサービスにトラフィックをリダイレクトできます。また、簡単なA/Bテストを行い、新しいクラウドエンドポイントのパフォーマンスとユーザーエクスペリエンスに関するメトリクスを収集し、何らかの理由でクラウド内の新しいサービスが適していない場合にオンプレミスサービスに戻すこともできます。
-
もう1つの戦略は、API Gatewayをクラウドサービスのファサードとして使用することです。これにより、外部の消費者に対してマイクロサービスアーキテクチャの複雑さを隠しながら、必要な機能にアクセスできるようにします。
-
3つ目の戦略は、API Gatewayを使用してサービスメッシュを実装し、ゼロトラストネットワークを実装することです。これにより、個々のサービスに変更を加えることなく、マイクロサービス間の通信を管理および保護できます。
Apache APISIXのサービスは、上記の懸念を効率的に実装するためのソリューションとして機能します。アプリケーション全体のプロキシとして、または単一のアクセスポイントとして機能します。プロキシとして機能するAPI Gatewayは、リクエストを効率的に処理し、リファクタリングされたエンドポイントでレガシーアプリケーションをルーティングできます。
サンプルアプリケーションのクラウドへのリプラットフォーム
カンファレンスアプリケーションがあり、5つの主要コンポーネント(ウェブアプリ、API Gateway、レガシーカンファレンスシステム、および2つのマイクロサービス(SessionとAttendee))があると仮定します。以下のアーキテクチャ図に各サービスの責任を示します。
あなたのチームは、カンファレンスアプリのサービスをクラウドに段階的に移行することを選択しました。ビッグバンを避けるため、複数のクラウド環境とオンプレミスのデータセンターでサービスを実行することは追加の課題を提示します。このタスクを考えると、まずAttendeeサービスを「リプラットフォーム」することにしました。以前の段階で参加者機能を独立したマイクロサービスとして抽出し、再アーキテクチャしたため、リファクタリング/再アーキテクチャ戦略は適切ではありませんでした。しかし、将来カンファレンスシステムに新しい機能を追加する際には、システムを再アーキテクチャ(サービスを抽出する可能性がある)し、これをクラウドに移行することが強く検討されるオプションとなります。リホストは堅実な戦略ですが、独自のMySQLデータベースインスタンスを「リフトアンドシフト」するのではなく、クラウドベースのデータベースサービスを活用したいと考えています。
また、API Gatewayをクラウドに移行する必要があります(またはクラウドベンダーが提供するAPIMソリューションを使用します)。多くの段階的なクラウド移行では、ユーザーが行ったAPIリクエストを満たすためにトラフィックが複数のネットワークを通過する必要があります。API Gatewayをクラウドに移行することで、既存のオンプレミスロケーションからクラウドへのAPIトラフィックの段階的なルーティングをサポートすることもできます。以下の図は、リプラットフォームされたアーキテクチャの最終状態を示しています。
まとめ
全体的に、クラウド移行戦略でAPI Gatewayを使用することは、管理の容易さ、セキュリティ、スケーラビリティなど多くのメリットを提供します。これにより、サービスを段階的にクラウドに移行でき、マイクロサービスアーキテクチャの複雑さを外部の消費者から隠すことができます。例えば、Apache APISIXは、完全にオープンソースでクラウドネイティブなAPIトラフィック管理ソリューションであり、任意のクラウドにデプロイして、クラウド移行の時間を短縮する組み込みプラグインで開発者の生産性を向上させることができます。