데이터 저장소 관리자

이전에는 Datastore 모드의 Firestore에서 일괄 삭제 및 백업 기능이 있는 선택적 모듈인 Datastore 관리자를 사용 설정하는 기능을 지원했습니다. Datastore 관리자는 보다 이제 보다 안정적인 대안으로 대체되었습니다.

Datastore 관리자 액세스

이전에 Datastore 관리자를 사용 설정한 경우 https://ah-builtin-python-bundle-dot-PROJECT_ID.appspot.com/_ah/datastore_admin?app_id=PROJECT_ID를 방문하여 모듈에 계속 액세스할 수 있습니다. 여기서 PROJECT_ID는 Google Cloud 프로젝트의 ID입니다. Datastore 관리자를 사용 중지하면 이 모듈을 다시 사용 설정할 수 없게 됩니다.

Datastore 관리자 기능 사용 시 주의사항

  • 복사, 삭제, 백업 시 최신 업데이트 내용이 반영되지 않을 수 있습니다.
  • 모든 Datastore 관리자 작업은 애플리케이션 내에서 발생하므로 할당량에 합산됩니다.
  • 백업 또는 복원 중에는 쓰기를 사용 중지해 놓는 것이 좋습니다.
  • 키가 동일한 기존 항목은 복사/복원 작업 도중 덮어쓰기됩니다. 복사/복원 작업이 여러 번 수행되더라도 중복이 생성되지 않습니다. 복사/복원 작업이 추가 데이터를 삭제하지는 않습니다.
  • 백업/복원에 기본값 이외의 큐를 사용하는 경우 queue.yaml에 대상 ah-builtin-python-bundle만 지정할 수 있습니다. 그 외 다른 대상을 사용할 수 없습니다.

데이터베이스 액세스 권한

기본적으로 Datastore 관리자는 동일한 프로젝트의 Datastore 데이터베이스에 액세스할 수 있으며 Datastore에 대한 Identity and Access Management 권한이 필요하지 않습니다.

데이터 백업

향후 데이터 복원 또는 내보내기를 위한 백업 파일을 만들려면 다음 단계를 따르세요.

  1. 아직 프로젝트의 저장소 버킷을 생성하지 않았다면 지금 생성합니다. 원하는 경우 액세스제어목록(ACL)을 통해 프로젝트의 App Engine 기본 서비스 계정에 버킷에 대한 액세스 권한이 부여되어 있는지 확인합니다. 이 목록은 이미 기본값으로 설정되어 있으며 필요에 따라 재정의할 수 있습니다.

  2. (권장사항) Cloud Datastore 쓰기를 사용 중지합니다.

  3. 데이터 저장소 관리자 열기

  4. 백업하려는 항목 종류를 선택합니다.

  5. 항목 백업을 클릭하여 백업 양식을 표시합니다.

  6. 백업 이름이 제공되고 날짜 스탬프가 포함되어 있는지 확인합니다.

    동일한 이름의 백업이 이미 존재하면 백업이 만들어지지 않으므로 하루에 백업을 2개 이상 만드는 경우에는 이 값을 변경해야 합니다.

  7. 백업 작업에는 기본 큐가 사용되므로 대부분의 경우 이 큐를 사용할 수 있습니다.

    백업/복원에 기본값 이외의 큐를 사용하는 경우 queue.yaml에 대상 ah-builtin-python-bundle만 지정할 수 있습니다. 그 외 다른 대상을 사용할 수 없습니다.

  8. Google Cloud Storage를 백업 스토리지 위치로 선택합니다.

  9. Cloud Storage를 선택하면 [BUCKET_NAME] 형식으로 백업을 저장할 버킷 이름을 입력하라는 메시지가 나타납니다. 원하는 경우 버킷 이름 뒤에 디렉터리 구조를 서픽스로 추가할 수 있습니다(예: [BUCKET_NAME]/backups/foo). 기존에 이러한 폴더가 없는 경우에는 새로 만들어집니다.

  10. 항목 백업을 클릭하여 백업 작업을 시작합니다. 작업 상태 페이지가 표시됩니다.백업 작업 상태

  11. Datastore 관리자로 돌아가기를 클릭하여 백업 상태를 확인합니다.

  12. Cloud Datastore 쓰기를 사용 중지한 경우 백업이 완료되면 다시 사용 설정합니다.

백업 및 복원 시 고려 사항

백업 및 복원 기능은 데이터의 우발적 삭제를 복원하고 데이터를 내보내는 작업을 지원하기 위해 제공됩니다. 모든 항목 또는 선택한 종류의 항목만 백업 가능하며 필요한 경우 이러한 백업 중 하나를 복원할 수 있습니다.

백업은 Cloud Storage에 저장됩니다.

백업에는 어떠한 색인도 포함되지 않습니다. 복원할 때 필수 색인은 애플리케이션을 사용하여 업로드한 색인 정의를 사용하여 자동으로 다시 빌드됩니다.

