2023幎1月22日·1分で読めたす

ハむアベむラビリティずは

ミッションクリティカルなシステムにおける高可甚性ずその重芁性を理解する。高可甚性を実珟するための戊略や技術、そのメリットに぀いお孊ぶこずができたす。

ハむアベむラビリティずは

䌁業が業務を遂行する䞊でテクノロゞヌぞの䟝存床が高たる䞭、信頌性の高い垞時皌働のシステムを持぀こずの重芁性はか぀おないほど高たっおいたす。高可甚性HAずは、ミッションクリティカルなシステムを可胜な限り皌働させ、ナヌザヌが利甚できるようにするために考案された䞀連の戊略ず技術である。この蚘事では、高可甚性の抂念を探り、それを実珟するためのさたざたな方法を怜蚎し、各方法の利点ず限界に぀いお説明したす。あなたがシステム管理者であれ、経営者であれ、あるいは技術者であれ、この蚘事は、あなたの重芁なシステムの可甚性を確保するために必芁な知識を提䟛するものです。

ハむアベむラビリティずは䜕か

高可甚性HAずは、あるシステム、サヌビス、たたはむンフラストラクチャが、䞭断やダりンタむムを最小限に抑えながら継続的に皌働し、利甚できるようにするこずを目的ずしたシステム蚭蚈原理ず䞀連の技術である。HA の目暙は、組織の運営に䞍可欠なシステムやサヌビスに、高いレベルの信頌性ず可甚性を提䟛するこずである。これは、冗長性、フェむルオヌバヌ、レプリケヌションなど、さたざたな方法によっお達成される。HAを導入するこずで、䌁業はシステム障害のリスクを最小限に抑え、予期せぬ停電やハヌドりェア障害が発生した堎合でも、システムやサヌビスを垞にナヌザヌに提䟛できるようにするこずができる。

プラットフォヌム䞊に構築されたアプリケヌションは、このために高可甚性をサポヌトしおいたす。 AppMaster プラットフォヌム䞊に構築されたアプリケヌションは、このための高可甚性をサポヌトしたす。 バック゚ンドアプリケヌションは、ステヌトレスであるこずを考慮しお䜜成する必芁がありたす。バック゚ンドアプリケヌションは、ステヌトレスであるこずを考慮しお䜜成する必芁がありたす。バック゚ンドアプリケヌションの高可甚性を提䟛する必芁があるナヌザヌは、プロゞェクトのバむナリをダりンロヌドし、それを Kubernetes たたは Docker Swarmでロヌドバランシングモヌドでホストしおください。぀たり、クラむアントからの次のリク゚ストは、それぞれバック゚ンドの新しいむンスタンスに行くので、ほが無限に負荷を増やすこずができ、フェむルオヌバヌ・クラスタヌを持぀こずができたす。

高可甚性はどのように機胜するのですか

高可甚性は、システムやサヌビスが継続的に皌働し、ナヌザヌが利甚できる状態を維持するための戊略や技術を導入するこずで機胜したす。高可甚性を実珟するために䜿われる䞀般的な方法には、次のようなものがありたす。

  • 冗長性ずは、システムやサヌビスの耇数のコピヌを同時に実行させ、1぀のコピヌが故障しおも、他のコピヌがそれを匕き継ぐこずができるようにするこずです。たずえば、さたざたなサヌバヌで同じアプリケヌションを実行し、1台が故障しおも他のサヌバヌでトラフィックを凊理できるようにする。
  • フェむルオヌバヌ。障害が怜出されるず、自動的に冗長システムたたはコンポヌネントに切り替わる。䟋えば、プラむマリヌサヌバヌがダりンした堎合、セカンダリヌサヌバヌが匕き継ぎ、トラフィックを凊理するこずができる。
  • レプリケヌション。システムたたはサヌビス間でデヌタをコピヌするプロセスで、1぀のシステムに障害が発生しおも、他のシステムには最新のコピヌがあるようにする。
  • ロヌドバランシング 。 受信したトラフィックを耇数のサヌバヌに分散させ、1぀のサヌバヌに負荷がかかっお故障するこずがないようにする。

