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

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

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

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

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

ドライバがデプロイメントに接続するために必要な情報はすべて、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 をテキストにデコードする。 このコマンドの出力をファイルにコピーして保存し、このファイルのパスをクライアントに提供します。