クラウドの拡張性

クラウドの拡張性とは

クラウドの拡張性とは、データの量、アプリケーションの数、場所の種類の点でスケールアップまたはダウンすることにより、ビジネスの需要や目的の変化に適応できる柔軟で信頼性の高いデータインフラストラクチャを指します。

クラウドの拡張性が重要な理由

クラウドの拡張性は、次のような重要なメリットをもたらす一元的なデータインフラストラクチャを提供することにより、レガシーデータストレージの制限の多くを克服します。

· 高いスケーリング効率: 需要の変化に合わせてリソースの割り当てと再割り当てがすばやく簡単に行われます。

· 自己修復: 自動データレプリケーションにより、さまざまなマシンと場所にわたるすべてのデータのミラーリングされた冗長コピーが保存されるため、ディスクの障害が発生してもアプリケーションが稼働し続けます。

· ロードバランシング: 自動ロードバランシングによってシステム全体にワークロードが分散されるため、リソースの全体的な信頼性と可用性が向上します。

· オープンアクセス: さまざまなAPIを備えた複数の専用ツールにより、同じデータに同時にアクセスできます。

· 汎用性: 同じシステム内にデータをファイル、オブジェクト、イベントストリーム、テーブルなどとして保存できます。

クラウドの拡張性のメリット

スケーリング効率の高いシステム (真の拡張性を備えたシステム) は、関連するデータ、アプリケーション、マシン、場所の数と種類の点でスケールアップもスケールダウンもします。真のクラウドの拡張性とは、次のようなものを指します。

· 柔軟: 同じシステムで各種のツールとアプリケーションを使用してさまざまな機能のすべてを実行します。

· 可変: 再設計を必要とすることなく、容量の拡張または縮小によって需要や要件の変化に適応します。

· 信頼できる: ハードウェア障害が起きたりトラフィックが急増したりしても中断なく稼働し続けます。

· 効率的: 1つのITチームが基盤となる同じデータ構造で複数のプロジェクトやシステムをサポートできるようにします。

· シンプル: ワークロードとアーキテクチャーを合理化してパフォーマンスとコスト効率の高い将来性を考慮したシステムを実現します。

クラウドの拡張性を利用するタイミング

大規模システムは複雑化を招き、大規模組織には、さまざまな場所でさまざまな目的のために設計された複数の独立したシステムを生み出す傾向があるのは明らかです。人々は自然と目の前の問題に焦点を合わせるため、複数の問題が発生すると互いにつながりのない複数のソリューションが構築されることになり、エンタープライズシステムは、サイロ化されたデータと無駄なリソースによって不必要に複雑さと問題を増大させます。

組織は、規模が拡大して複数の場所に複数のシステムが配置され、生成するデータの量と種類が増え始めると、大きな効果を発揮して優れたコスト効率で現在のニーズに対応するだけでなく、変化にも適応できるシステムを手に入れるために、一歩下がってITインフラストラクチャを評価することにコストをかけます。

そして次の変化として、サイズの点でスケールアップを図ることになりますが、それに伴って新たなビジネスプロセス、または機械学習AIのような新たなテクノロジーが導入されることもあります。スケーリング効率の高いシステムは、ダウンタイムを生じさせたり、根本的な再設計を必要としたりすることなく、こうした変化にシームレスに適応できます。 

クラウドの拡張性を実現する方法

データはすべての企業のプロセスで使用されるものであり、あらゆるものをひとまとめにする統一原理です。そして共通の統一されたデータレイヤーをスケーラブルなシステムのバックボーンにすれば、エッジからクラウドまでの運用が統合されて簡素化されます。

真の拡張性を備えたシステム (より多くのデータを保持できるだけでなく、多種多様なデータタイプ、アプリケーション、場所、ハードウェア、ユーザーもサポートできるシステム) の構築は、各プロジェクトの枠を越えて組織全体に及ぶ包括的なデータ戦略から始まります。データサイロを解消すれば複数のグループがデータを使用できるようになり、データを再利用できるようにすればデータの無駄がなくなります。

