外部アプリケーションの接続
アプリケーションとドライバーが、接続ストリングを使用して IBM Cloud® Databases for Redis への接続を行います。 このサービスは、ドライバーおよびアプリケーション専用の接続ストリングを提供します。 接続文字列はデプロイの「概要ページの「エンドポイントパネルに表示され、「Cloud DatabasesCLIプラグイン、 「Cloud DatabasesAPI 取得できる。
接続文字列は、デプロイメントで作成した任意の資格情報で使用できます。 すべての接続およびアプリケーションで管理ユーザーを使用することが可能ですが、使用するアプリケーションに接続するための専用のユーザーを作成する方がよい場合もあります。 詳細は 接続文字列の取得 を参照。
アプリケーション用の接続ストリング
ドライバがデプロイメントに接続するために必要な情報はすべて、Service credentialsページで作成したクレデンシャルの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を参照してください。
自己署名証明書の使用
- _Endpoints_パネルまたはサービス・クレデンシャル接続情報のBase64フィールドから証明書情報をコピーする。
- 必要に応じて、Base64 ストリングをテキストにデコードします。
- 証明書をファイルに保存します (提供される名前、または独自のファイル名を使用できます)。
- ドライバーまたはクライアントに証明書へのパスを提供します。
自己署名証明書の CLI プラグイン・サポート
CLIプラグインを使用して、デプロイメント用にデコードされた証明書を次のようなコマンドで表示できます:
ibmcloud cdb deployment-cacert <INSTANCE_NAME_OR_CRN>
このコマンドはBase64をテキストにデコードする。 このコマンドの出力をファイルにコピーして保存し、このファイルのパスをクライアントに提供します。