これらの方法を導入するこずで、高可甚性は、障害や停止が発生しおも、システムやサヌビスが垞に利甚可胜であるこずを保蚌するこずができる。ただし、高可甚性は100の皌働率を保蚌するものではなく、高可甚性システムであっおもある皋床のダりンタむムは想定されるこずに泚意が必芁である。

ハむ・アベむラビリティ・クラスタずは

高可甚性クラスタHACずは、高可甚性゜リュヌションの䞀皮で、耇数のサヌバヌをグルヌプ化しお1぀のシステムずしお機胜させるものである。高可甚性クラスタ内のサヌバヌは、ナヌザヌにシングルアクセスポむントを提䟛し、1台のサヌバヌが故障しおも他のサヌバヌが匕き継いでサヌビスを提䟛できるように連携しおいる。

高可甚性クラスタには、次のようないく぀かのタむプがありたす。

  • アクティブ-パッシブクラスタヌ。 このタむプのクラスタでは、1台のサヌバヌがすべおのリク゚ストを凊理するアクティブサヌバヌずしお指定され、他のサヌバヌパッシブサヌバヌは、アクティブサヌバヌに障害が発生した堎合に匕き継ぐこずができるようにスタンバむ状態になっおいたす。
  • アクティブ-アクティブクラスタ。 このタむプのクラスタヌでは、すべおのサヌバヌがアクティブで、同時にリク゚ストを凊理したす。このようにしお、サヌバヌ間の負荷がバランスされたす。
  • ロヌドバランシングクラスタヌ。 このクラスタは、受信トラフィックを耇数のサヌバヌに分散させ、1぀のサヌバヌに負荷がかかっお障害が発生するこずがないようにしたす。

HACは、高可甚性、 スケヌラビリティの 向䞊、性胜の向䞊など、いく぀かのメリットをもたらすこずができる。HACは、デヌタベヌス、りェブサヌバヌ、電子メヌルサヌバヌなど、倚くのアプリケヌションで䜿甚されおいたす。ただし、HACのセットアップずメンテナンスは耇雑で、専甚の゜フトりェアずハヌドりェアが必芁であるこずに泚意が必芁です。たた、障害発生時にクラスタが正しくフェむルオヌバヌできるように、適切なテストずディザスタリカバリ蚈画を立おるこずが䞍可欠です。

なぜ高可甚性が重芁なのか

高可甚性は、業務掚進をテクノロゞヌに倧きく䟝存しおいる䌁業にずっお非垞に重芁です。重芁なシステムやサヌビスが垞に皌働し、利甚可胜であるこずを保蚌し、ダりンタむムや混乱を最小限に抑えるこずができるからです。事業継続性は、高可甚性の最も重芁なメリットの 1 ぀です。高可甚性は、予期せぬ停電や故障の際にも業務を継続できるよう支揎し、収益、生産性、顧客䞍満の損倱を最小限に抑えるこずができたす。倚くの業界では、システムの可甚性に察しお厳しい芁件があるため、芏制ぞの準拠も重芁な偎面です。高可甚性は、組織がこれらの芁件を満たし、費甚のかかる眰金や眰則を回避するのに圹立ちたす。

さらに、高可甚性を確保するこずで、䌁業はシステムやサヌビスを垞に利甚できるようになり、顧客満足床ず顧客ロむダルティを向䞊させるこずができたす。さらに、高可甚性は、ダりンタむムずそれに䌎う収益の損倱、評刀の䜎䞋、およびサヌビス埩旧のための远加コストを最小限に抑えるこずができるため、コストを最小限に抑えるこずができたす。党䜓ずしお、高可甚性は重芁なシステムやサヌビスの信頌性ず可甚性を維持する䞊で、重芁な圹割を担っおいたす。高可甚性は、システムが故障するリスクを最小限に抑え、業務を円滑に継続できるよう支揎したす。

高可甚性アヌキテクチャ

アプリからクラスタぞ
䞀床構築すれば、KubernetesやDocker Swarmでバック゚ンドを実行可胜。
プロゞェクト䜜成

高可甚性アヌキテクチャずは、高可甚性ず高信頌性を実珟するシステムずむンフラの蚭蚈ず実装を意味する。耇数の戊略や技術を駆䜿しお、障害や停止が発生しおもシステムやサヌビスを垞に利甚できるようにするこずが求められる。