次のステップでは、差し迫ったニーズに効率的に対応するだけでなく、新しい製品の追加、新たな場所への拡張、ハードウェアのアップグレードや交換、新しいツールやプロセスの導入など、拡張して変化に適応できる柔軟性を備えた一元的なデータインフラストラクチャを導入します。HPE Ezmeral Data Fabricのような一元化されたデータアーキテクチャーは、複数のアプリケーションと組織全体にわたる共通のデータレイヤーを提供します。 

今日のITインフラストラクチャにおけるクラウドの拡張性の重要性

クラウドの拡張性はきわめて重要です。クラウドの拡張性は仮想化によって実現でき、企業はニーズに応じてリソースとパフォーマンスをスケーリングすることが可能になります。今日のITインフラストラクチャでクラウドの拡張性が重要である主な理由は、次のとおりです。

クラウドは安定性が高いため、企業は需要に応じてリソースをスムーズにスケールアップして動的なワークロードに対応できます。また、需要が少ないときはリソースをスケールダウンしてリソースの使用率を最適化します。リソースの動的なスケーリングにより、組織はコストを増大させることなく、使用したリソースの料金を支払うだけで済みます。

スケーラブルなクラウド環境は、ピーク時やワークロードが増えたときにリソースを調整して常時可用性を確保し、サービスの中断を最小限に抑えることで高いパフォーマンスを実現します。クラウドサービスプロバイダーは、さまざまな地域でデータセンターを稼働させているため、組織はアプリケーションとサービスをターゲットオーディエンスの近くに展開できます。これにより、応答時間が短縮されて低レイテンシのアクセスが可能になり、ユーザーエクスペリエンスが向上します。また、新しい製品やサービスの開発期間と市場投入までの時間が短くなるため、企業はすばやくイノベーションを実現でき、開発サイクルが短縮されます。

クラウドの拡張性により、迅速なディザスタリカバリが可能になって事業継続性が確保されます。たとえば、クラウドプロバイダーはデータセンターを分散させてバックアップを自動化し、レプリケーション手法を実装することでデータの冗長性と耐障害性を確保しますが、システム障害や災害などの予測不可能な事態が起きた場合、企業は他の地域でリソースをスケールアップすることで障害を抑制して運用を維持できます。オンデマンドでリソースをスケーリングする機能により、組織は有意義かつ有益な情報を得て判断を下すためにデータを分析して処理することが可能になります。

クラウドの拡張性とは

クラウドコンピューティングの拡張性により、企業は要件に応じてコンピューティングリソースをスケールアップまたはダウンし、インフラストラクチャの障害を抑制できます。

  • クラウドの拡張性と柔軟性: 拡張性は、需要に応じてリソースを増減することでワークロードを管理するクラウドの機能と定義できます。拡張性には、水平と垂直の2つのタイプがあり、垂直拡張性には現在のリソースの処理能力を高めることが含まれる一方、水平拡張性はリソースを追加して負荷を分散することを意味します。

クラウドの柔軟性は拡張性の次のステップであり、クラウドの柔軟性を確保すれば、クラウド環境で需要に応じて自動的にリソースをスケールアップまたはダウンできます。そしてオンデマンドのリソース割り当てが可能になり、パフォーマンスとコスト効率が向上します。

  • 水平拡張性と垂直拡張性: 水平拡張性には、ワークロードを管理するための同じようなリソースを追加することが含まれます。たとえば、アプリケーションを専用サーバーで実行するとワークロードが増えますが、水平拡張性は、サーバーを追加して増大した負荷を分散するのに役立ちます。水平拡張性は、ロードバランシング、分散コンピューティング、クラスタリングなどのプロセスを使用することで実現されます。

