
私は、EC2 上の LAMP スタックとして 3 台のサーバー (Web ノード用に 2 台、MySQL 用に 1 台) の負荷分散クラスターを設定するために必要なすべての情報を集めようとしています。これは、アプリケーションのパフォーマンス テストを実行するためだけのもので、かかる時間を見積もるために適切な情報を収集する必要があります。次の点について、どなたか空白を埋めていただけないでしょうか。
コンピューティング ユニットとは正確には何ですか? RightScale の AWS CentOS のミラー インスタンスが 3 つ必要になる予定です。2 つは Web ノード、1 つはデータベース用です。この場合、小さなインスタンスが 3 つ必要になりますか?
Web サーバーとして Apache を使用している場合、Amazon の EC2 で負荷分散を行うには mod_proxy が最適ですか? Amazon には、Amazon CloudWatch と連携してメトリックを提供するように構成できるロード バランサーがあるようです。この方法の方が良いでしょうか?
アプリケーションキャッシュには memcache を使いたいのですが、Amazon の EC2 では問題がありますか? Siege (http://www.joedog.org/index/siege-faq) を使用してストレス テストを実行できます。Amazon はすでにストレス テストを実行するためのツールを提供していますか、それともこれが適切なツールでしょうか?
私のようにこのサービスの使用経験がない人にとって、両方の Web ノードにアプリケーションをインストールする以外に、どのくらいの時間がかかるのでしょうか。私は主にサーバー インスタンスへのアプリケーションのデプロイに精通しており、サーバー構成とパフォーマンス チューニングの経験もありますが、職業はプログラマーです。セットアップに 30 時間、テストにおそらくさらに 15 ~ 20 時間かかると思います。これは大体の範囲でしょうか。
答え1
前述のように、コンピューティング ユニットは、おおよそ古い 1.0~1.2 GHz のサーバー クラス プロセッサであり、Amazon の Elastic Load Balancing を検討する必要があります。
単純な負荷分散 LAMP スタックの場合は、小さなインスタンス タイプから始めて、テストとベンチマークに基づいて徐々に規模を拡大していく必要があります。
memcached は EC2 上で正常に動作しますが、EC2 の不安定な性質 (インスタンスが警告なしにダウンすることがある) を考慮する必要があります。
構成管理なしでゼロから始めると (何も言及されていないので、何もないと仮定しますが、私は Chef が好きです)、おそらく約 2 週間かかります。EC2 は扱いが難しい場合があるので、常に多めに見積もってください。
また、インスタンスをプログラムで制御できるように、EC2 API ツール (お気に入りのプログラミング言語用のライブラリを使用するとさらに良い) を使用することをお勧めします。
答え2
答え3
マシンを短期間だけ実行する予定であれば、多くのことを簡素化して、Amazon の Elastic Block Store の使用を避けることができます。これは、シャットダウンまたはクラッシュ時にファイルが保持されないことを意味します。インスタンスをシャットダウンしない場合、インスタンスがクラッシュしたり、データが失われたりする可能性は低くなります。本番環境ではこれを行いたくないでしょうが、テストでは問題ないはずです。
ロードバランサーには、Amazonの弾性負荷分散実稼働環境でハードウェア ロード バランサーを実行する予定の場合は、Amazon のものを使用してください。実稼働環境でソフトウェア ロード バランサーを使用する予定の場合は、EC2 でも同じものを使用してください。
テストでは、低レベルのHTTPテストを次のように行うのが好きです。httperfアプリケーション レベルのテストには、JMeter を使用するのが好きです。ただし、通常は逆の方法でテストを行っています。EC2 で JMeter を実行し、そのテストを EC2 以外のデータ センターで実行します。このようにして、完全なエンドツーエンドのテストを実行しています。ただし、テストを実行しているのは、モックの本番環境設定を実行するための追加のハードウェアがローカルにないからだと思います。