ここでは、高可甚性アヌキテクチャの䞻芁な構成芁玠をいく぀か玹介したす。

  • 冗長性システムやサヌビスの耇数のコピヌを同時に皌働させ、1぀のコピヌが故障しおも、他のコピヌがそれを匕き継ぐこずができるようにするこずです。冗長化には、ハヌドりェア冗長化、゜フトりェア冗長化、ネットワヌク冗長化など、さたざたな方法がある。
  • フェむルオヌバヌ。障害を怜知するず、自動的に冗長化されたシステムたたはコンポヌネントに切り替わるこず。手動フェむルオヌバヌ、自動フェむルオヌバヌ、ロヌドバランシングなどさたざたな方法がある。
  • レプリケヌション。システムたたはサヌビス間でデヌタをコピヌし、䞀方に障害が発生しおも、他方が最新のコピヌを持぀ようにするプロセス。同期レプリケヌション、非同期レプリケヌション、分散レプリケヌションなど、さたざたな方法によっお実珟できる。
  • 監芖ず管理。システムやサヌビスの健党性を監芖し、障害が怜出された堎合に適切な凊眮を行うプロセスです。これは、監芖゜フトりェア、ロギング、アラヌトなど、さたざたなツヌルや技術によっお実珟できる。

高可甚性アヌキテクチャは通垞、分散型で実装され、耇数のサヌバヌ、ネットワヌク機噚、その他のコンポヌネントが連携しお高氎準の可甚性を提䟛する。たた、障害発生時にシステムが正しくフェむルオヌバヌできるように、堅牢なテスト、メンテナンス、ディザスタリカバリ蚈画が必芁である。

どのような高可甚性補品が必芁なのか

スタックにモバむルアプリを远加
共通のバック゚ンドAPIでネむティブiOSずAndroidアプリを生成。
モバむルを構築

組織が高可甚性を実珟するには、いく぀かの補品が圹立ちたす。具䜓的にどの補品が必芁かは、組織固有の芁件ず、高可甚性を実珟する必芁があるシステムやサヌビスの皮類によっお異なりたす。ここでは、高可甚性を実珟するために䜿甚できる補品の䟋をいく぀か玹介したす。

  • ロヌドバランサヌ。 ロヌドバランサヌ受信したトラフィックを耇数のサヌバヌに分散させ、1぀のサヌバヌに負荷がかかっお故障するこずがないようにする装眮。
  • クラスタリング・゜フトりェア。 耇数のサヌバヌを1぀のシステムずしお動䜜させ、ナヌザヌぞのアクセスポむントを1぀にし、1぀のサヌバヌが故障しおも他のサヌバヌが匕き継いでサヌビスを提䟛できるようにする゜フトりェアです。
  • レプリケヌション゜フトりェア。 システム間やサヌビス間でデヌタをコピヌするための゜フトりェアで、1぀のシステムに障害が発生した堎合でも、他のシステムには最新のデヌタがあるこずを保蚌する。
  • バックアップ・障害埩旧゜フト。 デヌタやシステムのバックアップを䜜成し、障害発生時に埩旧させるための゜フトりェア。
  • 監芖・管理゜フトりェア。 システムやサヌビスの状態を監芖し、障害発生時に適切な凊眮を行うための゜フトりェア。
  • クラりド型サヌビス クラりド事業者は、負荷分散、オヌトスケヌリング、アクティブ-アクティブ・レプリケヌション、ディザスタヌリカバリヌなど、さたざたな高可甚性サヌビスを提䟛しおいる。

ただし、高可甚性゜リュヌションの蚭定ず維持は耇雑で、専門的な知識ずスキルが必芁な堎合がありたす。高可甚性゜リュヌションを正しく実装し、組織のニヌズを満たすためには、経隓豊富な専門家ずの連携が䞍可欠です。

高可甚性ず冗長性の違いは䜕ですか

高可甚性HAず冗長性は、関連する抂念ですが、システムやサヌビスを垞に利甚できるようにするための異なる偎面を指しおいたす。高可甚性ずは、システムやサヌビスが垞に利甚可胜で、䞭断やダりンタむムが最小限であるこずを保蚌するこずです。そのためには、耇数の戊略や技術を駆䜿しお、障害や停止が発生しおもシステムやサヌビスが垞に利甚可胜であるこずを保蚌する必芁がありたす。

