2013-10-08 4 views
5

私はこのようなものの経験はほとんどありませんのでご注意ください。EC2とRDSのインスタンス間、特にMagentoのAmazon Web Servicesにおけるネットワーク遅延の影響はどれほど重要ですか?

私はElastic BeanstalkでマルチサーバーMagentoサイトをセットアップしようとしていました.RDSをデータベースとして使用し、EC2を管理サーバーとフロントエンドサーバーに使いました。私はtools.pingdom.com上のいくつかの異なる設定のスピードをテストしていました。これは、どれくらい時間がかかっているかの大まかな尺度であると主張して、「待機」(DNS、接続、送信、待ち、受信) MagentoはページのHTMLを生成します。どのように設定が異なるかに困惑しました。同様のサーバーインスタンスを使用してほぼ同じページを作成するために待機時間が大幅に変わる可能性があります。私は980msと1.8sの間の値を得ていました。

私はパターンに気付き始めたと思った。 EC2がRDSインスタンスと同じアベイラビリティゾーンにあった設定は、より速く、一貫して高速になるように見えました。そこで、EC2がデータベースと同じゾーンに入るように、弾力のある豆の枝の構成を変更しました。私の非科学的発見は、この変更後も一貫して約1秒の待機時間を得ることができたということでした。スピードのかなりの違いは、アプリケーションサーバーとデータベースの間のネットワークレイテンシによるものです。

私の質問には3つの部分があります。まず、同じゾーンにインスタンスを置くことで期待されることはありますか、あまりにも多くのテスト結果を読んでいますか?第二に、これはスピードの重要な現実の違いですか?それは私のように思えるし、NFSのようなものを使ってメディアフォルダを共有するだけで悪化するようだ。第三に、異なるゾーンでアプリケーションサーバーを立ち上げることができるという利点はありますか?待機時間の増加に見合った利点はありますか?

また、私が何か間違っていると言えば、私に教えてください。

答えて

5

ゾーン間のレイテンシは、ミリ秒の範囲で指定してください。これはいくつかのシナリオでは問題になることがありますが、ほとんどの場合、キャッシュを有効に活用することでこれを補うことができます。

複数のゾーンを使用する主な利点は、アベイラビリティです。システムは、各ゾーン間の共有がほとんどないように設計されています。あるゾーンで障害が発生すると、他のゾーンにカスケードする必要はありません。

これは主に機能しますが、その分離の限界を示したケース(特にEBSボリュームの場合)があります。

+2

クール。同じゾーンと異なるゾーンでEC2インスタンスの間でpingを試みました。 us-east-1dの両方のec2の間で、私は約0.5msになります。 us-east-1dと1cの間で、私は約2ミリ秒を得ています。 これは私にとってはほんのわずかな違いのようですが、あなたの意見では、テストサイトで見ている200ms-800msの違いに1.5msの違いが(十分なデータベースクエリで)加算されますか?それはどういう仕組みですか? –

+2

pingはレイテンシを検出するのには適していますが、ネットワーク接続をどのように使用するかによってクリティカルなレイテンシは決まります。コード内で順番に実行される短い「クイック」SQLリクエストをたくさん送信し、待ち時間は本当に悪いです。大量ではあるが少ないリクエストにSQLリクエストを編成し、コード内でこれらのリクエストを並行して実行することができれば、レイテンシの影響はずっと少なくなります。 –