垂直拡張性は、リソースのパフォーマンスを最適化することでその容量を増やします。たとえば、仮想マシンでコンピューティング性能を高める必要がある場合は、拡張性によってそのマシンへの外部CPUストレージまたはメモリの追加が容易になります。

  • クラウドの拡張性に影響を与える主な要因:

    - クラウドアーキテクチャーには、さまざまな場所にワークロードを分散してトラフィックの急増に対応したり、必要に応じてリソースをスケーリングしたりするための対策が必要です。

    - 自動化されたサービスプロビジョニング機能とワークロード管理機能は、動的な需要に対応し、リソースの使用率を最適化します。

    - リアルタイムの監視により、抜け穴、リソース使用率のパターン、およびその他の拡張性の問題を追跡できます。

    - 信頼できるインフラストラクチャと分散データセンターを提供し、柔軟にリソースを割り当てるクラウドサービスプロバイダーを選択することがきわめて重要です。

クラウドの拡張性を確保するための設計の方法

クラウドの拡張性を設計するときは、以下の留意事項に重点を置く必要があります。

拡張性を確保するためのアーキテクチャーの留意事項: 

  • 分散型システム: クラウドの拡張性を確保するには、分散型システムアーキテクチャーが不可欠です。複数のサーバーにワークロードを分散すれば、障害や失敗の可能性が減り、並列処理が容易になります。SOA (サービス指向アーキテクチャー) は、疎結合のモジュラーコンポーネントのメリットを活かすために個々のリソースのスケーリングを可能にします。また、マイクロサービスはアプリケーションを独立したサービスに分けて個別のスケーリングを可能にします。
  • ロードバランシング: ロードバランシングアルゴリズムは、トラフィックボリュームを調整して受け取った要求をアクセス可能なリソースに分散します。グローバルにビジネスを展開する企業の場合、グローバルなロードバランシングによって受け取った要求が利用可能な最も近いリソースに転送されてレイテンシが低減され、シームレスなユーザーエクスペリエンスが実現します。
  • フォールトトレランスと冗長性: データとサービスのレプリケーションによって障害が減るうえ、(障害が発生した場合は) 迅速なリカバリでダウンタイムを最小限に抑えて継続性を確保できます。また自動フェイルオーバーによって冗長リソースへの自動切り替えが可能になります。

拡張性のパターンと手法

拡張性のパターンと手法により、企業は増大し続けるアプリケーションの需要を満たして最適なパフォーマンスを確保できます。

  • スケールアップとスケールアウト: スケールアップとは、たとえばワークロードを管理するためのストレージとメモリを追加するなど、個々のリソースの容量を増やすことを指します。その一方、スケールアウトは、ロードバランシング手法を活用してさまざまなリソースにワークロードを分散するためのインスタンスやサーバーなどのリソースを追加することを意味します。
  • ステートレスアーキテクチャーとステートフルアーキテクチャー: ステートレスアーキテクチャーでは、クライアントの要求は完全に独立しており、以前の要求に依存しません。セッションに関連する情報はサーバーに保存されず、すべての要求がさまざまなサーバーに分散されるため、共有セッション状態にする必要がなくなります。

ステートフルアーキテクチャーでは、セッションに関連する情報がサーバーに保存されるため、同期とネットワークの調整が必要です。ステートレスアーキテクチャーは、セッションデータに依存するアプリケーションに必須であり、拡張性とフォールトトレランスを確保します。

  • キャッシングとコンテンツ配信ネットワーク (CDN): キャッシングにより、データはクライアントに最も近い場所に保存されます。企業は静的なコンテンツをキャッシュすることでバックエンドの負荷を最小限に抑え、パフォーマンスを向上させることができます。

CDNは、場所に応じてコンテンツをキャッシュして配信する分散サーバーネットワークです。CDNのメリットとしては、拡張性の向上、コンテンツ配信の最適化、ネットワークの輻輳の低減、ユーザーエクスペリエンスの合理化などが挙げられます。

スケーラブルなクラウドアプリケーションのデータ管理戦略

