web-dev-qa-db-ja.com

サーバーインフラストラクチャの推奨事項

ここにあるのは、動的に拡張できる安価で高速で信頼性の高いインフラストラクチャ(Amazon S3:クラウドストレージなど)が必要だということです。私は3種類の「サーバー」を考えています。

  1. アプリケーション・サーバー

    • CentOS(または別の軽量Linux-distr)を実行できる必要があります。
    • Apacheを実行できる必要があります
    • PHPを実行できる必要があります
    • Gdを実行できる必要があります(そのため、CPUに依存します)。
    • 信頼性が高く高速なextremelyである必要があります。
  2. データベースサーバー

    • MySQLを実行できる必要があります
    • できるはずです...まあ、何もしないでください:P。
    • 信頼性が高く高速なextremelyである必要があります。
  3. ストレージサーバー

    • 何らかの種類のファイル転送デーモン(FTP、CouchDBなど)を実行できる必要があります。
    • 他に何もできないはずです。
    • 信頼性が高く高速なextremelyである必要があります。

技術的には、すべての静的データを2つの異なるサーバー/サービスに転送することにより、アプリケーションサーバーは完全にWebページに集中できます。

私の質問:

  • どのサービスをお勧めしますか?
  • 自分のサーバーを使用するのか、一部のクラウドストレージ/クラウドコンピューティングサービス(Amazon S3、CloudFilesなど)を使用するのは、より安く、より速く、より信頼性の高いものですか?
  • 帯域幅の乱用(法案が極端に高くなる原因となるdos-attackなど)を防ぐにはどうすればよいですか?
  • 「CDNを含む」と「CDNを除く」の違いは何ですか? CloudFilesで価格は変わらないと思われますか?
  • 配信ネットワークを有効にする場合、「CDNを含む」+「CDNを除く」を支払う必要がありますか?または、「CDNを含む」だけを支払う必要がありますか?
  • 独自のネームサーバーも使用する必要がありますか、またはドメインホストのネームサーバーを使用できますか?ネームサーバーの最小ソフトウェア仕様は何ですか。自分でソフトウェアを作成できますか?誰もが優れたプロトコル記述を持っていますか?

私の質問にお答えいただければ幸いです。

回答

  • 独自のネームサーバーソフトウェアを書くべきではありません。代わりに、バインドのようなものを使用する必要があります。 (http://osspro.com/2010/05/04/linux-create-your-own-domain-name-server-dns/)。
1
Tim van Elsloo

始めるためのいくつかの答え:

「クラウド」の使用は、現時点で役立つというより誇大広告です。 1日数回のフルバックアップを備えた安定した稼働中の基本サーバーを用意し、必要に応じてピーク時に複数のクラウドコンピューターで拡張できるようにソフトウェアを構成する必要があります。クラウドコンピューターはそれほど高速ではなく、トラフィックが非常に高くなり始めます。価格が信頼できないと言えます。

仮想化は通常、開発にのみ適しています。システム/ディスクの速度は可変であるため、本番用ではありません。

管理された専用サーバーを入手して、他の誰かがシステムがダウンしていることに気付き、ハードウェアを修正します。ブートファイルが所定の場所にあり、システムがブート時にそれ自体を復元することを確認してください。

速いのはアプリケーションに依存します。データベースが重い場合は、xeonプロセッサを使用してください。ディスクが重い場合は、raid-5またはraid-10システムやSSDに移動してください。

6か月までの古い場所も含めて、外部の場所で毎日バックアップを取得してください。

CDNは、静的データを配布するコンピューターのCoralまたはその他のキャッシュネットワークの使用が適切です。あなたのサイトが一杯になって稼働しているときにこれを心配してください。

独自のネームサーバーをキャッシュネームサーバーとして使用して、操作を高速化できます。独自のネームサーバーで独自のドメインをホストするポイントは、他の場所で非常に安価に、または無料で入手できるので、私はそうは思いません。

ところで、データを別のftpサーバーのweb/dbserverに保持しないと、Webサーバーでftpデーモンを実行するよりもサイトの速度が低下する可能性があります。

お役に立てれば。

記述した要件から、 Rackspace Cloud をご覧ください。多くのクラウドサーバー(VPS)環境では、マシンをスケールアップする(RAM、CPUなどを増やす)場合、新しいサーバーをプロビジョニングしてから古いサーバーから新しいサーバーに移行する必要があります。 Rackspaceは、新しいサーバーをプロビジョニングして移行することなく、必要に応じてリソースを増やすオプションを提供します。

インフラストラクチャを構成するためのオプションが多数あります。 Cloud Filesはファイルストレージ機能を提供し、CDN(サービスの一部として含まれる)でグローバルに配布されるという追加の利点があります。アプリケーション、データベース、およびファイル層の間のトラフィックは、帯域幅料金にカウントされません。

Cloud Load Balancerのオプションが利用可能になったことで、スケールアップ(各サーバーを大きくする)に加えて、スケールアウト(特定の層にサーバーを追加)することもできます。サーバー管理の側面を処理したくない場合は、管理されたプライベートクラウドを使用できます。

記録のために、私はRackspaceとは一切関係ありませんが、過去に彼らのサービスを使用しました。パフォーマンスは非常に良好です。

結局のところ、選択するソリューションは、最終的に、特定のプロバイダーの要件、予算、および快適性レベルに依存します。それは、Rackspace、Amazon、または他のほぼすべてのプロバイダーです。

0
Rob