네트워크 연결 옵션

개요

Datastream을 사용하여 소스 데이터베이스에서 대상으로의 스트림을 만들려면 소스 데이터베이스에 대한 연결을 설정해야 합니다.

Datastream은 IP 허용 목록, 전달 SSH 터널, VPC 피어링 네트워크 연결 방법을 지원합니다.

다음 표에 있는 정보를 사용하여 특정 워크로드에 가장 적합한 방법을 결정할 수 있습니다.

네트워킹 방법 설명 장점 단점
IP 허용 목록

Datastream 외부 IP 주소에서 들어오는 연결을 허용하도록 소스 데이터베이스 서버를 구성하여 작동합니다. 리전의 IP 주소를 찾으려면 다음 링크 IP 허용 목록 및 리전을 참조하세요.

  • 손쉬운 구성
  • 소스 데이터베이스가 공개 IP 주소에 노출됩니다.
  • 기본적으로 연결은 암호화되지 않습니다. 연결을 암호화하려면 소스 데이터베이스에서 SSL을 사용 설정해야 합니다.
  • 방화벽을 구성하려면 IT 부서의 도움이 필요할 수 있습니다.
정방향 SSH 터널

정방향 SSH 터널을 통해 Datastream과 소스 사이의 공개 네트워크를 통해 암호화된 연결을 설정합니다.

SSH 터널 자세히 알아보기

  • 보안
  • 제한된 대역폭
  • 배스천 호스트를 설정하고 유지관리해야 합니다.
VPC 피어링 비공개 연결 구성 만들기로 작동합니다. Datastream은 이 구성을 사용하여 비공개 네트워크를 통해 데이터 소스와 통신합니다. 이 통신은 Virtual Private Cloud(VPC) 피어링 연결을 통해 이루어집니다.
  • 보안 비공개 채널
  • 손쉬운 구성
  • 데이터베이스와 Google Cloud 간에 비공개 네트워크 연결(VPN, 상호 연결 등)이 필요합니다.

IP 허용 목록을 사용하여 연결 구성

Datastream이 소스 데이터베이스에서 대상으로 데이터를 전송할 수 있으려면 Datastream이 먼저 이 데이터베이스에 연결되어야 합니다.

이 연결을 구성하는 한 가지 방법은 IP 허용 목록을 사용하는 것입니다. 공개 IP 연결은 소스 데이터베이스가 Google Cloud 외부에 있고 외부적으로 액세스할 수 있는 IPv4 주소 및 TCP 포트가 있을 때 가장 적합합니다.

소스 데이터베이스가 Google Cloud 외부에 있으면 Datastream의 공개 IP 주소를 소스 네트워크에서 인바운드 방화벽 규칙으로 추가합니다. 네트워크 설정이 각 경우마다 다를 수 있지만 일반적으로 다음을 수행합니다.

  1. 소스 데이터베이스 머신의 네트워크 방화벽 규칙을 엽니다.

  2. 인바운드 규칙을 만듭니다.

  3. 소스 데이터베이스의 IP 주소를 Datastream의 IP 주소로 설정합니다.

  4. 프로토콜을 TCP로 설정합니다.

  5. TCP 프로토콜과 연관된 포트를 설정합니다. 기본값은 다음과 같습니다.

    • Oracle 데이터베이스의 경우 1521
    • MySQL 데이터베이스의 경우 3306
    • PostgreSQL 데이터베이스의 경우 5432
    • SQL Server 데이터베이스의 경우 1433
  6. 방화벽 규칙을 저장한 후 종료합니다.

SSH 터널 사용

다음 단계에서는 전달 SSH 터널을 사용하여 소스 데이터베이스에 대한 연결을 설정하는 방법을 설명합니다.

1단계: 터널을 종료할 호스트 선택

데이터베이스에 대해 SSH 터널 액세스를 설정하는 첫 번째 단계는 터널을 종료하는 데 사용할 호스트를 선택하는 것입니다. 데이터베이스 호스트 자체 또는 별도의 호스트(터널 서버)에서 터널을 종료할 수 있습니다.

데이터베이스 서버 사용

데이터베이스에서 터널을 종료하면 단순성 이점이 있습니다. 관련된 호스트가 하나 적기 때문에 추가적인 머신 및 관련 비용이 발생하지 않습니다. 단점은 데이터베이스 서버가 인터넷에 직접 액세스할 수 없는 보호 네트워크에 있을 수 있다는 것입니다.

터널 서버 사용