効果的なデータ分散、高可用性、パフォーマンス、フォールトトレランスを実現するにあたっては、次のようなクラウドアプリケーションのデータ管理戦略が有効です。

  • シャーディングとパーティショニング: シャーディングとは、ノードかシャードにデータを分散してデータベースを水平にパーティショニングすることを指します。すべてのシャードにはデータのサブセットが含まれ、すべてのノードが特定のシャードを管理します。この戦略によって並列処理を行えるようになり、パフォーマンスが向上して効果的なデータ分散が可能になります。シャーディングは、データのボリュームが多く、書き込み/読み取りスループットのニーズが高い場合に使用されます。

パーティショニングとは、リスト、ハッシュ、範囲などの特定の基準に応じてデータベーステーブルを管理可能な小さいチャンクに分けることを指します。すべてのパーティションが独立したストレージデバイスに個別に保存されるため、競合が減ってクエリのパフォーマンスが高まり、拡張性が向上します。

  • レプリケーションと整合性: レプリケーションを行えば、さまざまなノードに複数のデータのコピーが作成され、高可用性が実現します。ノードかリージョンで障害がした場合、複製されたノードからデータにアクセスできます。レプリケーションには、レイテンシや耐久性などのパラメーターによって異なる、同期と非同期の2つのタイプがあります。

企業は、アプリケーションの要件に合った整合性モデルを選択する必要があります。これには結果整合性と強整合性の2つの手法があり、結果整合性はレプリカ間の一時的な不整合に有効です。その一方、強整合性は即時整合性を確保します。

  • データベース拡張性オプション: 垂直拡張性は、単一のデータベースサービスでリソースをスケールアップして、メモリ、ストレージ、CPUを増強し、単一サーバーで多くのワークロードを処理します。水平拡張性には、データベースノード、サーバー、またはインスタンスを追加してトラフィックが多い時間帯にワークロードを分散することが含まれます。

クラウドの拡張性を確保するためのツールとテクノロジー

クラウドの拡張性を確保するためのツールとテクノロジーは、柔軟性、リソースの自動化、最適化によって企業がアプリケーションをスケーリングできるようにします。

  • 仮想化とコンテナ化: 仮想化とは、専用のマシンでサーバー、ネットワーク、オペレーティングシステムなどのリソースの仮想インスタンスを作成することを指します。仮想化では、専用のサーバーで複数の仮想マシンを実行することでリソースの使用を効率化し、需要に応じて仮想マシンにリソースを動的に割り当てるとともに、各アプリケーションを隔離します。

コンテナ化を行えば、アプリケーションとその依存関係を簡単に移動可能な軽量のコンテナに入れることができ、さまざまなコンピュートへの展開を容易にする隔離されたランタイム環境が提供されます。

  • オーケストレーションツール: Kubernetesは、コンテナ化されたアプリケーションの制御をサポートするオープンソースのコンテナオーケストレーションツールであり、リソースの使用状況に応じたコンテナの自動ロードバランシングや水平スキャンなどの高度な機能を提供します。Kubernetesは、複雑なアプリケーションアーキテクチャーの管理をシンプルにして拡張性を向上させます。
  • 自動スケーリングおよびロードバランシングサービス: 自動スケーリングは、指定された評価基準やポリシーに応じてアプリケーションに割り当てられたリソースを操作し、リソースをスケールアップまたはダウンしてさまざまな需要を満たすことにより、ピーク時にリソースを最適化してパフォーマンスを向上させます。一方、ロードバランシングは、さまざまなサーバーの受信ネットワークトラフィックを管理してワークロードの増加を防ぎ、リソースの使用率を最適化します。
  • サーバーレスコンピューティング: サーバーレスコンピューティングは、サービスを管理せずにコードを簡単に実行できるようにします。基盤となるインフラストラクチャを隔離し、受け取った要求に応じて実行環境をスケーリングするとともに、リソースを動的に割り当ててきめ細かい拡張を可能にします。

クラウドの拡張性を確保するためのベストプラクティス

