외부 애플리케이션 연결
애플리케이션 및 드라이버는 연결 문자열을 사용하여 IBM Cloud® Databases for Redis에 연결합니다. 서비스는 드라이버 및 애플리케이션용으로 특별히 연결 문자열을 제공합니다. 연결 문자열은 배포 개요 페이지의 엔드포인트 패널에 표시되며 Cloud Databases CLI 플러그인 및 Cloud Databases API에서도 검색할 수 있습니다.
연결 문자열은 배포에서 생성한 모든 자격 증명에서 사용할 수 있습니다. 모든 연결 및 애플리케이션에 admin 사용자를 사용할 수 있지만 애플리케이션을 연결하기 위해 특별히 사용자를 작성하는 것이 좋습니다. 자세한 내용은 연결 문자열 가져오기를 참조하세요.
애플리케이션에 대한 연결 문자열
드라이버가 배포에 연결하는 데 필요한 모든 정보는 서비스 자격 증명 페이지에서 만든 자격 증명의redis" 섹션에 있습니다. 이 표에는 참조에 대한 분석이 포함되어 있습니다.
필드 이름 | 색인 | 설명 |
---|---|---|
Type |
연결 유형 - Redis 의 경우 "URI"입니다. | |
Scheme |
URI에 대한 스키마 - Redis 의 경우 "rediss"입니다. | |
Path |
URI의 경로 - Redis 의 경우 데이터베이스 번호입니다. | |
Authentication |
Username |
연결하는 데 사용하는 사용자 이름입니다. |
Authentication |
Password |
사용자의 비밀번호 - $PASSWORD 로 표시될 수 있습니다. |
Authentication |
Method |
인증이 수행되는 방법이며 "직접" 인증은 드라이버에 의해 처리됩니다. |
Hosts |
0... |
연결할 호스트 이름 및 포트입니다. |
Composed |
0... |
스키마, 인증, 호스트 및 경로를 결합한 URI입니다. |
Certificate |
Name |
데이터베이스 배포를 위한 서비스 전용 인증서에 할당된 이름입니다. |
Certificate |
Base64 | base64 인코딩된 인증서 버전입니다. |
0...
배열에 이러한 항목이 하나 이상 있을 수 있음을 표시합니다.
Redis 드라이버는 종종 연결 문자열의 "composed" 필드에 있는 URI로 형식화된 연결 문자열이 제공될 때 배치에 연결할 수 있습니다. 예를 들어 다음 예제에서와 같이 환경 변수 ' 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 연결을 지원하지 않는 경우에도 TLS/SSL 터널 애플리케이션(예: Stunnel)을 사용하여 Redis 데이터베이스 엔드포인트에 대한 연결을 터널링할 수 있습니다. Stunnel 사용 예제는 명령행 클라이언트를 사용하여 연결 페이지에서 찾을 수 있습니다. 여기서 Stunnel은 redis-cli
애플리케이션을 연결하는 데 사용됩니다.
배포에는 서비스 전용 인증서도 함께 제공되므로 연결을 시작할 때 서버를 확인할 수 있습니다. 필수는 아니지만 클라이언트가 지원하는 경우 권장되는 추가 보안 단계입니다.
자세한 정보는 Cloud Databases 인증서 FAQ를 참조하십시오.
서비스 전용 인증서 사용
- 엔드포인트 패널 또는 서비스 자격증명 연결 정보의 Base64 필드에서 인증서 정보를 복사합니다.
- 필요하면, Base64 문자열을 텍스트로 디코딩하십시오.
- 파일에 인증서를 저장하십시오. (제공되는 이름 또는 자체 파일 이름을 사용할 수 있습니다.)
- 드라이버 또는 클라이언트에 인증서의 경로를 제공하십시오.
서비스 전용 인증서를 위한 CLI 플러그인 지원
다음과 같은 명령을 사용하여 CLI 플러그인을 사용하여 배포를 위해 디코딩된 인증서를 표시할 수 있습니다:
ibmcloud cdb deployment-cacert <INSTANCE_NAME_OR_CRN>
이 명령은 Base64 을 텍스트로 디코딩합니다. 명령의 출력을 복사하여 파일에 저장하고 파일의 경로를 클라이언트에 제공하십시오.