минимизировать стоимость загрузки очень большого файла tar в Google Cloud Storage - PullRequest
0 голосов
/ 15 ноября 2018

В настоящее время я пытаюсь загрузить, а затем распаковать очень большой файл (1,3 ТБ) в Google Cloud Storage по самой низкой цене.

Сначала я думал о создании действительно дешевого экземпляра только для загрузки файла ипоместите его в корзину, затем создайте новый экземпляр с достаточным объемом оперативной памяти, чтобы распаковать файл, а затем поместите результат в новую корзину.Однако, так как цена корзины зависит от количества запросов ввода-вывода, я не уверен, что это лучший вариант, и даже для производительности он может быть не лучшим.

Какая была бы лучшая стратегия для распаковкифайл самым дешевым способом?

1 Ответ

0 голосов
/ 15 ноября 2018

Сначала некоторая справочная информация о ценах:

У Google есть довольно хорошая документация о том, как вводить данные в GCS. Из этого руководства:

Сегодня, когда вы перемещаете данные в облачное хранилище, плата за входящий трафик не взимается. Инструмент gsutil и служба передачи хранилища предоставляются бесплатно. См. Страницу с информацией о ценах в сети GCP, чтобы получить самую свежую информацию о ценах.

«Страница сетевых цен» просто говорит:

[Тип трафика: входящий] Цена: бесплатно, если нет ресурса, такого как балансировщик нагрузки, который обрабатывает входящий трафик. Ответы на запросы считаются исходящими и оплачиваются.

На странице цен GCS содержится дополнительная информация о вашей идее использования виртуальной машины GCE для записи в GCS:

Нет платы за доступ к данным в ваших облачных хранилищах, если вы делаете это с другими сервисами GCP в следующих сценариях:

  • Ваше ведро и служба GCP расположены в одном и том же мультирегиональном или региональном местоположении. Например, доступ к данным в корзине asia-east1 с экземпляром asia-east1 Compute Engine.

Начиная с позже на этой же странице , также есть информация о ценах до запроса:

Операции класса A: хранение. *. Insert [1]

[1] Простая, многокомпонентная и возобновляемая загрузка с использованием JSON API каждая считается одной операцией класса A.

Стоимость для операций класса A составляет 10 000 операций и составляет 0,05 или 0,10 долл. США в зависимости от типа хранилища. Я полагаю, что вы выполняете только 1 операцию класса A (или самое большее, 1 операцию класса A на файл, который вы загружаете), так что это, вероятно, не увеличит общий объем использования.


Теперь ответим на ваш вопрос:

В вашем случае это звучит так, как будто вы хотите, чтобы файлы в архиве были отдельными файлами в GCS (в отличие от простого хранения большого архива в одном файле в GCS). Первый шаг - это распаковать его где-нибудь, а второй шаг - использовать gsutil cp, чтобы скопировать его в GCS.

Если вам не нужно (т. Е. Недостаточно места на машине, на которой сейчас находится тарбол), я бы не рекомендовал копировать тарбол на промежуточную виртуальную машину в GCE перед загрузкой в ​​GCE по двум причинам:

  1. gsutil cp уже обрабатывает множество раздражающих крайних случаев для вас: параллельные загрузки, возобновление загрузки в случае сбоя в сети, повторные попытки, сравнение контрольной суммы и т. Д.
  2. Использование любых виртуальных машин GCE увеличит стоимость всей операции копирования - затраты на диски плюс затраты на сами виртуальные машины.

Если вы хотите сначала попробовать процедуру с чем-то менее рискованным, создайте небольшой каталог с несколькими мегабайтами данных и несколькими файлами и используйте gsutil cp, чтобы скопировать его, а затем проверьте, сколько вам за это было предъявлено. , Со страницы цен GCS:

Сборы начисляются ежедневно, но Cloud Storage выставляет вам счета только в конце расчетного периода. Вы можете просмотреть неоплаченное использование на странице оплаты вашего проекта в консоли Google Cloud Platform.

Так что вам просто нужно подождать день, чтобы увидеть, сколько вам было выставлено.

...