AWS にクライアント サーバーがあり、そのマシンと私の EC2 インスタンス間のレイテンシを削減したいと考えています。1 つのアベイラビリティ ゾーンで同じサーバーを 2 つレンタルし、クライアントの API にリクエストを送信し始めました。これらのサーバーのレイテンシが異なることが判明しました。95 パーセンタイルは約 5 ミリ秒 (平均レイテンシの約 30%) 異なっていました。私の目標はレイテンシを削減することです。
もっと多くのサーバーをレンタルして、これらの実験を繰り返すこともできると思いますが、それは私の調査の次のステップになります。私にとっての最初のステップは、同じゾーン内のサーバー間で API 応答のレイテンシに大きな差がある理由と、それを説明するのに役立つメトリックを理解することです。
レイテンシを減らす 2 番目の方法は、EC2 の代わりにベアメタル サーバーをレンタルすることですが、これは高すぎるようです。また、このサーバーをレンタルすると、クライアント サーバーから離れた場所に配置されるため、さらに状況が悪化するのではないかと心配しています。
それで、教えてください:
- レイテンシーを減らす方法についてアドバイスはありますか?
- 同じ AWS ゾーン内でクライアントに最も近いサーバーをレンタルするにはどうすればよいですか?
答え1
同じ AZ で起動する場合でも、EC2 インスタンスは異なるデータセンターにある可能性があります。試行錯誤してそれらをまとめるのは運任せになります。
「配置グループ」をご覧ください。配置グループは、複数の EC2 インスタンスを起動して同じデータセンターで起動し、インスタンス間のレイテンシを削減するために使用されます。
配置グループに属していない既存の EC2 インスタンスがある場合、それを配置グループに追加することはできないと思います。
答え2
まず、インスタンスが同じ物理 AZ にあることを確認します。これは必ずしも同じ建物にあるとは限りません。リソース アクセス マネージャー (RAM) には、論理 AZ ID と物理 AZ ID のマッピングがあります。これはアカウント間でランダム化されます。つまり、自分のアカウントの AZ-A が別のアカウントの AZ-C である可能性があります。これは、ほとんどの人がほとんどのリソースを AZ-A に配置するため、バランスが取れているためです。
それ以上に、クライアントマシンへのレイテンシが低いインスタンスを取得するには、試行錯誤する以外にできることはあまりないと思います。配置グループ上記の機能は単一のアカウント内でのみ使用できるため、超低レイテンシ (5 ミリ秒は悪くない) が必要な場合は、同じアカウントを使用する必要があるかもしれません。