EC2 でホストされている LAMP ウェブサイトのスケーリング

EC2 でホストされている LAMP ウェブサイトのスケーリング

私はこの分野にまったく不慣れです。最近、EC2 で Web サイトを立ち上げることができました。次のステップとして、Web サイトを拡張する方法を学びたいと思っています。大まかなアイデアはありますが、その方法について専門家からのアドバイスを聞きたいです。

私のウェブサイトは LAMP をベースにしていますが、ユーザーがメッセージを記録したり、再生したりできる Red5 サーバーも備えています。

現在、これは初期スケーリングのためにセットアップする予定のアーキテクチャです。次の目的で 4 つの小さな EC2 インスタンスをデプロイします。

インスタンス1: このインスタンスではMySqlデータベースを実行します

インスタンス2: このインスタンスではred5サーバーを実行します

インスタンス3とインスタンス4これらの2つのインスタンスは、ウェブサイトを展開するために使用され、Apacheが実行されます。内部IPアドレスを使用して、インスタンス1のmysqlサーバーとインスタンス2のred5サーバーと通信します。必要に応じて、同じインスタンスの別のインスタンスを起動します。

EBS - たとえば50GBのEBSを用意し、そこにすべてのMySQLデータを保存します。また、red5はこのEBSを使用してビデオメッセージを保存します。

ロードバランサー - Amazon が提供するロードバランサーを使用して、インスタンス 3 とインスタンス 4 の負荷を分散します。

これが私の考えです。大きく外れている可能性もありますので、ご容赦ください。また、MySql サーバーのスケーリングについては、それがどのように行われるか、また、それが最初に必要かどうかが現時点ではわからないため、考慮していません。

Amazon が自動スケーリングと MySQL スケーリングも提供していることは承知していますが、今はそれについては詳しく説明したくありません。

フィードバックをお待ちしております。ありがとうございます

答え1

このトピックに関する一連の記事があります@http://highscalability.com

AWS を使用したことはありませんが、ラックスペース仮想インスタンスと AppEngine を使用して、データセンターで仮想インスタンスを実行した経験があります。

スケールアップとスケールアウトの方法は、何をしようとしているかによって大きく異なります。アプリによっては I/O を集中的に使用するものもあれば、CPU を集中的に使用するものもあります。ボトルネックとなるのは、インバウンド I/O、処理能力、バックエンド I/O、またはアプリのライフサイクルのどの段階であるかに応じて、これら 3 つの組み合わせである可能性があります。すべてにおいて、若干異なる戦略が必要になります。

AWS のようなものを使用する場合、一般的にスケールアウトしたいので、終わりを念頭に置いて開始し、アプリを疎結合にしておく必要があります。これにより、需要に合わせてスケールする別のインスタンスを起動できます。開始時に、データベース インスタンスをメイン アプリと同じインスタンスに保持しても問題ありませんが、通常、それが最初に独自のサーバーに分離されます。

最初はすべてを 1 つのインスタンスで実行します。その後、トラフィックが増え始め、データベースが CPU を消費していることに気付きます。そこでデータベースを別のインスタンスに移動すると、すべて順調です。トラフィックが増え始めると、フロントエンドがトラフィックに対応できないことに気付きます。そこでさらにインスタンスをいくつか起動し、負荷分散を行い、しばらくは満足して、12 個の Web サーバーにスケールアップします。しかしその後、トラフィックが増え、フロントエンドは対応しますが、今度はデータベース マシンがスラッシングし始めます。そこでデータベースをマスターと 2、3 個のスレーブに複製すると、すべて順調になります。これを繰り返します。

答え2

私は以前、Amazon EC2/EBS などがリリースされた頃にこれに取り組んでおり、大規模なサイトの 1 つを物理ホストからその環境に移行することに成功しました。

私は自分の経験をブログに書いています。 http://linuxadminzone.com/how-to-install-setup-and-config-haproxy-loadbalancer-for-content-switching/他にも投稿はありますが、ここにリンクを貼り付けることはできません。お役に立てれば幸いです。

関連情報