次のようなクラウドの拡張性を確保するためのベストプラクティスを実行することにより、企業は耐障害性、柔軟性、効率を向上させてアプリケーションをスケーリングできます。

  • 最初から拡張性を確保できるように計画を立てる: 設計段階で拡張性に関する重要な留意事項 (柔軟性、水平拡張性、フォールトトレランス) を含めます。アプリケーションには、きめ細かいリソース割り当てを可能にする分離されたモジュラーアーキテクチャーが必要です。
  • パフォーマンスを監視して最適化する: パフォーマンス評価基準と重要な指標を分析して管理することにより、抜け穴や問題を見つけ出します。次に、データベースクエリを改善してアプリケーションの設定をチューニングし、キャッシング戦略を組み込むことでアプリケーションのパフォーマンスを最適化します。
  • 需要と使用パターンに基づいてスケーリングする: 自動スケーリングにより、ニーズに応じて動的にリソースが割り当てられます。もう1つのオプションとして、履歴データを用いて自動スケーリングの活用をサポートする予測スケーリングもあります。
  • 継続的インテグレーションおよびデプロイ (CI/CD) によって拡張性を確保する: CI/CDのアプローチは、機能と機能強化を統合してイテレーションと改善を迅速化するのに役立ちます。

クラウドの拡張性の課題と制限

企業が成功を収めるには、クラウドの拡張性に関連する課題と制限を克服しなければなりません。

  • クラウドのスケーリングがコストにもたらす影響: ワークロードを処理するための追加のリソースをプロビジョニングすると、主にリソースがオーバープロビジョニングまたはアンダープロビジョニング状態になったときにコストが高くなることがあります。また特に水平スケーリングでは、さまざまなサーバーにデータを移行するとコストが増加する可能性があります。
  • 潜在的なパフォーマンスボトルネック: 複数の地理的位置にスケーリングすると応答時間が長くなり、ネットワークのレイテンシやユーザーエクスペリエンスに影響が及ぶことがあります。ネットワークのレイテンシを短縮するには、CDNかエッジコンピューティングを使用します。依存関係や処理が複雑なアプリケーションでのスケーリングは容易ではありませんが、アプリケーションアーキテクチャーを分析して、早い段階ですべての抜け穴に対処します。
  • セキュリティとデータプライバシーの留意事項: スケーリング時にセキュアな通信プロトコルと暗号化を使用して機密情報のプライバシーを確保します。また、プライバシー、ストレージ、アクセスの規制に準拠することもきわめて重要です。

HPEとクラウドの拡張性

HPE GreenLake Edge-to-Cloudプラットフォームは、セキュアでスケーラブルなクラウドサービスを提供する、業界で最も包括的なオンプレミスソリューションの1つです。HPE GreenLakeは、企業におけるクラウド運用のワークロードの変革と最新化、エッジからクラウドまでのアプリケーションの最適化と保護、提供元や場所を問わないあらゆる形式のデータへの即時アクセスの実現を強力にサポートします。

HPE GreenLake Lighthouseは、構成を複雑化させることなく、複数のクラウドサービスをオンデマンドで利用できるようにします。セキュアなクラウドネイティブインフラストラクチャが、新たな構成を注文して待つ必要をなくします。また最適化されたクラウドサービスをあらゆる場所から数分で稼働させることができます。

HPE Ezmeral Data Fabricは、エッジ、オンプレミス、またはクラウドなどの場所を問わず、データ保管、データ管理、データ移動機能を提供する、非常にスケーラブルで完全なソフトウェア デファインド ソリューションです。ハードウェアに依存せず、どのようなシステムでも利用できるという点で非常に柔軟性に優れています。また、同じ管理とセキュリティの下で同じシステムのあらゆる部分に (ファイル、オブジェクト、イベントストリーム、テーブルなどの) さまざまな形式でデータを保存し、このような一元化のメリットによってシステムに真の拡張性をもたらします。