って、ググっても意外にまとまった数値が出てない。
EC2からRDSへのレイテンシを知りたい。アベイラビリティゾーンを跨いだときと、AWSアカウントを跨いだとき、その組み合わせで、レイテンシがどのように変化するか知りたい。
手法
RDSはICMPを閉じているので、pingコマンドでは計測できません。
pingっぽく計測できいる npingコマンド を利用しました。EC2はAmazon Linux、nmapパッケージに含まれています。
$ sudo yum install nmap
このように実行すると、pingっぽく通信状況と、最後にサマリーが出てきます。
$ sudo nping -c 100 rds-sample.xxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com -p3306 --tcp
実験結果
EC2インスタンスから、4つのRDSに、npingでTCP3306で100回通信。レイテンシの最頻値をフキダシに記載しました。npingはmax/min/avgは出してくれますが、max/minのアホみたいな数値に引っ張られるので、google spreadsheetでペタペタゴニョゴニョして最頻値を計算しています。
おなじアベイラビリティゾーンなら 0.5ms。AWSアカウントを跨いでも変わらず。
異なるアベイラビリティゾーンなら 2.6ms。AWSアカウントを跨いでも変わらず。
上の枠のAWSアカウントは、EC2 Classicネットワークで、EC2とRDSを設置しています。年代物ですね。EC2はm3.xlarge、RDSはdb.m3.medium。
下の枠のAWSアカウントは、VPCで、RDSを設置しています。比較的最近つくったAWSアカウントです。RDSはt2.small。パブリックアクセスをONにして、セキュリティグループで実験用EC2インスタンスからの接続を許可しています。
注記
書いたとおりの条件のもとで、このようなレイテンシに関する数値が得られました。細部の条件や構成が異なれば当然異なる数値が得られるでしょうから、これを鵜呑みにして「違うじゃねえかー」って電凸とかすんなし。