2012-03-06 8 views
1

背景:最適アマゾンEC2のApacheのhttpdを介して静的コンテンツ配信用サーバインスタンスサイズ/タイプ

は、Apacheを介して高可用性静的なWebコンテンツを配信するためのインフラストラクチャを構築します。トラフィックは間違いなく散発的ですが、必要に応じてスパイクが高くなる可能性があります。

amazonクラウドフロントですべてのmedia/js/cssをホストし、Amazon EC2インスタンス上ですべてのhtmlをApache経由で配信する予定です。私は、サブドメインのエイリアシングが必要なので、このコンテンツを配信するためにApacheを使用しています。これは簡単な解決策のようです。そうでなければ、クラウドフロントを使ってエンチラダ全体を配信しました。インスタンスには何も実行されません(動的ではありません)。 EC2インスタンスは、AmazonのElastic Load BalancerとAuto Scaledを使用してロードバランスされ、必要に応じて新しいインスタンスを作成します。

質問:

どのインスタンスタイプ/サイズが私に私のドルのインスタンスリソースの最適な利用を与える過ごしましたか?もう少し一般的で関連する質問は、Apache Webサーバーのどの部分が最初に最大になり、どのメトリクスが新しいインスタンスを追加するための最良の指標かということです。

答えて

0

phpや.netなどのプログラミング言語を使用していない場合は、.htmlファイルをS3に残してそこからウェブサイト全体をホストすることもできます。 S3にはバケットをウェブサイトにするオプションがあります。 S3を使用することができない場合は情報

余分な追加されました


その後、私はあなたの通常の負荷のために可能な最小のサーバを使用することをお勧めします。たとえば、通常の負荷が100要求/秒で、負荷を処理するためにm1.smallインスタンスが必要な場合は、そのインスタンスを使用します。 c1.mediumが必要な場合は、インスタンスサイズとして使用します。

サーバーの負荷が大きい場合は、ロードバランサと自動スケーリングを使用することをお勧めします。これにより、必要な負荷を処理するためにn * <server size>のサーバーを実行することができます。トラフィックが急増すると、負荷分散装置からサーバーが自動的に削除されます。アイデアはあなたが必要とするものに対してのみ請求されるということです。負荷がピーク時に2時間必要なだけなので、c1.xlargeを実行しないでください。

自動スケーリングは、広告のためにトラフィックが急増していることがわかっている場合や、CPU使用率、ネットワーク利用率などの指標に基づいている場合は、スケジュールに基づいて自動的にトリガーされます。

+0

bwightに感謝しますが、上記のように、私はapache経由でいくつかのサブドメインエイリアシングマジックを必要とします。これはオプションではありません。 – ezwrighter

+0

S3を使用することができない場合、いくつかの情報を含めるように答えを更新しました。それはあなたのためではありませんが表示されます。私はあなたの投稿のその部分を残念に思った。 – bwight

+0

問題はありませんが、私はこの提案を感謝します。しかし、スケーリングよりも最適化を目指していました。私は自動スケーリングとロードバランシングが私のX因子に基づいてすべてを上回ることを理解していますが、誰かがそのインスタンスの最大トラフィックレベルで最適な利用率を得るという質問に答えることを望んでいました。 I.小規模なインスタンスでは1秒あたり100リクエスト、中程度の高CPUインスタンスでは1000 RPSをサーバできます.... 2倍の価格で10倍の歩留まり。誰もがApacheや小さな静的コンテンツ配信でこれらのインスタンスタイプをベンチマークしましたか? – ezwrighter

0

サイトをAWSに移動したばかりなので、少し異なる方向性を指摘したいと思います。静的ファイルを提供したいですか? CloudFrontはあなたにそれをさせてください。 CloudFrontの価格は実質的にEC2からの転送と同じですが、グローバルCDNで34のエッジサーバーの位置を取得し、サーバーではすべてのリクエストを処理する必要はありません。

DNSでの適切なCNAMEマッピングを使用すると、CloudFrontで必要な任意のS3バケット/フォルダにさまざまなサブドメインをポイントできるようになります。今すぐCloudFront/S3としてあなたが必要とする規模の大きなものを心配する必要はありません。 :)

P.S.CloudFrontはまた、キャッシュして、APIリクエストやキャッシュ可能なページを提供することもできます。

+0

私は、ユーザー作成に基づいて動的サブドメインを実行しており、その場で数千のサブドメインを作成するための直接的な解決策はありません。 – ezwrighter

+0

@ezwrighter原則として、AWSのすべてをAPI呼び出しで行うことができますので、大量に好きなものをバッチアップすることができます。したがって、サブドメイン/ S3バケットをCFに簡単に追加することができます。ただし、レジストラを使用してサブドメインを自動化する必要があります。 Route53は、あなたのDNSにそれらを使うならば、API経由でこれを簡単に行うことができます。 –

+0

私は自分のDNSにこれらを使用していません。過去のCloudFrontのキャッシュは、扱いにくかったです。ユーザーが自分のサイトに変更を加えたい場合、古い情報を強制的に古いものにして新しいものを表示することはできません。たぶんキャッシングの問題が解決した場合は、私は一見をする必要があります。フィードバックを感謝します。 – ezwrighter

関連する問題