또한 백업 파일을 사용하여BigQuery와 같은 다른 Google Cloud 서비스로 데이터를 내보낼 수 있습니다.

복원을 수행하면 항목에 새로운 ID가 할당되지 않고, 백업 당시 존재했던 ID를 사용하여 동일한 ID가 지정된 기존 항목을 덮어씁니다. 항목을 복원하는 동안에는 ID가 예약됩니다. 이 조치는 복원을 실행하는 동안 쓰기가 사용 설정되어 있을 때 ID가 신규 항목과 충돌하는 경우를 방지합니다. 이로써 백업 이후 추가된 신규 항목이 보존됩니다.

백업에서 모든 데이터를 복원하거나 백업에서 특정 항목 종류를 복원할 수 있습니다. 또한 백업에 Cloud Storage를 사용한다는 전제하에 한 애플리케이션 데이터의 백업을 다른 애플리케이션으로 복원하는 데 이 기능을 사용할 수도 있습니다.

백업 취소

백업 작업이 현재 실행 중인 경우 Cloud Datastore 관리자 화면의 대기중 백업 목록에 나타납니다.

이렇게 실행 중인 백업을 중단하려면 다음을 수행하세요.

  1. 데이터 저장소 관리자 열기
  2. 대기중 백업 섹션의 목록에서 백업을 선택하고 취소를 클릭합니다.

백업 작업을 취소하면 App Engine이 이 시점까지 저장된 백업 데이터의 삭제를 시도합니다. 그러나 경우에 따라 취소 후에도 남아 있는 파일이 있을 수 있습니다. 취소가 완료된 후에 Google Cloud Storage에서 백업 위치로 선택한 위치에서 이러한 파일을 찾아 안전하게 삭제할 수 있습니다. 이러한 파일의 이름은 datastore_backup_[BUCKET_NAME] 패턴으로 시작합니다.

백업 관련 정보 찾기

백업에 포함된 항목 종류, Google Cloud Storage에서 저장된 위치, 시작 및 종료 시간과 같은 백업에 관한 자세한 내용을 확인할 수 있습니다. 이 백업 정보를 표시하려면 다음을 수행하세요.

  1. 데이터 저장소 관리자 열기
  2. 백업 또는 대기중 백업 목록에서 백업을 하나 이상 선택합니다.
  3. 정보를 클릭하여 이러한 백업에 관한 정보를 표시합니다.
  4. Cloud Datastore 관리자 기본 화면으로 돌아가려면 뒤로를 클릭합니다.

데이터 복원

백업에서 복원하려면 다음 안내를 따르세요.

  1. (권장사항) 애플리케이션의 Cloud Datastore 쓰기를 사용 중지합니다. 일반적으로 이 작업은 Cloud Datastore에 쓰인 신규 데이터와 복원 데이터 간의 충돌을 방지하는 데 도움이 됩니다.
  2. 데이터 저장소 관리자 열기
  3. 사용 가능한 백업 목록에서 복원하려는 백업을 선택합니다.
  4. 복원을 클릭합니다.
  5. 표시되는 안내 페이지에 체크박스와 함께 항목 목록이 제공됩니다. 기본적으로는 모든 항목이 복원됩니다. 복원하지 않으려는 각 항목 옆에 있는 체크박스의 선택을 해제합니다.
  6. 또한 안내 페이지에서 복원 작업에 사용되는 기본 큐와 사전 구성된 성능 설정을 확인할 수 있습니다. 다른 큐 성능 특성이 필요한 경우에는 기본 큐를 다르게 구성한 다른 큐로 변경하고 선택한 큐에 ah-builtin-python-bundle이 아닌 queue.yaml의 대상이 지정되지 않도록 유의합니다.
  7. 복원을 클릭하여 복원을 시작합니다. 작업 상태 페이지가 표시됩니다.
  8. Datastore 관리자로 돌아가기를 클릭하여 복원 상태를 확인합니다.복원 상태
  9. Cloud Datastore 쓰기를 사용 중지한 경우 복원이 완료되면 애플리케이션에서 다시 사용 설정합니다.

다른 애플리케이션에 데이터 복원

Google Cloud Storage를 사용하여 데이터를 백업하는 경우 백업 생성에 사용한 애플리케이션 이외의 애플리케이션으로 백업을 복원할 수 있습니다.

