본문 바로가기
WIKI 기술 지식 베이스

Fly에서 임베디드 레플리카

원문 보기 위키 갱신

Fly에서 임베디드 레플리카 (Embedded Replicas on Fly)

Turso Cloud 임베디드 레플리카를 사용하는 JavaScript 앱을 Fly.io에 배포해 봐요. 볼륨 마운트와 libSQL 클라이언트 설정만 잘 잡으면 금방 끝나요.

출처: 문서

본문

Fly banner

사전 준비

시작하기 전에 다음을 확인하세요:

단계별 배포

1. 애플리케이션 준비하기

Fly에 배포할 Turso Cloud 데이터베이스를 사용하는 애플리케이션이 준비되어 있어야 해요.

2. Fly로 런치하기

Fly CLI로 앱을 런치하세요:

fly launch

애플리케이션이 자동으로 Fly에 배포되지만, 아직 준비가 끝난 건 아니에요.

3. 공유 볼륨 만들기

이제 임베디드 레플리카를 저장할 볼륨을 만드세요:

fly volumes create libsql_data

4. 볼륨 마운트 및 설정

런치할 때 만들어진 fly.toml과 Dockerfile 파일을 사용해요.

fly.toml 파일을 다음처럼 수정해 새 볼륨을 마운트하세요:

[[mounts]]
source = "libsql_data"
destination = "/app/data"

그리고 Dockerfile 안에서 ca-certificates를 설치하고 업데이트하세요:

RUN apt-get update -qq && \
    apt-get install -y ca-certificates && \
    update-ca-certificates

또한 COPY 명령들 뒤에 다음 줄을 추가해 인증서를 복사하세요:

COPY --from=build /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/

5. libSQL 클라이언트 구성하기

url을 로컬 파일로 바꾸고, syncUrl을 Turso Cloud 데이터베이스 URL로 설정하세요:

import { createClient } from "@libsql/client";

const client = createClient({
  url: "file:/app/data/local.db",
  syncUrl: process.env.TURSO_DATABASE_URL,
  authToken: process.env.TURSO_AUTH_TOKEN,
  syncInterval: 60,
});

6. 업데이트된 앱 배포하기

fly deploy

더 알아보기 (Learn more)