私の現在のシナリオは、Struts 2.0 でビルドされ、tomcat + mysql サーバーで実行されている Java EE アプリケーションを持っているというものです。アプリは現在、2 GB の RAM と 60 GB のディスクを備えた Virtual Private Server でホストされています。ただし、アプリケーションの使用量はピーク時に 10 倍から 20 倍に増加し、Tomcat と MySQL サーバーがクラッシュします。
代替品を探し始めたところ、Amazon の EC2 が最適であることがわかりました。RHEL AMI の無料利用枠のマイクロ インスタンスを正常にセットアップし、マシンに Tomcat + MySQL をインストールしました。また、Amazon Web サイトで EBS、ロード バランサー、Auto Scale、Cloud Watch、および関連するものについて読みました。
これは、AWS を介して達成したい私の主な目的です。
- Amazon に 2 つの EC2 インスタンスをセットアップする (プライマリとセカンダリ)
- セカンダリ インスタンスは 1 日のほとんどの時間、非アクティブになります
- ピーク時には、セカンダリ インスタンスが自動的にウェイクアップする必要があります
- ロード バランサーは、可用性に応じて両方のサーバーへのトラフィックのルーティングを開始します。
- トラフィックが減少した後、セカンダリ サーバーは自動的に非アクティブ化されます。
次のばかげた質問があります:)
両方の EC2 インスタンス間で MySQL データはどのように共有されますか? MySQL を EBS ボリュームにインストールし、このボリュームを両方の EC2 インスタンスに同時にマウントできますか? これで、現在の VPS ではピーク時に多くの接続が発生するという既存の MySQL の問題が解決されますか?
アップロードされたファイルと画像を両方の EC2 インスタンスで共有するにはどうすればよいですか? これらのファイルを外部 EBS ボリューム (Tomcat WebApps ディレクトリの外) に保存する必要がありますか?
完全なプロジェクト フォルダーを外部 EBS ボリュームに保持し、両方の EC2 tomcat インスタンスで仮想マッピングを行うことはできますか? そのメリットとデメリットを教えてください。
また、EC2 での tomcat のクラスタリング、セッション管理、AWS 自動スケーリング、およびロード バランサーに関する優れたチュートリアルも役立ちます。