Webサイトの高可用性を導入するのに適切なタイミングはいつですか?


16

Webサイトの高可用性を導入するのに適切なタイミングはいつですか?

高可用性オプションに関する多くの記事があります。ただし、単一サーバーから高可用性構成に切り替えるのに適切なタイミングはいつかということは明らかではありません。

私の状況を考慮してください:
http : //www.postjobfree.comは24時間年中無休のWebサイトであり、大量のトラフィックがあります:http :
//www.similarweb.com/website/postjobfree.com

現在、単一のサーバーで実行しています。IIS7.0 WebサーバーとSQL Server 2008の両方が同じハードウェアボックスで実行されています。

通常、Windows Serverの更新プログラムで必要な再起動が原因で、時折(1か月に1回)〜5分のダウンタイムが発生します。通常、ダウンタイムは予定されており、夜間に発生します。それでも、Google Botと一部のユーザーは夜もアクティブであるため、不快です。

現在のWebサイトの収益は、約8,000ドル/月です。

2サーバー構成(2つのWebサーバーのWebファームと、2つのハードウェアサーバーでホストされる2つのSQL Serverのクラスター)に切り替えることを検討します。

長所:
1)高可用性(理論的にはダウンタイムなし)。サーバーの1つがダウンした場合でも、別のサーバーが引き継ぎます。
2)データの損失なし:SQLクラスターがない場合、ハードウェア障害の場合に最大1日分のデータが失われる可能性があります(毎日バックアップを行います)。

短所:
1)そのような構成をセットアップして維持するためのより多くの努力。
2)ホスティングコストが高い。毎月〜600ドルではなく、毎月約1200ドルです。

あなたの推薦は何ですか?


私の質問に対する答えは、開発に影響を与える可能性があります。たとえば、データベースを複数の部分に分割し、高い信頼性(ユーザー入力)を必要とするデータを、高いパフォーマンス(計算)を必要とするデータとは別に保持することを検討します。

2
こんにちはデニス、これは本当にお勧めではないので、コメントとして付けましたが、単一のWindowsサーバーのホスティングコストはかなり高いように見えますか?完全に専用のサーバー(VMではない)であると想定していますが、その場合でも、8GBのRAM、十分なディスク領域などを備えた適切な仕様のサーバーの場合、おそらくその半分のコストを検討する必要があります。より良い価格を得るためのホスティング会社。
ユアンリース

6
プロジェクトの構想の最初の瞬間から、高可用性を計画する必要があると思います。
トム・オコナー

ユアン、私のWebサイトを高速で動作させたいので、8 GBのメモリとSDDドライブを備えたクアッドプロセッサを使用しています。ソフトウェアライセンス(Windows、SQL Server)、SSLおよび技術サポートのコストの要因。そのための低価格で優れたソリューションはありますか?現在、ホスティングにはServer Intellect(SoftLayerが支援)を使用しています。もっと良いものをお勧めしますか?
デニスゴリリック

2
Windows Updateにはセキュリティ更新プログラムが付属しています。サーバーにパッチを適用しないと、攻撃に対して脆弱になる可能性があります。Windows本番サーバーに推奨する更新頻度は何ですか?
デニスゴリリック

回答:


15

簡単な答え:ダウンタイムまたはそのリスクにより、高可用性を得るための費用がかかる場合。

それは基本的に経済的な決定です。例として。月額8,000ドルは、2時間の停止に22ドルかかることを意味します。2時間以内にゼロから完全に機能するサイトに移行できるようにシステムを構成できる場合、高可用性ではそれ以上の機能が22ドルしか得られません。

別の言い方をすれば、特定の月に54時間の予防不可能なダウンタイムが発生しない限り、お金を節約できます。


16
評判に対するリスクも考慮する必要があります
gbn

7
ダウンタイムの1時間あたりのコストは、ほぼ確実にサーバーがダウンしたときによって異なります。トランザクションが24時間にわたって均等に広がることはほとんどありません。ほんの数時間のピーク時に発生するのがより一般的であり、その時点で損失はさらに大きくなります。
ジョンガーデニアーズ

Slartibartfast、私はあなたの答えをそのように理解しています:壊滅的な障害後の回復時間が妥当(数時間)であり、データ損失が妥当(数時間)であることを確認してください。これは、毎日のバックアップ、増分部分バックアップ、およびそのすべての構成を復元するために使用可能なサーバーを持っていることを意味します。正しく聞こえますか?
デニスゴリ

応答:gbn:同意しました。私は簡単な説明をしようとしていましたが、評判は簡単に重要な要因になる可能性があります。John Gardeniers:確かに、サイトが午前11時から午後1時までの日曜日にしか使用されていない場合、予定されたダウンタイムは実際には問題になりませんが、計画外の2時間の停止に対する$ 2kの値札right_thenです。その時点で、addnlサーバーの月額$ 600の特定の料金に対して、不測の停止が($ 2kの収益コストで)発生する可能性を把握する必要があります。ヒント:重要な期間中にランダムな障害が4 /年より頻繁に発生しない限り、それは価値がありません。
Slartibartfast