별도의 서버에서 터널을 종료하면 인터넷에서 데이터베이스 서버에 액세스할 수 없다는 이점이 있습니다. 터널 서버가 손상된 경우 데이터베이스 서버에서 한 단계가 삭제됩니다. 터널 서버에서 중요하지 않은 소프트웨어와 사용자를 모두 삭제하고 침입 감지 시스템(IDS)과 같은 도구를 사용하여 면밀하게 모니터링하는 것이 좋습니다.

터널 서버는 다음과 같은 모든 Unix 또는 Linux 호스트일 수 있습니다.

  1. SSH를 사용해서 인터넷에서 액세스할 수 있습니다.
  2. 데이터베이스에 액세스할 수 있습니다.

2단계: IP 허용 목록 만들기

데이터베이스에 대해 SSH 터널 액세스를 설정하는 두 번째 단계는 일반적으로 TCP 포트 22에서 SSH를 사용하여 터널 서버 또는 데이터베이스에 연결하도록 네트워크 트래픽을 허용하는 것입니다.

Datastream 리소스가 생성된 각 리전의 IP 주소에서 네트워크 트래픽을 허용합니다.

3단계: SSH 터널 사용

연결 프로필 구성에 터널 세부정보를 제공합니다. 자세한 내용은 연결 프로필 만들기를 참조하세요.

SSH 터널 세션을 인증하려면 Datastream에 터널 계정의 비밀번호 또는 고유한 비공개 키가 필요합니다. 고유한 비공개 키를 사용하려면 OpenSSH 또는 OpenSSL 명령줄 도구를 사용하여 키를 생성하면 됩니다.

Datastream은 Datastream 연결 프로필 구성의 일부로 비공개 키를 안전하게 저장합니다. 공개 키를 배스천 호스트의 ~/.ssh/authorized_keys 파일에 수동으로 추가해야 합니다.

비공개 키 및 공개 키 생성

다음 방법을 사용하여 SSH 키를 생성할 수 있습니다.

  • ssh-keygen: SSH 키 쌍을 생성하는 OpenSSH 명령줄 도구입니다.

    유용한 플래그:

    • -t: 만들려는 키 유형을 지정합니다. 예를 들면 다음과 같습니다.

      ssh-keygen -t rsa

      ssh-keygen -t ed25519

    • -b: 만들려는 키의 키 길이를 지정합니다. 예를 들면 다음과 같습니다.

      ssh-keygen -t rsa -b 2048

    • -y: 비공개 OpenSSH 형식 파일을 읽고 OpenSSH 공개 키를 표준 출력에 출력합니다.

    • -f: 키 파일의 파일 이름을 지정합니다. 예를 들면 다음과 같습니다.

      ssh-keygen -y [-f KEY_FILENAME]

    지원되는 플래그에 대한 자세한 내용은 OpenBSD 문서를 참조하세요.

다음 방법을 사용하여 비공개 PEM 키를 생성할 수 있습니다.

  • openssl genpkey: PEM 비공개 키를 생성하는 OpenSSL 명령줄 도구입니다.

    유용한 플래그:

    • algorithm: 사용할 공개 키 알고리즘을 지정합니다. 예를 들면 다음과 같습니다.

      openssl genpkey -algorithm RSA

    • -out: 키를 출력할 파일 이름을 지정합니다. 예를 들면 다음과 같습니다.

      openssl genpkey -algorithm RSA -out PRIVATE_KEY_FILENAME.pem

    지원되는 플래그에 대한 자세한 내용은 OpenSSL 문서를 참조하세요.

비공개 연결 사용

비공개 연결은 Datastream이 내부 IP 주소를 사용해서 내부 리소스와 통신할 수 있게 해주는 VPC 네트워크와 Datastream의 비공개 네트워크 사이의 연결입니다. 비공개 연결을 사용하면 Datastream 네트워크에서 전용 연결이 설정되어 다른 고객이 이를 공유할 수 없습니다.

소스 데이터베이스가 Google Cloud 외부에 있는 경우 비공개 연결을 사용 설정하여 Datastream이 VPN 또는 Interconnect를 통해 데이터베이스와 통신할 수 있습니다.

비공개 연결 구성이 생성된 후 단일 구성으로 단일 리전 내에서 프로젝트의 모든 스트림을 처리할 수 있습니다.

대략적으로 비공개 연결을 설정하려면 다음이 필요합니다.

  • 기존 Virtual Private Cloud(VPC)
  • CIDR 블록이 /29인 사용 가능한 IP 범위

프로젝트에 공유 VPC가 사용되는 경우 Datastream 및 Google Compute Engine API를 사용 설정하고 호스트 프로젝트의 Datastream 서비스 계정에 권한도 부여해야 합니다.

비공개 연결 구성 만들기 방법 자세히 알아보기

다음 단계