IBM Cloud Docs
외부 애플리케이션 연결

외부 애플리케이션 연결

애플리케이션 및 드라이버는 연결 문자열을 사용하여 IBM Cloud® Databases for Redis에 연결합니다. 서비스는 드라이버 및 애플리케이션용으로 특별히 연결 문자열을 제공합니다. 연결 문자열은 배포 개요 페이지의 엔드포인트 패널에 표시되며 Cloud Databases CLI 플러그인Cloud Databases API에서도 검색할 수 있습니다.

연결 문자열은 배포에서 생성한 모든 자격 증명에서 사용할 수 있습니다. 모든 연결 및 애플리케이션에 admin 사용자를 사용할 수 있지만 애플리케이션을 연결하기 위해 특별히 사용자를 작성하는 것이 좋습니다. 자세한 내용은 연결 문자열 가져오기를 참조하세요.

애플리케이션에 대한 연결 문자열

드라이버가 배포에 연결하는 데 필요한 모든 정보는 서비스 자격 증명 페이지에서 만든 자격 증명의redis" 섹션에 있습니다. 이 표에는 참조에 대한 분석이 포함되어 있습니다.

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를 참조하십시오.

서비스 전용 인증서 사용

  1. 엔드포인트 패널 또는 서비스 자격증명 연결 정보의 Base64 필드에서 인증서 정보를 복사합니다.
  2. 필요하면, Base64 문자열을 텍스트로 디코딩하십시오.
  3. 파일에 인증서를 저장하십시오. (제공되는 이름 또는 자체 파일 이름을 사용할 수 있습니다.)
  4. 드라이버 또는 클라이언트에 인증서의 경로를 제공하십시오.

서비스 전용 인증서를 위한 CLI 플러그인 지원

다음과 같은 명령을 사용하여 CLI 플러그인을 사용하여 배포를 위해 디코딩된 인증서를 표시할 수 있습니다:

ibmcloud cdb deployment-cacert <INSTANCE_NAME_OR_CRN>

이 명령은 Base64 을 텍스트로 디코딩합니다. 명령의 출력을 복사하여 파일에 저장하고 파일의 경로를 클라이언트에 제공하십시오.