IBM Cloud Docs
外部アプリケーションの接続

外部アプリケーションの接続

アプリケーションとドライバーが、接続ストリングを使用して IBM Cloud® Databases for Redis への接続を行います。 このサービスは、ドライバーおよびアプリケーション専用の接続ストリングを提供します。 接続文字列はデプロイの「概要ページの「エンドポイントパネルに表示され、「Cloud DatabasesCLIプラグイン、 「Cloud DatabasesAPI 取得できる。

接続文字列は、デプロイメントで作成した任意の資格情報で使用できます。 すべての接続およびアプリケーションで管理ユーザーを使用することが可能ですが、使用するアプリケーションに接続するための専用のユーザーを作成する方がよい場合もあります。 詳細は 接続文字列の取得 を参照。

アプリケーション用の接続ストリング

ドライバがデプロイメントに接続するために必要な情報はすべて、Service credentialsページで作成したクレデンシャルのredis」セクションにあります。 参照用に、接続文字列の構成要素を次の表に示します。

redis接続情報
フィールド名 索引 説明
Type 接続のタイプ -Redisの場合は "URI"。
Scheme URIのスキーム。Redisの場合は "rediss"。
Path URIのパス -Redisの場合はデータベース番号。
Authentication Username 接続に使用するユーザー名。
Authentication Password ユーザーのパスワードは'$PASSWORD と表示されます。
Authentication Method 認証が行われる方法。「direct」認証はドライバーによって処理されます。
Hosts 0... ホスト名と接続先ポート。
Composed 0... スキーム、認証、ホスト、パスを組み合わせたURI。
Certificate Name データベース展開用の自己署名証明書の割り当て名。
Certificate Base64 base64 でエンコードされたバージョンの証明書
  • 0... は、1 つの配列にこれらのエントリーが 1 つ以上ある可能性があることを示しています。

接続情報の「composed」フィールド内にある URI 形式の接続ストリングが与えられていれば、Redis ドライバーはほとんどの場合はデプロイメントに接続できます。 例えば、次の例のように、環境変数「REDIS_URL」に接続文字列を設定した場合:

export REDIS_URL=rediss://admin:$PASSWORD@e6b2c3f8-54a6-439e-8d8a-aa6c4a78df49.8f7bfd8f3faa4218aec56e069eb46187.databases.appdomain.cloud:32371/0

そうすると、Node.jsクライアントは、次のような接続ができるようになる。

let connectionString = process.env.REDIS_URL;

if (connectionString === undefined) {  
  console.error("Please set the REDIS_URL environment variable");
  process.exit(1);
}

let client = null;

client = redis.createClient(connectionString, {
  tls: { servername: new URL(connectionString).hostname }
});

あるいは、以下のPythonクライアントの例のように、接続文字列を解析し、その部分を接続ハンドラに送ることもできる:

parsed = urlparse(connection_string)

r = redis.StrictRedis(
    host=parsed.hostname,
    port=parsed.port,
    password=parsed.password,
    ssl=True,
    ssl_ca_certs='/etc/ssl/certs/ca-certificates.crt',
    decode_responses=True)

Redisには、アプリケーションが使用できるクライアントが多数用意されている。 かなり 包括的なリストRedisは。 クラウド用アプリケーションの容易な設計を可能にする機能 (高可用性、セキュリティー、自己署名証明書のサポートを構成する機能など) の情報は、クライアントを選択する際に知っておくべき有用な情報です。

TLS と自己署名証明書のサポート

Databases for Redis へのすべての接続では TLS 1.2 が有効になっているため、接続に使用するドライバーは TLS 暗号化をサポートするものである必要があります。

ドライバーが rediss: プロトコルや TLS/SSL 接続をサポートしていない場合でも、Stunnel などの TLS/SSL トンネル・アプリケーションを使用して Redis データベース・エンドポイントへの接続をトンネルすることは可能です。 Stunnel の使用例は、コマンド・ライン・クライアントを使用した接続のページにあります。ここでは、redis-cli アプリケーションの接続に Stunnel が使用されています。

デプロイメントには自己署名証明書も付属しているため、接続の開始時にサーバーを検証することができます。 この追加のセキュリティー・ステップは必須ではありませんが、クライアントでサポートされている場合は実行することをお勧めします。

詳しくは、 Cloud Databases Certificates FAQを参照してください。

自己署名証明書の使用

  1. _Endpoints_パネルまたはサービス・クレデンシャル接続情報のBase64フィールドから証明書情報をコピーする。
  2. 必要に応じて、Base64 ストリングをテキストにデコードします。
  3. 証明書をファイルに保存します (提供される名前、または独自のファイル名を使用できます)。
  4. ドライバーまたはクライアントに証明書へのパスを提供します。

自己署名証明書の CLI プラグイン・サポート

CLIプラグインを使用して、デプロイメント用にデコードされた証明書を次のようなコマンドで表示できます:

ibmcloud cdb deployment-cacert <INSTANCE_NAME_OR_CRN>

このコマンドはBase64をテキストにデコードする。 このコマンドの出力をファイルにコピーして保存し、このファイルのパスをクライアントに提供します。