Cloud Datastore 에뮬레이터 실행

Cloud Datastore 에뮬레이터는 프로덕션 Cloud Datastore 환경의 로컬 에뮬레이션을 제공합니다. 에뮬레이터를 사용하여 로컬에서 애플리케이션을 개발하고 테스트할 수 있습니다. 또한 에뮬레이터를 사용하면 프로덕션용 Datastore 모드 Cloud Firestore 인스턴스의 색인을 생성하고 필요하지 않은 색인을 삭제할 수 있습니다. 이 페이지에서는 에뮬레이터 설치 과정, 에뮬레이터 시작 과정, 애플리케이션을 에뮬레이터에 연결하기 위한 환경 변수 설정 과정을 안내합니다.

시작하기 전에

Cloud Datastore 에뮬레이터를 사용하려면 다음 항목이 필요합니다.

에뮬레이터 설치

Cloud Datastore 에뮬레이터는 Google Cloud SDK gcloud 도구의 구성요소입니다. Cloud Datastore 에뮬레이터를 설치하려면 gcloud components install 명령어를 사용하세요.

gcloud components install cloud-datastore-emulator

에뮬레이터 데이터 디렉토리

에뮬레이터는 지정된 데이터 디렉토리에 /WEB-INF/appengine-generated/local_db.bin을 생성하고 local_db.bin에 데이터를 저장하는 방법으로 Cloud Datastore를 시뮬레이션합니다. 에뮬레이터는 기본적으로 ~/.config/gcloud/emulators/datastore/ 데이터 디렉토리를 사용합니다. local_db.bin 파일은 에뮬레이터의 세션 간에 지속됩니다. 여러 데이터 디렉토리를 설정하고 각 디렉토리를 개별적인 로컬 Datastore 모드 인스턴스로 생각할 수 있습니다. local_db.bin 파일의 내용을 지우려면 에뮬레이터를 중지하고 파일을 수동으로 삭제합니다.

에뮬레이터 시작

명령 프롬프트에서 datastore start를 실행하여 에뮬레이터를 시작합니다.

gcloud beta emulators datastore start [flags]

이때 [flags]gcloud 도구에 제공되는 선택적인 명령줄 인수입니다. 예를 들면 다음과 같습니다.

  • --data-dir=[DATA_DIR]는 에뮬레이터의 데이터 디렉토리를 변경합니다. 에뮬레이터는 /WEB-INF/appengine-generated/local_db.bin 내에 [DATA_DIR] 파일을 생성하거나 가능한 경우 기존 파일을 사용합니다.

  • --no-store-on-disk는 에뮬레이터 세션 동안 에뮬레이터가 어떠한 데이터도 디스크에 보관하지 않도록 구성합니다.

선택 가능한 플래그의 전체 목록을 보려면 gcloud beta emulators datastore start 참조 자료를 확인하세요.

에뮬레이터를 시작한 후에는 다음과 유사한 메시지를 보게 됩니다.

...
[datastore] Dev App Server is now running.

에뮬레이터를 중단하려면 명령 프롬프트에 Control-C를 입력합니다.

환경 변수 설정

에뮬레이터를 시작한 후에는 애플리케이션이 프로덕션 Datastore 모드 데이터베이스 대신 에뮬레이터에 연결하도록 환경 변수를 설정해야 합니다. 이러한 환경 변수는 애플리케이션 실행에 사용하는 것과 동일한 머신에서 설정해야 합니다.

에뮬레이터를 시작할 때마다 환경 변수를 설정해야 합니다. 환경 변수에는 동적으로 할당되는 포트 번호가 필요한데 이 포트 번호는 에뮬레이터를 재시작할 때 달라질 수 있기 때문입니다.

변수 자동 설정

애플리케이션과 에뮬레이터를 동일한 머신에서 실행하면 환경 변수를 자동으로 설정할 수 있습니다.

Linux/Mac OS

명령어 치환을 이용해 env-init를 실행합니다.

$(gcloud beta emulators datastore env-init)

Windows

env-init의 출력을 이용해 일괄 처리 파일을 만들고 실행합니다.

gcloud beta emulators datastore env-init > set_vars.cmd && set_vars.cmd

이제 애플리케이션이 Cloud Datastore 에뮬레이터에 연결됩니다.

변수 수동 설정

애플리케이션과 에뮬레이터를 다른 머신에서 실행한다면 환경 변수를 수동으로 설정해야 합니다.

  1. env-init 명령어를 실행합니다.

    gcloud beta emulators datastore env-init
  2. 애플리케이션을 실행하는 머신에서 env-init 명령어의 출력이 지시하는 대로 환경 변수와 값을 설정합니다. 예를 들면 다음과 같습니다.

    Linux/Mac OS
    export DATASTORE_EMULATOR_HOST=localhost:8432
    export DATASTORE_PROJECT_ID=my-project-id
    Windows
    set DATASTORE_EMULATOR_HOST=localhost:8432
    set DATASTORE_PROJECT_ID=my-project-id

이제 애플리케이션이 Cloud Datastore 에뮬레이터에 연결됩니다.

색인 업데이트 및 삭제

에뮬레이터를 사용하여 애플리케이션을 실행하면 프로덕션 Datastore 모드 데이터베이스의 색인을 생성할 수 있을 뿐만 아니라 필요하지 않은 색인을 삭제할 수도 있습니다. gcloud 도구 사용에서 자세히 알아보세요.

환경 변수 제거

에뮬레이터 사용을 마친 후에는 애플리케이션이 프로덕션 Datastore 모드 데이터베이스에 연결하도록 에뮬레이터를 중지(Control-C)하고 환경 변수를 제거하세요.

변수 자동 제거

애플리케이션과 에뮬레이터를 동일한 머신에서 실행한다면 환경 변수를 자동으로 제거할 수 있습니다.

Linux/Mac OS

명령어 치환을 이용해 env-unset를 실행합니다.

$(gcloud beta emulators datastore env-unset)

Windows

env-unset의 출력을 이용해 일괄 처리 파일을 만들고 실행합니다.

gcloud beta emulators datastore env-unset > remove_vars.cmd && remove_vars.cmd

애플리케이션이 프로덕션 Datastore 모드 데이터베이스에 연결됩니다.

변수 수동 제거

애플리케이션과 에뮬레이터를 다른 머신에서 실행한다면 환경 변수를 수동으로 제거해야 합니다.

  1. env-unset 명령을 실행합니다.

    gcloud beta emulators datastore env-unset
  2. 애플리케이션을 실행하는 머신에서 env-unset 명령어의 출력이 지시하는 대로 환경 변수를 제거합니다. 예를 들면 다음과 같습니다.

    Linux/Mac OS
    unset DATASTORE_EMULATOR_HOST
    unset DATASTORE_PROJECT_ID
    Windows
    set DATASTORE_EMULATOR_HOST=
    set DATASTORE_PROJECT_ID=

애플리케이션이 프로덕션 Datastore 모드 데이터베이스에 연결됩니다.

이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

Cloud Datastore 문서