外部アプリケーションの接続
アプリケーションとドライバーが、接続ストリングを使用して IBM Cloud® Databases for Redis への接続を行います。 このサービスは、ドライバーおよびアプリケーション専用の接続ストリングを提供します。 接続文字列は配置の [概要]ページの [エンドポイント] パネルに表示され、Cloud Databases CLI プラグイン や Cloud Databases API からも取得できます。
接続文字列は、配置で作成した任意の資格情報で使用できます。 すべての接続およびアプリケーションで管理ユーザーを使用することが可能ですが、使用するアプリケーションに接続するための専用のユーザーを作成する方がよい場合もあります。 詳細は 接続文字列の取得 を参照。
アプリケーション用の接続ストリング
ドライバがデプロイメントに接続するために必要な情報はすべて、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 をテキストにデコードする。 このコマンドの出力をファイルにコピーして保存し、このファイルのパスをクライアントに提供します。