Dennis Gorelik:保護したいリスク(たとえば、メンテナンス中のビジネスの損失、サーバーの損失、データセンターの損失、アカウント/セキュリティ/データベース違反)を決定し、それらから保護するために行動します。この場合、メンテナンスと予測できない障害によるダウンタイムから保護しています(私が知る限り)。説明することでトリックを実行できますが、復元期間中にサーバーを取得してセットアップできると確信できる限り、サーバーを所有する必要はありません。
Slartibartfast


2

ほとんどのユーザーは、少しの予定されたダウンタイムを処理できると思います。ebayでは金曜日の夜に毎週更新が行われ、その前後の入札は時々機能しないことを考慮してください。私の(主要なオーストラリアの)銀行のオンラインバンキングでは、毎週数時間の停止が予定されています。Twitterは常にオフラインになります。Heroku / EC2は最近数日間ダウンしていました。

私はその観点でそれを維持します、あなたが本当に月に5分しか話していないなら、あなたはシステム管理者として非常に良い仕事をしています。


1

インデックス作成の要素としてGoogleを既に言及しましたが、レイテンシ/サイトの応答性がSEOに与える影響を考慮する価値があるかもしれません。それはブラックボックスであり、すべてを定量化するのは非常に困難です。しかし、その価値はあるものの、Matt Cuttsはそれが1つの中心であると考えています。他の人が述べたように、私は評判についてもっと心配するでしょう。


1

HAは、セキュリティと同様に製品ではなく、プロセスであることに注意してください。

たとえば、データベースレプリケーションでは、データベースの各ミラーが単独で継続できるようになるだけですが、障害のあるコンポーネントを交換した後の再同期のための戦略も必要です。

例として注文システムを考えてみましょう。顧客が注文を送信し、処理中に、データベースのローカルコピーに注文情報を保存した後、彼が話していた物理システムが故障します。せっかちなお客様は、もう一度「送信」を押すと、注文を受け入れる別のサーバーに転送されます。反対側で欠落しているINSERTステートメントを再生するだけでデータベースを再同期すると、順序が複製されますが、これは望んでいない場合があります。

@Slartibartfastが示唆したように、それはすべて経済的な決定に帰着しますが、ここで数年先の計画を立てることもお勧めします。適切なHAセットアップが必要な場合は、準備作業のためにリソースを確保するのがよいタイミングです。


1

これについて考えている間、「クジラの失敗」ページの設定を検討すると思います。

これを行う方法はたくさんありますが、route53とs3のawsコンボは私の小さなサイトでうまく機能します。

障害時にDNSがs3にある静的htmlページにユーザーを送信するように、ヘルスチェックを使用してドメインを設定します。費用はほとんどありません。

私の経験では、あなたのサイトに「申し訳ありませんが壊れていますが、私たちはそれに取り組んでいます」と言うことは、ユーザーに世界を変えます。ユーザーと通信できるTwitterアカウントはさらに優れています。

これは、停止の最も重大な影響となる可能性のある「評判の低下」を緩和するのに長くかかります。

設定のガイドについては、https//aws.amazon.com/blogs/aws/create-a-backup-website-using-route-53-dns-failover-and-s3-website-hosting/ご覧ください

DynDnsのソーシャルフェールオーバーhttp://dyn.com/managed-dns/social-failover/は似たようなものです。

DNSレコードのTTLが低く、プログラムで操作する方法がある場合は、独自にロールしてヘルスチェックを行い、DNSの変更をスクリプト化できます。


これらのヘルスチェックは、DNSをホストする同じサーバーから実行する必要がありますか?条件付きDNSアップデートの作成方法を想像することはできません。
デニスゴリリック

@DennisGorelikは必ずしも必要ではありませんが、DNSレコードには短いTTLが必要であり、ヘルスチェックを行うものはすべて、レコードを迅速に変更できる必要があります。これを実現する方法に関する詳細情報を含む回答を更新しました。
ナス

DNSのTTLをヘルスチェックへの依存と組み合わせて使用​​すると、システム全体の安定性がやや低下する場合があります(メインサーバーが正常に動作する場合でも切り替えられる場合があります)。実際には、エンドユーザーにとって状況が悪化することはありますが、良くなることはありません。
デニスゴリリック

短いTTL自体は、適切なDNSプロバイダーでは問題になりません。ヘルスチェックでかなり低いバーを設定した場合(つまり、10分間http 200がない場合のフェイルオーバー)、安定性は問題になりません。または、ヘルスチェック部分をスキップして、手動でカットオーバーすることもできます。これは、ユーザーが「接続タイムアウト」やその他の見苦しいエラーを受け取るが、誤検知の可能性がなくなる時間が長くなることを意味します。
ナス

0

EC2のように柔軟に拡張し、短所を無効にするようなものを使用することを検討しましたか?EC2を使用する価値があるかどうかは、最終的には経済的な決定ですが、少なくとも考慮すべきオプションです。


-2

データの損失を防ぐには、クラスターの前にRAID構成を調べる必要があります。DNSの伝播を待たずに災害が発生した場合に、あるサーバーから別のサーバーに切り替えることができるフェールオーバーIPも構成する必要があります。


これはどこから来たのですか?ポスターがまだRAIDを使用していないと思う理由は何ですか?
Chopper3

チョッパー3。私が言ったことは、Raidが彼のデータ損失の問題を解決するということだけです。
-yqt

2
どうやって?1つのディスクが確実に死んだ場合、コントローラーが
故障した
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.