Koyeb의 PlanetScale 데이터베이스에 응용 프로그램을 연결하는 방법

PlanetScale 은 MySQL 및 Vitess 를 기반으로 하는 서버 없는 데이터베이스 플랫폼입니다.이 플랫폼은 개발자에게 강력한 원어를 제공하고 데이터베이스 관리와 확장을 간소화시켰다.
PlanetScale에서 제공하는 내장 기능의 상세하지 않은 목록은 다음과 같습니다.

  • 네이티브 자동 배율: 로드에 따라 기본 리소스 자동 배율

  • 데이터베이스 분기: 클릭하여 데이터베이스 복제본을 만들고 분기에 아키텍처 변경 사항 적용

  • 비차단 모드 변경: 잠금 및 정지 없이 데이터베이스 테이블 업데이트
  • 이 설명서에서는 Koyeb 서버 없는 플랫폼에서 응용 프로그램을 사용하고 PlanetScale 데이터베이스에 연결하는 방법에 대해 설명합니다.
    Google은 Koyeb 응용 프로그램에 공식 PlanetScaleplanetscale/pscale-proxy Docker 이미지를 배치하여 Koyeb 서비스 격자와 발견된 내장 기능을 활용할 것입니다. 이 기능들은 격리되고 안전한 전용 네트워크를 제공하여 응용 프로그램이 PlanetScale 데이터베이스와 안전하게 통신할 수 있도록 합니다.

    요구 사항


    이 자습서를 성공적으로 완료하려면 다음이 필요합니다.
  • PlanetScale 계정 및 시스템
  • 에 설치된 PlaneScale CLI
  • 배포 및 실행
  • Koyeb account

    층계


    이 설명서를 성공적으로 따르려면 다음 절차를 따르십시오.
  • Create a PlanetScale database and service token
  • Deploy the PlanetScale proxy on Koyeb
  • Connect your database via the Koyeb mesh
  • PlanetScale 데이터베이스 만들기


    먼저 PlanetScale CLI를 사용하여 데이터베이스를 만듭니다.터미널에서 다음 명령을 실행하여 <dbname>를 사용할 데이터베이스 이름으로 바꿉니다.
     pscale database create <dbname>
    
    PlanetScale 데이터베이스에 연결하기 위해 서비스 토큰을 사용하여 인증합니다.새 서비스 토큰을 만들려면 터미널 실행 중:
    $ pscale service-token create
    NAME           TOKEN
    -------------- ------------------------------------------
    asd9eeectsti   f0d0d1426bf30957f8526d52208a07c08f000000
    
    영패를 안전한 곳에 저장하고 Koyeb에 PlaneScale 에이전트를 배치할 때 다음 섹션에서 영패를 필요로 합니다.
    데이터베이스에 대한 인증을 정확하게 하기 위해서, 우리는 이전에 만든 서비스 영패에 대해 권한을 부여해야 한다.터미널에서 다음과 같이 <dbname>를 데이터베이스 이름으로, <tokenname>를 서비스 토큰으로 바꿉니다.
    pscale service-token add-access <tokenname> connect_production_branch connect_branch --database <dbname>
    
    이 명령을 실행하면, 우리는 생산 지점과 모든 다른 지점을 연결할 수 있는 서비스 영패 접근권을 부여합니다.서비스 토큰에 대한 자세한 내용은 PlanetScaledocumentation을 참조하십시오.

    Koyeb에 PlanetScale 에이전트 배포


    PlanetScale은 IP 화이트리스트나 SSL 인증서를 수동으로 처리하지 않고도 데이터베이스에 안전하게 연결할 수 있는 에이전트를 제공합니다.Google은 Koyeb 서비스에 PlanetScale 에이전트를 배치하여 관련 데이터베이스에 쉽게 연결할 수 있도록 합니다.
    Koyeb 제어판에서 응용 프로그램 만들기 버튼을 클릭합니다.
    Docker 이미지 섹션에서 다음을 수행합니다.
  • Docker 이미지: Docker 레지스트리docker.io/planetscale/pscale-proxy에 호스팅된 PlanetScale 프록시 Docker 이미지 사용
  • Args: 입력["--host","0.0.0.0"]은 로컬
  • 이 아닌 다른 Koyeb 서비스에서 에이전트에 연결할 수 있습니다.
    포트 섹션에서 내보내기 포트를 80에서 3306로 변경하고 프로토콜HTTPTCP로 변경합니다.Koyeb에서 상태 점검을 수행하고 서비스가 제대로 작동하는지 확인하려면 이 설정이 필요합니다.
    환경 변수 섹션에서 다음 환경 변수를 생성합니다.
  • PLANETSCALE_SERVICE_TOKEN: 이전 섹션에서 만든 PlanetScale 서비스 토큰을 사용합니다.우리는 그것을 저장하기 위해 비밀 환경 변수를 사용하는 것을 강력히 건의합니다.
  • PLANETSCALE_SERVICE_TOKEN_NAME: 이전 섹션에서 만든 PlanetScale 서비스 토큰의 이름을 사용합니다.Secret 유형의 환경 변수를 사용하여 저장하는 것이 좋습니다.
  • PLANETSCALE_DATABASE: PlanetScale 데이터베이스의 이름을 사용합니다.
  • PLANETSCALE_BRANCH: 사용할 PlanetScale 데이터베이스 지점의 이름을 사용합니다. 이 값을 기본 생산 지점main으로 설정합니다.
  • PLANETSCALE_ORG: 당신의 PlanetScale 조직의 이름
  • 으로
    응용 프로그램 이름 planetscale-demo 을 지정하고 응용 프로그램 만들기를 누르십시오.
    Koyeb 응용 프로그램을 만들고 PlanetScale 프록시 서비스를 실행합니다.
    현재, 이 프로그램에 설치된 모든 서비스는 Koyeb 서비스 격자를 사용하고 데이터베이스를 안전하게 연결하는 것을 발견할 수 있습니다.

    Koyeb 그리드를 통한 데이터베이스 연결


    Koyeb 격자를 사용하여 PlaneScale에 연결하는 방법을 보여주기 위해서 Ghost 블로그 플랫폼을 데이터베이스에 배치합니다.
    Koyeb 제어판에서 응용 프로그램으로 이동하고 서비스 만들기 를 클릭합니다.
    Docker 이미지에서 Ghost 공식 Docker 이미지docker.io/ghost를 사용합니다.
    포트 섹션에서 포트를 80에서 2368로 변경합니다. 이것은 Ghost가 스누핑하는 기본 포트입니다.Koyeb에서 서비스가 어떤 포트를 탐색하고 있는지 알 수 있도록 설정하고 HTTP 요청을 올바르게 전달해야 합니다.경로를 변경할 필요가 없습니다. Ghost는 도메인의 루트 디렉토리에서 사용할 수 있습니다./.
    환경 변수 섹션에서 다음 환경 변수를 만들면 Ghost는 이러한 변수를 사용하여 데이터베이스에 연결합니다.
  • database__client: 값 포함mysql
  • database__connection__host: PlaneScale 에이전트를 실행하는 서비스의 이름, 우리의 예pscale-proxy
  • database__connection__user: 값 포함root
  • database__connection__database: PlanetScale 데이터베이스의 이름을 사용합니다.
  • 서비스 이름ghost-demo을 지정하고 서비스 만들기 를 클릭합니다.
    현재 Koyeb 프로그램 URL <appname>-<orgname>.koyeb.app 으로 이동하면 실행 중인 Ghost 로그인 페이지에 로그인하고 Koyeb mesh 네트워크를 사용하여PlaneScale 데이터베이스에 연결합니다.

    결론


    이 설명서에서는 PlaneScale 프록시를 사용하여 PlaneScale 데이터베이스를 구성, 배포 및 연결하는 방법에 대해 설명합니다.두 가지 서비스를 실행하는 Koyeb 애플리케이션을 구축했습니다.
  • Dell 데이터베이스
  • 와 통신하는 PlaneScale 에이전트
  • Ghost 블로그는 Koyeb mesh 네트워크를 사용하여 자신의 서비스를 데이터베이스에 연결하는 방법을 보여 줍니다.Service Mesh & Discovery 기능은 서비스와 데이터베이스 간에 통신하는 간단하고 안전한 방식을 제공합니다.
  • 이 설명서에 대한 질문이나 권장 사항이 있는 경우
    언제든지 연락 주세요Slack.

    좋은 웹페이지 즐겨찾기