DynamoDBでHTTPS通信をやめたい

  • このエントリーをはてなブックマークに追加

DynamoDBに限った話ではなく、AWS-SDK全般に言える事なのですが、デフォルトはHTTPS通信を行います。

これはClientConfigurationクラスの設定によるものなのですが、SSL処理はまぁ比較的重いものです。特に高負荷環境においては結構気になるものです。
DynamoDBを例に取ると、AmazonDynamoDBClient.setRegion(日本リージョン)をした時にendpointとしてhttps://dynamodb.ap-northeast-1.amazonaws.comを設定します。この時にClientConfiguration.getProtocol()でHTTPSのスキーマを設定しています。
なので、setRegionする前に、ClientConfiguration.setRegion(Protocol.HTTP)をすればHTTPで通信する事ができます。

これを調べていた過程で気になったのは、EC2インスタンスからアクセスした場合、Internal通信なのかPublic通信なのか。ものによっては(RDSとかは)Internal通信になるとかあるのですがDynamoDBの場合は、Publicアクセスっぽい。Publicインターフェースを持っている/いないに関わらず、DNSはPublicIPを返してきます。

DynamoDBにはVPC Endpointが無いのがなぁ..
https://forums.aws.amazon.com/message.jspa?messageID=701530

(SDKのソースを見てたらS3はHTTPSじゃないとダメだよってassertがあるっぽい)

参考: https://docs.aws.amazon.com/ja_jp/general/latest/gr/rande.html