プロジェクトの現在のアーキテクチャは次のとおりです。2つのAmazonインスタンスがあります。どちらにもUbuntu10.10がインストールされています。
インスタンス1:(m1.large)- このインスタンスには、Php、Apache、およびMySqlがインストールされています。メインのウェブサイト+API(Phpで開発)+データベース(MySql)が含まれています
インスタンス2:(t1.micro)- このインスタンスには、Php、Apache、およびMySqlがインストールされています。Javascriptが含まれています。
クライアントとサーバーの相互作用:クライアント側には、インスタンス2 のJSファイルをクライアントにロードするJSコードのブロックがあります。このJSファイルはリクエストを作成し、インスタンス1のAPIに送信します。インスタンス1のAPIは応答を生成し、それをクライアントに送信します。
インスタンス1には、毎週日曜日に約5〜6時間実行されるcronプロセスがあります。
インスタンス1の最大CPU使用率は約80%であり、cronが実行するように設定されている日曜日には95%を超えます。メインインスタンスでの1日あたりの平均リクエスト数は約225kです。
**There is no issue on instance 2 of CPU utilization.Size of database is 7.5 GB**
新しいアーキテクチャの必要性: ご覧のとおり、現在のアーキテクチャではCPU使用率が高くなっています。より多くのリクエストを処理したい場合、このアーキテクチャは効率的ではありません。クライアントの数が増えるにつれて、サーバー上のリクエストの数とデータベースのサイズも増えます。
新しい建築デザインを提案してもらえますか?また、データベースをMySqlからMongoDBに変更することも計画しています。また、データベースをインスタンス1から分離します。これは正しい決定ですか?
Memcached、nginxなどの新しいアーキテクチャに実装できる新しいテクノロジーを誰かが提案できますか?
ありがとうございました。