グループの渡辺(@takanabe)です。インフラの開発や運用をしています。今後もその数を増やしていく予定です。世界中で使われるサービスのインフラを開発していく上で、乗り越える必要がある課題は沢山ありますが、その中でも、ユーザが利用するクライアントとクックパッドのインフラをむすぶネットワークのレイテンシは特に大きい課題です。本稿ではなぜグローバルに利用されるサービスにおいて、ネットワークレイテンシが問題になるのか、また、クックパッドではネットワークレイテンシをどう計測し改善しようとしているかについて解説します。ネットワークレイテンシとアプリケーションの処理時間の合計です。アプリケーションの処理時間短縮もサービスのレスポンスタイム改善には有用ですが、グローバルに展開されたサービスにおいてはネットワークレイテンシも大きなオーバーヘッドになりえます。この両方を改善していくことがユーザ体験向上のために重要です。本稿ではネットワークレイテンシについてご紹介します。意味することが多いです。米国東部リージョンに集約されているため、サービスの通信は基本的にはユーザの居住地と米国との間を往復することになります。サーバが米国東部リージョンに集約されていることで、米国や米国近辺に住んでいるユーザはレイテンシが小さくなります。一方で、アジアや中東など地理的に遠い国に住むユーザにとってはレイテンシを悪化させる要因の一つとなっています。現実には、サーバまでのネットワークの経路は一直線ではありません。もの速度が出ることはないためレイテンシはさらに大きくなります。レイテンシの差がユーザが快適にサービスを使えるかに大きな影響を与えます。利用して暗号化された安全な通信をユーザに提供しています。往復の通信が必要です。倍の時間がかかります。msの時間がかかることになります。msの時間がかかることになります。レスポンスタイムには3つの境界値が存在すると言われています。以内のレスポンスでも遅延を感じるとされています。差はユーザの体験を悪化させる要因に成り得るのです。ドメインを共有しています。日本のサービスのものかを判定してルーティングをしています。ベースでユーザーからレイテンシの低いリージョンへ最初にリクエストを送信させるようにしています。これにより、ユーザーから近いリージョンのロードバランサにアクセスできるというメリットがあります。以上のようにレイテンシを増加させる要因はサーバと利用するユーザの所在や使っている技術により異なります。クックパッドの場合サービス利用者が多いインドネシアなどではこのレイテンシの問題は顕著に現れてきています。レイテンシの計測方法レイテンシを改善するにはレイテンシがどのような要素から成っており、何をした時にどのくらい改善されたのか、あるいは悪化したのかを定量的に評価しなければなりません。これを実現するにはレイテンシやレスポンスタイムなどのメトリクスを計測し続ける必要があります。専用の監視サーバからリクエストを送出して計測します。ユーザのクライアント上で実際にかかった時間そのものを収集します。この2つの方法はどちらが良いと言うわけではなく、集計の粒度も計測する対象も異なるため組み合わせて使うものです。導入することにしました。シンプルである点で条件を満たしており、加えて監視サーバのノード数とロケーションの数が他社のものより多いためです*3。サービスの世界展開を目指しているクックパッドにとってこれは重要な機能のひとつです。計測対象のエンドポイント、監視サーバ群、監視の頻度など監視に関する条件を定義するテストを作る必要があります。いうテストを用意しました。アクセスした際のレスポンスタイム(ms)を確認できます。27日の3日間を対象に横軸を日時、縦軸をレスポンスタイムにして描画するとこのようなグラフが得られます。ご覧の通りテストで選択した監視サーバの国別のレスポンスタイムを俯瞰することができています。これをみるとインドネシア、アルゼンチン、エジプトなどの国のレスポンスタイムが相対的に悪いですね。