원본 애플리케이션의 백업 데이터를 대상 애플리케이션으로 복원하려면 다음을 수행하세요.

  1. 다음과 같은 권한을 사용하여 원본 애플리케이션의 저장소 버킷에 있는 Identity and Access Management (IAM) 정책을 생성합니다.

    • 주 구성원: [PROJECT_ID]@appspot.gserviceaccount.com
    • 역할: Storage Legacy Bucket ReaderStorage Legacy Object Reader

    이때 [PROJECT_ID]는 대상 애플리케이션의 프로젝트 ID입니다.

  2. 원본 애플리케이션에서 신규 백업을 생성합니다.

  3. (권장사항) Cloud Datastore에 쓰인 신규 데이터와 복원 데이터 간의 충돌을 방지하기 위해 대상 애플리케이션의 Cloud Datastore 쓰기를 사용 중지합니다.

  4. 데이터 저장소 관리자 열기

  5. 백업 정보 가져오기 라벨이 표시된 버튼 옆에 있는 입력란에 백업이 포함된 소스 애플리케이션 버킷을 /gs/[BUCKET_NAME] 형식으로 지정합니다. 저장소 버킷 백업
    대안으로, 특정 백업의 파일 핸들을 제공하는 방법도 있습니다. 백업을 위한 파일 핸들을 보려면 원본 애플리케이션의 관리 페이지를 열고 백업을 선택한 후 정보를 클릭하세요. 핸들이라는 라벨 옆에서 파일 핸들을 확인할 수 있습니다.

  6. 백업 정보 가져오기를 클릭합니다.
    핸들로 백업을 지정하지 않았다면 이때 나타나는 선택 페이지에 지정된 버킷에 사용 가능한 백업이 표시됩니다. 원하는 백업을 선택하고 다음 중 하나를 클릭합니다.

    • 백업 목록에 추가: 이 백업을 애플리케이션에 사용 가능한 백업 목록에 보관하려는 경우
    • 백업에서 복원: 이 백업에서 복원하되 애플리케이션에 사용 가능한 백업 목록에는 표시하지 않으려는 경우
  7. 표시되는 안내 페이지에 체크박스와 함께 항목 목록이 제공됩니다. 기본적으로는 모든 항목이 복원됩니다. 복원하지 않으려는 각 항목 옆에 있는 체크박스의 선택을 해제합니다.

  8. 또한 안내 페이지에서 복원 작업에 사용되는 기본 대기열과 사전 구성된 성능 설정을 확인할 수 있습니다. 다른 대기열 성능 특성이 필요한 경우에는 다르게 구성한 다른 대기열로 변경합니다.

  9. 복원을 클릭하여 복원을 시작합니다. 작업 상태 페이지가 표시됩니다.

  10. Cloud Datastore 쓰기를 사용 중지한 경우 복원이 완료되면 다시 사용 설정합니다.

리소스 사용량 보기

지나치게 빈번한 백업은 비용 증가로 이어지기 쉽습니다. Cloud Datastore 관리자 작업을 실행하면 실제로는 기본 MapReduce 작업을 실행하게 됩니다. MapReduce 작업은 저장소 작업과 저장소 사용량에 더해 프런트엔드 인스턴스 시간까지 늘립니다.

리소스 사용량을 보려면 다음을 수행하세요.

  1. Google Cloud 콘솔 App Engine 페이지를 방문합니다.

    App Engine 페이지로 이동

  2. 페이지 상단의 풀다운 메뉴를 사용하여 default 서비스 및 ah-builtin-python-bundle 버전을 선택합니다.

데이터베이스 쓰기 사용 설정 또는 중지

일반적으로는 복원 전에 쓰기를 중지하는 것이 좋습니다. 이렇게 하면 데이터베이스에 기록된 신규 데이터와 복원 데이터 간의 충돌을 방지할 수 있습니다.

쓰기를 사용 중지하면 다음 수단을 통한 항목 변경이 방지됩니다.

  • Datastore 뷰어
  • Datastore API를 사용하는 애플리케이션

쓰기를 사용 설정 또는 중지하려면 다음 안내를 따르세요.

  1. 관리 페이지로 이동합니다.

    관리 페이지로 이동

  2. 쓰기를 사용 설정하려면 쓰기 사용 설정을 클릭하고, 쓰기를 사용 중지하려면 쓰기 사용 중지를 클릭합니다. 프로젝트 상태에 따라 버튼 텍스트가 달라집니다.

Datastore 관리자 리소스 사용량 보기

Datastore 관리자 작업을 실행하면 실제로는 기본 맵리듀스 작업을 실행하게 됩니다. 맵리듀스 작업은 Storage 작업과 Storage 사용량에 더해 프런트엔드 인스턴스 시간까지 늘립니다.

리소스 사용량을 보려면 다음을 수행하세요.

  1. Google Cloud 콘솔 App Engine 페이지를 방문합니다.

    App Engine 페이지로 이동

  2. 페이지 상단의 풀다운 메뉴를 사용하여 default 서비스 및 ah-builtin-python-bundle 버전을 선택합니다.

Datastore 관리자 액세스 권한 사용 중지

  1. PROJECT_ID를 Google Cloud 프로젝트의 ID로 바꾸는 다음 명령어를 실행합니다.

    curl -X DELETE -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    https://appengine.googleapis.com/v1/apps/PROJECT_ID/services/default/versions/ah-builtin-python-bundle