- 締切済み
レンタルサーバー1契約で、1WEBサイト?
1つのレンタルサーバー契約で、複数のホームページを運営するのは、可能だと思います。 しかし2016年今流行りのNode.jsによるシングルコアのシングルスレッド + イベント駆動による、1万同時アクセス可能なWEBサイトを、 このWEBサイトを仮想3コアで契約したレンタルサーバーで、3つ同時に運営する事は、あり得ないでしょうか? 商売として成り立つWEBサイトで、同時アクセスに耐えられても、システムメモリーが足りなくなることが、やはりあり得るとすると、 やはり、Node.jsのWEBサイトだとしても、 1つのレンタルサーバーで、1つのWEBサイトが一般的でしょうか? あまりコストパフォーマンスが良く無い様ですが、コア数、システムメモリーを指定するクラウドで契約するのもが一般的なのでしょうか?
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- h271015
- ベストアンサー率71% (62/87)
t_ohta様と同じような意見です。 > と言う事は、PC一台でシングルコアでシングルスレッド+イベント駆動で、一台のPCで、一万同時アクセス/一秒が、可能なようですね。 その記事に記載されている数値だけ見れば理論的にはそうなるかも知れませんが、node.jsであればどんなアプリケーションでも誰もが必ずそのよう速度をだせる、というような単純なものではないと思います。 Node.jsの得意な部分、不得意な部分を考慮してどのように処理を行わせるか、アプリケーションの設計とコードの内容が重要です。
- t_ohta
- ベストアンサー率38% (5238/13705)
> と言う事は、PC一台でシングルコアでシングルスレッド+イベント駆動で、一台のPCで、一万同時アクセス/一秒が、可能なようですね。 参考にされた記事で紹介されているようなシステムなら可能でしょうね。 REST APIで処理が単純化しやすい場合や、DBの待ちが多いとか、データ処理自体はバッチ処理にしてAPIはデータの送受信に徹する場合は、イベント駆動で同時実効性を高めてサーバリソースを効率よく使用すればかなりのアクセス数を捌けます。 Nodeを使ったサービスも作ってますが、設計の善し悪しやプログラムの善し悪しがパフォーマンスに直結します。 API自体は軽快に動けるのでアプリサーバ自体は非常に処理能力が高いですが、DBなどがボトルネックになって応答時間が遅いシステムになってしまう場合もあります。
お礼
t_ohtaさんへ >DBなどがボトルネックになって応答時間が遅いシステムになってしまう場合もあります。 2016年だと、少し流行してしまった。MongoDBを使わず、様々なベンチマーク上の結果が良好な成績のApache Cassandra(アパッチ・カサンドラ)を使うのが、速度とセキュリティ設計がまともなので正解な様です。 ありがとう御座いました。
- h271015
- ベストアンサー率71% (62/87)
ご参考までですが・・・ > このWEBサイトを仮想3コアで契約したレンタルサーバーで、3つ同時に運営する事は、あり得ないでしょうか? そのレンタルサーバのスペックと、あとはアプリケーションのつくり次第になるといってしまえばそれまでですが、もし3つ分のサイトのデータベースを動かしたり、画像やJavascriptの処理もそのサーバで実行しようとするとかなり厳しそう、という感覚はあります。 (どのようなサイトか分からないので的外れなことを言っていたらすみません。) > 1つのレンタルサーバーで、1つのWEBサイトが一般的でしょうか? > あまりコストパフォーマンスが良く無い様ですが、コア数、システムメモリーを指定するクラウドで契約するのもが一般的なのでしょうか? それなりの規模なら1つのWebサイトに複数のWebAPサーバ+DBサーバなど、役割を分けたサーバを稼動させるのが一般的と思います。 まだサービスを立ち上げたばかりで利用者も少ない、というような場合であればとりあえずはそのレンタルサーバでやってみる、というのでもまずは何とかなるかも知れません。 そのサイトが成長してくると必要なものを必要なときに利用できるクラウドサービスを利用するのが後々柔軟に対応できて良いとは思います。
補足
以下は、後から、ある程度解って来た内容です。 http://itpro.nikkeibp.co.jp/article/COLUMN/20120725/411427/?rt=nocnt 同時に数十万クライアントがアクセスし、しかもリアルタイムに処理できるシステムを構築するには、高性能サーバーが数多く必要になる。これが今までの常識だった。これを根底から覆すソフトウエアが「Node.js」だ。従来型のWebアプリケーションサーバーと異なるアーキテクチャーを採用しており、既存のサーバーに取って代わる可能性を秘めている。 約20万クライアントが同時にアクセスするという。 実はこのシステムを支えているのは、わずか20台のPCサーバーだ。単純計算で、1台当たり1万クライアントからのアクセスを同時に処理していることになる。 だそうです。 と言う事は、PC一台でシングルコアでシングルスレッド+イベント駆動で、一台のPCで、一万同時アクセス/一秒が、可能なようですね。 ■それでも、DBサーバーは別に分けたほうが良いかなとは、思います。
- t_ohta
- ベストアンサー率38% (5238/13705)
「1万同時アクセス」というのは、1万人が同時(同じ瞬間)にアクセスしている状況と言う事ですか? それだと、そもそも1台のサーバで捌ききれる同時アクセス数では無いので、複数のサーバに負荷分散させる必要があるでしょう。 まずは負荷試験をして秒間で何リクエスト処理できるかを計り、1回のページ表示に必要なリクエスト数と同時アクセス数を掛けた値から、必要なサーバ台数を割り出しましょう。 処理内容によってはCPUを増やそうがメモリを増量しようが処理できるリクエスト数が増えない事は多々ありますので、まずはプログラムの処理能力を把握する事が大事です。 経験則から言えば、お客さんに1万同時アクセスのサービスを作りたいと言われたら、サーバは数十台(多分100に近い台数)必要と言うでしょうね。 「1万同時アクセス」というのが1日の延べ人数なのであれば、まぁ1台でなんとか成るかなと言う印象ですね。 それが3つ立つとしてもギリギリ間に合いそうかな。(ピーク時間帯は重そうだけど) ただ、商売として運営するサイトなら耐障害性を考えて2台以上で冗長化するのが常識です。 1台だけでサイトを運営するのは、一時的に止まっても困らない内容のモノ(会社案内とか)の時だけですね。
お礼
ご丁寧な対応ありがとう御座いました。 その後も、膨大なNET上のIT系のブログを読んでおりまして、 今は、Node.JSよりもGo言語の方が処理スピードも早く、消費メモリーも少ないと言うベンチマークのブログ記事をいくつか読んでおり参考になると考えております。 皆様の情報が役に立ちます。今後の参考にさせて頂きます。ありがとう御座いました。
補足
以下は、後から、ある程度解って来た内容です。 http://itpro.nikkeibp.co.jp/article/COLUMN/20120725/411427/?rt=nocnt 同時に数十万クライアントがアクセスし、しかもリアルタイムに処理できるシステムを構築するには、高性能サーバーが数多く必要になる。これが今までの常識だった。これを根底から覆すソフトウエアが「Node.js」だ。従来型のWebアプリケーションサーバーと異なるアーキテクチャーを採用しており、既存のサーバーに取って代わる可能性を秘めている。 約20万クライアントが同時にアクセスするという。 実はこのシステムを支えているのは、わずか20台のPCサーバーだ。単純計算で、1台当たり1万クライアントからのアクセスを同時に処理していることになる。 だそうです。 と言う事は、PC一台でシングルコアでシングルスレッド+イベント駆動で、一台のPCで、一万同時アクセス/一秒が、可能なようですね。
お礼
ご丁寧な対応ありがとう御座いました。 その後も、膨大なNET上のIT系のブログを読んでおりまして、 今は、Node.JSよりもGo言語の方が処理スピードも早く、消費メモリーも少ないと言うベンチマークのブログ記事をいくつか読んでおり参考になると考えております。 皆様の情報が役に立ちます。今後の参考にさせて頂きます。ありがとう御座いました。