전송 중인 데이터 암호화 정보

이 페이지에서는 Redis용 Memorystore의 전송 중인 데이터 암호화의 개요를 설명합니다.

전송 중인 데이터 암호화로 연결을 암호화하는 방법은 전송 중인 데이터 암호화 사용 설정을 참조하세요.

Redis용 Memorystore는 TLS 프로토콜 버전 1.2 이상만 지원합니다.

소개

Redis용 Memorystore는 전송 계층 보안 (TLS) 프로토콜을 사용하여 모든 Redis 트래픽을 암호화할 수 있습니다. 전송 중인 데이터 암호화가 사용 설정되면 Redis 클라이언트는 보안 포트 연결을 통해 독점적으로 통신합니다. TLS에 구성되지 않은 Redis 클라이언트는 차단됩니다. 전송 중인 데이터 암호화를 사용 설정한 경우 Redis 클라이언트에서 TLS 프로토콜을 사용할 수 있는지 확인해야 합니다.

전송 중인 데이터 암호화 기본 요건

Redis용 Memorystore에 전송 중인 데이터 암호화를 사용하려면 다음이 필요합니다.

  1. TLS 또는 타사 TLS 사이드카를 지원하는 Redis 클라이언트
  2. Redis 인스턴스에 액세스하는 클라이언트 머신에 설치된 인증 기관

오픈소스 Redis 버전 6.0 이전에는 기본 TLS가 지원되지 않았습니다. 따라서 일부 Redis 클라이언트 라이브러리는 TLS를 지원하지 않습니다. TLS를 지원하지 않는 클라이언트를 사용하는 경우 클라이언트에 TLS를 사용 설정하는 Stunnel 서드 파티 플러그인을 사용하는 것이 좋습니다. Stunnel을 사용하여 Redis 인스턴스에 연결하는 방법의 예시는 Stunnel 및 telnet을 사용하여 Redis 인스턴스에 안전하게 연결하기를 참조하세요.

인증 기관

전송 중인 데이터 암호화를 사용하는 Redis 인스턴스에는 서버 ID를 확인하는 데 사용되는 고유한 인증 기관(CA)이 하나 이상 있습니다. CA는 Redis 인스턴스에 액세스하는 클라이언트에 다운로드하여 설치해야 하는 문자열입니다. CA 유효 기간은 만든 날짜로부터 10년입니다. 서비스 연속성을 보장하려면 이전 CA가 만료되기 전에 Redis 인스턴스 클라이언트에 새 CA를 설치해야 합니다.

인증 기관 순환

CA는 인스턴스 생성 후 10년간 유효합니다. 또한 인스턴스를 만든 후 5년이 지나야 새 CA를 사용할 수 있습니다.

이전 CA는 해당하는 만료일까지 유효합니다. 따라서 Redis 인스턴스에 연결되는 클라이언트에 새 CA를 다운로드하여 설치할 수 있는 5년의 기간이 제공됩니다. 이전 CA가 만료되면 클라이언트에서 이를 제거할 수 있습니다.

CA 순환에 대한 안내는 인증 기관 순환 관리를 참조하세요.

서버 인증서 순환

서버 측 인증서 순환은 180일 간격으로 수행되며 이때 몇 초간 연결이 일시적으로 끊깁니다. 연결을 다시 설정하려면 지수 백오프를 사용하는 재시도 로직이 마련되어 있어야 합니다. 인증서 순환으로 인해 표준 등급 인스턴스의 장애 조치가 적용되지는 않습니다.

전송 중인 데이터 암호화 연결 한도

Redis 인스턴스에 전송 중인 데이터 암호화를 사용 설정하면 인스턴스에서 사용할 수 있는 최대 클라이언트 연결 수가 제한됩니다. 이 한도는 인스턴스 크기에 따라 다릅니다. 현재 용량 등급에서 지원하는 연결보다 더 많은 연결이 필요하면 Redis 인스턴스 크기를 늘리는 것이 좋습니다.

용량 등급 Redis 버전 4.0, 5.0, 6.x의 최대 연결 수1 Redis 버전 7.0 이상의 최대 연결 수1
M1(1~4GB) 1000 65,000
M2(5~10GB) 2,500 65,000
M3(11~35GB) 15,000 65,000
M4(36~100GB) 30,000 65,000
M5(101GB 이상) 65,000 65,000

1 이러한 연결 한도는 대략적인 값이며 연결당 전송되는 Redis 명령어의 비율과 복잡성에 따라 달라집니다.

연결 모니터링

전송 중인 데이터 암호화가 있는 Redis 인스턴스에는 특정 연결 한도가 있으므로 redis.googleapis.com/clients/connected 측정항목을 모니터링하여 연결 한도를 초과하지 않는지 확인해야 합니다. 이 한도를 초과하면 Redis 인스턴스에서 새로 시도한 연결을 거부합니다. 이러한 경우에는 필요한 연결 수를 충족하도록 인스턴스 크기를 확장하는 것이 좋습니다. 유휴 연결이 상당한 수의 연결을 구성하는 것으로 의심되는 경우 timeout 구성 매개변수를 사용하여 이러한 연결을 사전에 종료할 수 있습니다.

전송 중인 데이터 암호화 사용 설정 시 성능 영향

전송 중인 데이터 암호화 기능은 오버헤드 처리와 동시에 데이터를 암호화 및 복호화합니다. 따라서 전송 중인 데이터 암호화를 사용 설정하면 성능이 저하될 수 있습니다. 또한 전송 중인 데이터 암호화를 사용하면 각 추가 연결이 연결된 리소스 비용으로 제공됩니다. 전송 중인 데이터 암호화 사용과 관련된 지연 시간을 확인하려면 전송 중인 데이터 암호화가 사용 설정된 Redis 인스턴스와 중지된 Redis 인스턴스로 애플리케이션 성능을 벤치마킹하여 애플리케이션 성능을 비교합니다.

성능 개선 가이드라인

  • 가능하다면 클라이언트 연결 수를 줄입니다. 주문형 단기 연결을 만드는 대신 장기 실행 연결을 설정하여 재사용하세요.
  • Memorystore 인스턴스의 크기를 늘립니다(M4 이상 권장).
  • Memorystore 클라이언트 호스트 머신의 CPU 리소스를 늘립니다. CPU 수가 더 많은 클라이언트 머신은 더 나은 성능을 제공합니다. Compute Engine VM을 사용하는 경우 컴퓨팅 최적화 인스턴스를 사용하는 것이 좋습니다.
  • 페이로드가 클수록 더 많은 왕복을 요하므로 애플리케이션 트래픽과 관련된 페이로드 크기를 줄입니다.

전송 중인 데이터 암호화가 메모리 사용에 미치는 영향

전송 중인 데이터 암호화를 사용 설정하면 Redis 인스턴스 메모리 일부가 이 기능에 예약됩니다. 다른 모든 조건이 동일한 상태에서 전송 중인 데이터 암호화를 사용 설정하면 이 기능에서 추가 오버헤드 메모리를 사용하므로 시스템 메모리 사용량 비율 측정항목 값이 더 높아집니다.

Redis 버전 7.0 성능 개선

Redis용 Memorystore에서 Redis 버전 7.0을 사용하면 전송 중인 데이터 암호화 성능이 향상됩니다. 이러한 성능 개선 사항을 활용하려면 인스턴스를 업그레이드하여 Redis 버전 7.0을 사용하는 것이 좋습니다.

다음 단계