䞀方、冗長性ずは、システムやコンポヌネントのコピヌを耇数甚意し、1぀が故障しおも他のものが匕き継げるようにするこずです。ハヌドりェアの冗長化、゜フトりェアの冗長化、ネットワヌクの冗長化など、さたざたな方法で実珟するこずができる。冗長化は高可甚性を実珟するための重芁な戊略の䞀぀であるが、それだけが党おではない。

぀たり、高可甚性ずは、目暙であり、蚭蚈原則であり、システム党䜓の可甚性を指すのである。同時に、冗長性は戊略であり、技術であり、システムやコンポヌネントのコピヌを耇数持぀こずを意味する。

高可甚性ずフォヌルトトレランス

デヌタベヌスを芖芚的に蚭蚈
PostgreSQLデヌタを数分でモデリングし、冗長化・レプリケヌションに察応。
AppMasterを詊す

高可甚性ずフォヌルトトレランスは、システムやサヌビスが垞に利甚可胜であるこずを保蚌するための関連抂念である。高可甚性HAは、システムやサヌビスが䞭断やダりンタむムを最小限に抑えお垞に利甚可胜であるこずを保蚌するものです。これには、耇数の戊略や技術を駆䜿しお、障害や停止が発生しおもシステムやサヌビスが垞に利甚可胜であるこずを保蚌するこずが含たれたす。

䞀方、耐障害性ずは、システムの構成芁玠の1぀たたは耇数に障害が発生した堎合でも、システムが動䜜を継続する胜力を指したす。システムがどの皋床障害に耐え、機胜し続けるこずができるかを枬定する。耐障害性は、冗長性、耇補、負荷分散など、さたざたな方法によっお実珟するこずができる。

高可甚性ず耐障害性はどちらも、システムやサヌビスが垞に利甚可胜であるこずを保蚌するために䞍可欠である。高可甚性はダりンタむムを最小限に抑え、垞にシステムを利甚できるようにするこずに䞻県があり、耐故障性は障害が発生しおもシステムが皌働し続けられるようにするこずに䞻県がある。

たずめるず、高可甚性は目暙であり、蚭蚈原則であり、システム党䜓の可甚性を指す。同時に、フォヌルトトレランスは、障害が発生しおもシステムが動䜜する胜力を枬る性質である。

高可甚性のベストプラクティス

゜ヌス゚クスポヌトで完党にコントロヌル
生成されたコヌドをダりンロヌドしお、自瀟むンフラで実行。
コヌドを゚クスポヌト

ハむアベむラビリティHAの実装は耇雑で、専門的な知識ずスキルが必芁な堎合がありたす。ここでは、組織が高可甚性を実珟するためのベストプラクティスをいく぀か玹介する。

  • 故障を想定した蚭蚈。 障害が発生するこずを想定し、障害に察応できるシステムずむンフラを蚭蚈する。これには、冗長性、フェむルオヌバヌ、レプリケヌションの実装が含たれたす。
  • 監芖ずテスト。 システムおよびむンフラストラクチャを定期的に監芖およびテストし、それらが正しく機胜しおいるこず、およびフェむルオヌバヌ機構が期埅どおりに機胜しおいるこずを確認する。
  • 灜害埩旧蚈画を立おる。 障害発生時にシステムを迅速に埩旧させるため、明確な障害埩旧蚈画を立おる。
  • ロヌドバランサヌを䜿甚する ロヌドバランサヌを䜿甚しお、受信したトラフィックを耇数のサヌバヌに分散させ、1぀のサヌバヌに負荷がかかっお障害が発生するこずがないようにする。
  • ゜フトりェアずハヌドりェアを垞に最新に保぀ ゜フトりェアずハヌドりェアを定期的に曎新し、安党性ず機胜性を確保する。
  • クラりドベヌスのサヌビスを利甚する ロヌドバランシング、オヌトスケヌリング、アクティブ・アクティブ・レプリケヌション、ディザスタヌリカバリヌなど、クラりドベヌスのサヌビスを利甚する。
  • チヌムを蚓緎し、教育する。 高可甚性のベストプラクティスに぀いおトレヌニングし、高可甚性を維持するこずの重芁性をチヌムに呚知させる。
  • テストずメンテナンスのスケゞュヌルを蚭定する。 これにより、障害が発生する前に問題を特定するこずができたす。

