Azure Redis Cacheにredis-cliで接続する (SSLで)


AzureのRedis Cacheは、デフォルトの設定では通信を暗号化するためにSSLアクセスのみ受け付けるようになっています。
redis-ssl

しかしRedisのコマンドラインクライアント「redis-cli」はSSLに対応していないため、そのままではAzureのRedis Cacheにアクセスすることができません。

redis-cliからAzure Redis Cacheに接続するために、Azure Redis Cache側の設定で非SSLでも受け付けるように変更することもできますが、それはイヤですよね。
ですので、SSLに対応していないクライアントにSSLトンネルをくぐらせることのできるstunnelを利用して、Windowsのredis-cliからSSLアクセスでAzure Redis Cacheに接続してみましょう。
※ LinuxやMac OS Xでも、同様の方法で実現可能です。

ここでは、以下から入手したredis-cliコマンドを利用します。
https://github.com/MSOpenTech/redis/releases

  • stunnelをセットアップします。
    1. stunnelのダウンロードページから、Windows用のインストーラー(ex: stunnel-5.17-installer.exe)をダウンロードし、インストールします。
      • インストールのオプションによっては、証明書を作成するプロンプトが表示されるかもしれませんが、今回は適当で大丈夫です。
    2. stunnelの設定をします。
      Windowsのスタートメニューから、「Edit stunnel.conf」を選択し、設定ファイルを開きます。
    3. 設定ファイルの末尾に、以下を追記します。
      [redis-cli]
      client = yes
      accept = 127.0.0.1:6379
      connect = {Azure Redis Cache名}.redis.cache.windows.net:6380
  • stunnelを実行します。
    Windowsのスタートメニューから、「stunnel GUI Start」を選択します。
    stunnelが起動されると、Windowsのタスクバーにアイコン stunnel-icon が表示されます。
    参考) Windows版のstunnelの実行方法は、以下の3種類があります。

    • stunnel GUI (Windowsアプリケーションとして実行)
    • stunnel Terminal (Terminalアプリケーションとして実行)
    • stunnel Service (Windows Serviceとして実行)

ここまでで、準備ができました。それでは、redis-cliコマンドから接続してみましょう。

> redis-cli -h localhost
localhost:6379> auth {Azure Redis Cacheのアクセスキー(プライマリ、セカンダリのどちらでもOK)}
OK

これで、SSLによるアクセスのみ接続を許可するAzure Redis Cacheにredis-cliから接続することができました。

このような形になっています。

stunnel-redis-construction

 

参考)Announcing ASP.NET Session State Provider for Redis Preview Release


タグ: , , ,


コメントをどうぞ