LFCA: クラウドの可用性、パフォーマンス、拡張性の学習 – パート 14

前回の私たちのLFCAシリーズのトピックでは、クラウドコンピューティングの紹介、異なるタイプとクラウド、クラウドサービスについて説明し、クラウドコンピューティングに関連するいくつかの利点について説明しました。

もし、お使いのビジネスがまだ従来のITコンピューティング環境に乗っているのであれば、クラウドに移行してレベルアップする時がきています。2021年末までに、全体の90%以上のワークロードがクラウドで処理されると推定されています。

クラウドコンピューティングを取り入れることの主な利点の1つは、性能の向上、高可用性、およびスケーラビリティです。実際、私たちはこれらをクラウドテクノロジーを使用する主な利点の1つとして概説しました。

このトピックでは、クラウドの可用性、パフォーマンス、およびスケーラビリティに焦点を当て、これらが顧客の要求を満たし、ユーザーが世界のどこからでも必要な時にデータにアクセスできるようにするためにどのように結集するかを理解しようとします。

1. クラウドの可用性

組織のITアプリケーションやサービスは重要であり、サービスの中断は収益に深刻な影響を与える可能性があります。顧客の期待は、サービスが常にどこからでもいつでも利用可能であることです。そしてそれがクラウドテクノロジーが提供しようとするものです。

高い可用性はクラウドコンピューティングの究極の目標です。これは、予期しないサーバーダウンタイムやネットワークの劣化によって引き起こされる中断にもかかわらず、企業のサービスの最大限の稼働時間を提供しようとします。

高い可用性は冗長化およびフェールオーバーシステムによって実現されます。これは、複数のサーバーまたはシステムが同じタスクを実行し、それによって冗長性が提供されるクラスタ環境で発生します。

サーバーがダウンした場合でも、残りのサーバーは引き続き実行を続け、影響を受けたサーバーが提供するサービスを提供します。冗長性の完璧な例は、クラスタ内の複数のデータベースサーバー間でのデータの複製です。クラスタ内のプライマリデータベースサーバーに問題が発生した場合、別のデータベースサーバーが障害にもかかわらずユーザーが必要とするデータを提供します。

冗長性は単一障害点を排除し、サービスとアプリケーションの99.999%の可用性を確保し、クラスタリングはサーバー間での負荷分散を提供し、ワークロードが公平に分配され、1つのサーバーが圧倒されないようにします。

2. クラウドの拡張性

クラウドコンピューティングのもう1つの特徴は、拡張性です。拡張性とは、クラウドリソースを変更して需要に応じる能力です。要するに、需要に応じてリソースをシームレスに増減させて、サービスの品質やダウンタイムを損なうことなく需要に対応できます。

仮に、より多くのトラフィックが訪れるようになったブログを運営しているとします。クラウドコンピューティングインスタンスにストレージ、RAM、CPUなどのコンピューティングリソースを簡単に追加し、追加のワークロードを処理することができます。逆に、必要な時にリソースを削減することもできます。これにより、必要なものだけを支払うことができ、これがクラウドが提供するスケールの経済性を強調しています。

スケーラビリティは2つの側面があります:垂直スケーリングと水平スケーリング。

垂直スケーリング

また、「スケールアップ」とも呼ばれる垂直スケーリングは、RAM、ストレージ、CPUなどのリソースを追加し、クラウドコンピューティングインスタンスに追加のワークロードを収容することを含みます。これは、物理的なPCやサーバーをシャットダウンしてRAMをアップグレードしたり、追加のハードドライブやSSDを追加したりするのと同等です。

水平スケーリング

水平スケーリング、または「スケールアウト」とも呼ばれる水平スケーリングは、既存のサーバーのプールにより多くのサーバーを追加し、ワークロードを複数のサーバーに分散させることを含みます。水平スケーリングでは、垂直スケーリングとは異なり、単一のサーバーの容量に制限されません。これにより、より多くのスケーラビリティとより少ないダウンタイムが提供されます。

スケールアウトはスケールアップに比べてより望ましい

水平スケーリングでは、既存のリソースプールにサーバーやストレージなどのリソースを追加することになります。これにより、複数の計算インスタンスのパワーとパフォーマンスを1つに組み合わせることができ、単一のサーバーにリソースを追加するだけよりも優れたパフォーマンスが得られます。追加のサーバーがあれば、リソースの不足に対処する必要がなくなります。

さらに、水平スケーリングは冗長性と障害耐性を提供します。1つのサーバーに影響を与えた場合でも、残りのサーバーが必要なサービスへのアクセスを継続します。垂直スケーリングは単一障害点に関連しています。計算インスタンスがクラッシュすると、すべてがそれに伴って停止します。

水平スケーリングは、アプリケーションが1つの大きなユニットとして構築される垂直スケーリングとは対照的に、最大の柔軟性を提供します。これにより、システム全体を再起動することなく、コードのセクションを管理、アップグレード、または変更することがより難しくなります。スケーリングアウトにより、アプリケーションの分離が可能になり、最小限のダウンタイムでシームレスにアップグレードできます。

3. クラウドのパフォーマンス

アプリケーションのパフォーマンスが顧客の要求に満たすようにすることは、特に常に互いに通信するさまざまな環境に存在する複数のコンポーネントがある場合はかなり困難です。

問題点としては、遅延が発生し、パフォーマンスに影響を及ぼす可能性が高いです。また、さまざまなエンティティによってリソースが共有されている場合、パフォーマンスを予測することは容易ではありません。それでも、以下の対策を実装することで高いパフォーマンスを実現し、浮力を維持することができます。

1. クラウドインスタンス

アプリケーションとサービスのワークロードを処理するために十分なリソースを持つ適切なクラウドインスタンスを使用してください。リソース集中型のアプリケーションでは、クラウドインスタンスに十分なRAM、CPU、およびストレージリソースを割り当てて、可能なリソースの不足を回避してください。

2. ロードバランサー

ロードバランサーを実装して、ネットワークトラフィックを公平に分散してください。これにより、どのアプリケーションも需要に圧倒されないようになります。ウェブサーバーに大量のトラフィックが集中し、遅延が発生し、パフォーマンスに影響を与えている場合を想定してください。

A perfect solution would be to implement horizontal scaling with a total of 4 web servers sitting behind a load balancer. The load balancer will distribute network traffic across the 4 web servers and ensure none is overwhelmed by the workload.

3. キャッシュ

アプリケーションによるファイルへのアクセスを高速化するためにキャッシュソリューションを使用してください。キャッシュは頻繁に読み取られるデータを保存し、パフォーマンスに影響を与える可能性のある定数のデータ検索を排除します。データがすでにキャッシュされているため、レイテンシとワークロードが低減され、応答時間が改善されます。

キャッシングは、アプリケーションレベル、データベースレベルなど、さまざまなレベルで実装することができます。人気のあるキャッシュツールには、RedisMemcachedVarnish cache があります。

4. パフォーマンスモニタリング

最後に、サーバーとアプリケーションのパフォーマンスを監視することを忘れないでください。クラウドプロバイダーは、ウェブブラウザからクラウドサーバーを監視するのに役立つネイティブツールを提供しています。

無料でオープンソースのモニタリングツールをインストールすることもできます。そのようなアプリケーションの例には、GrafanaNetdataPrometheusなどがあります。

結論

クラウドでの可用性、スケーリング、パフォーマンスがいかに重要かを強調することはできません。これらの3つの要素が、クラウドベンダーから得られるサービスの質を決定し、最終的にはビジネスの成功または失敗の境界を引くことになります。

Source:
https://www.tecmint.com/cloud-availability-performance-and-scalability/