1

現在、ユーザーが写真をアップロードできる Web サイトの Web サーバーとして AWS マイクロ インスタンスを使用しています。2 つの質問:

1) 私の CloudWatch メトリクスを見ると、最近 CPU スパイクに気付きました。ウェブサイトは現時点ではほとんどトラフィックを受信して​​いませんが、これらのスパイクの間はまったく使用できなくなります。これらのスパイクは数時間続く可能性があり、サーバーをリセットしてもスパイクは解消されません。

2) 一見関係のないことですが、Twitter に自分の Web サイトのリンクを投稿すると、サーバーがクラッシュします (つまり、データベース接続の確立中にエラーが発生します)。Apache と MySQL を再起動すると、Web サイトは通常の機能に戻ります。

私の唯一の推測では、この問題は何らかの形でマイクロ インスタンスの欠陥の結果であるということです。残念ながら、スモール インスタンスにアップグレードしたとき、マイクロ インスタンスは 2 つの EC2 コンピューティング ユニットを持つことができるため、サイトは実際には遅くなりました。

助言がありますか?

4

3 に答える 3

2

AWS の無料利用枠 (マイクロ インスタンス) にとどまりたい場合は、EC2 インスタンスからできるだけ離れて負荷をオフにする必要があります。

Web サーバーを経由するのではなく、画像を S3 に直接アップロードすることをお勧めします (ここで例を参照してください: http://aws.amazon.com/articles/1434 )。

S3 は、脆弱な Web サーバーの代わりに、ほとんどの Web ページ (画像、js、css...) を提供するためにも使用できます。これらのファイルを S3 のオリジンとしてAmazon CloudFront (CDN) ディストリビューションに追加して、アプリケーションのパフォーマンスを向上させることもできます。

作業の負荷を軽減するのに役立つもう 1 つのサービスは、SQS (Simple Queue Service) です。ユーザーからのオンライン リクエストを処理する代わりに、一部のリクエスト (アップロード完了など) をメッセージとして SQS に送信し、リーダーにこれらのメッセージを独自のペースで処理させることができます。これは、複数のユーザーが同時にサービスを操作することによる一時的な負荷を処理するのに適した方法です。

もう 1 つのサービスは DynamoDB (マネージド NoSQL DB サービス) です。現在の MySQL データとクエリのほとんどを dynamoDB に配置できます。Amazon DynamoDB には無料利用枠もあります。

上記の組み合わせにより、成長する成功に合わせてサービスをスケーリングする必要があるまで、残りのいくつかの動的ページをマイクロインスタンスで処理できます。

于 2013-03-30T15:33:15.153 に答える
0

待って…ごめんなさい。マイクロ インスタンスでApacheMySQL サーバーの両方を実行していると言いましたか?

まず第一に、それは決して良い考えではありません。次に、文書化されているように、マイクロは I/O が低く、2 つの ECU にしかバーストできません。

リソースに制約のあるマイクロ インスタンスを引き続き使用する場合は、(a) MySQL を別の場所に置き、(b) 実行に必要なリソースがはるかに少ないため、Apache の代わりに Nginx などを使用する必要があります。それ以外の場合は、サイズを大きくすることを真剣に検討する必要があります。

于 2013-03-30T05:48:51.893 に答える
-1

私は同じ問題を抱えていました.私が理解している限り、問題は、事前定義された使用量に達するとAWSが遅くなるということです. これは、小さなバーストを許容することを意味しますが、その後は恐ろしく遅くなります。

ログインして何かを実行することで、それをテストできます。CPU を数秒間使用すると、ボックス全体が非常に遅くなります。その後、何もせずに「通常」に戻るまで待つ必要があります。

これが、AWS ではなく VPS を選んだ主な理由です。

于 2013-03-30T00:02:32.757 に答える