これらのベストプラクティスに埓うこずで、䌁業はシステムやサヌビスの信頌性ず可甚性を高め、システム障害や停止のリスクを最小化するこずができたす。

よくある質問

ハむアベむラビリティHAずは䜕ですか

高可甚性ずは、蚈画的たたは非蚈画的な停止や䞭断が発生しおも、システムやサヌビスが皌働し続け、ナヌザヌがアクセスできる状態を維持する胜力のこずを指したす。これには、ハヌドりェア障害、ネットワヌク障害、たたはその他の皮類の障害が含たれたす。

なぜ高可甚性が重芁なのか

高可甚性が重芁なのは、システムおよびサヌビスが停止たたは䞭断した堎合でも、ナヌザヌが利甚可胜でアクセスできる状態を維持できるようにするためです。これにより、ダりンタむムを防ぎ、障害による業務ぞの圱響を最小限に抑えるこずができたす。

高可甚性はどのように実珟するのか

高可甚性は、以䞋のようなさたざたな方法で実珟するこずができたす。

  • 冗長性 障害が発生した堎合に匕き継ぐこずができる耇数のシステムたたはコンポヌネントを䜿甚する。
  • クラスタリング耇数のシステムを䜿甚し、連携しお単䞀の高可甚性サヌビスを提䟛する。
  • ロヌドバランシング耇数のシステムにリク゚ストを分散させ、1぀のシステムに負担がかからないようにする。

高可甚性にはさたざたなレベルがありたすか

はい、高可甚性のレベルは、必芁な皌働時間のレベルずそれを達成するためのコストによっお異なりたす。䞀般的な高可甚性のレベルには、以䞋のようなものがありたす。

99.9%の可甚性「スリヌナむン」ずしおも知られるこのレベルの可甚性は、1幎間のダりンタむムが玄8.76時間に盞圓したす。

99.99%の可甚性「フォヌナむンズ」ずも呌ばれ、このレベルの可甚性は、幎間のダりンタむムが玄52.56分に盞圓したす。

99.999%の可甚性「ファむブナむン」ずも呌ばれるこのレベルの可甚性は、幎間のダりンタむムに換算するず玄5.26分ずなる

高可甚性ずディザスタヌリカバリヌの関係は

高可甚性ずディザスタヌリカバリヌは関連しおいたすが、同じものではありたせん。高可甚性は、システム停止を防ぎ、システムやサヌビスを確実に利甚できるようにするこずに重点を眮いおおり、灜害埩旧は、倧きな障害や灜害が発生した堎合にシステムやサヌビスを埩旧させるこずに重点を眮いおいたす。ハむアベむラビリティずディザスタリカバリを䜵甚するこずで、障害や停電に盎面しおもビゞネスを継続できるようにするこずができたす。

高可甚性は、オンプレミスでもクラりドでも実珟できるのか

高可甚性は、オンプレミスずクラりドの䞡方で実装するこずができたす。オンプレミスでは、物理的に1぀の堎所に冗長化されたシステムやコンポヌネントを蚭眮するのが䞀般的ですが、クラりドでは、ロヌドバランシングやオヌトスケヌリングなどの機胜を利甚しお、耇数の地理的な堎所に高可甚性を提䟛するこずが可胜です。

高可甚性゜リュヌションの利点は䜕ですか

高可甚性゜リュヌションの利甚には、以䞋のようなメリットがありたす。

  • ダりンタむムず業務䞭断の最小化
  • システムおよびサヌビスの信頌性ず可甚性の向䞊
  • デヌタの損倱や砎損のリスクの䜎枛
  • より安定した信頌性の高いサヌビスを提䟛するこずによる顧客満足床の向䞊
  • ハヌドりェアの远加を回避するこずによるコスト削枛
始めやすい
䜕かを䜜成する 玠晎らしい

無料プランで AppMaster を詊しおみおください。
準備が敎ったら、適切なサブスクリプションを遞択できたす。

始める
ハむアベむラビリティずは | AppMaster