Не удается подключиться к сетевому диску через EC2

python-3.x #amazon-web-services #amazon-ec2

#python-3.x #amazon-веб-сервисы #amazon-ec2

Вопрос:

Я пытаюсь подключиться к сетевому диску через EC2. Я использовал приведенный ниже скрипт python для извлечения данных с сетевого диска. Но он выдает ошибку как FileNotFoundError:нет такого файла в каталоге.

 import os
import boto3

s3=boto3.client('s3')
data_folder=os.path.join(os.getcwd(),'path of network drive')

for file in os.listdir(data_folder):
     s3.upload_file(os.path.join(data_folder,file),'s3 bucket',file)
 

Есть ли какой-либо способ подключения сетевого диска из EC2 или каких-либо сервисов AWS?

Комментарии:

1. Отладьте свой код. Начните с data_folder и затем os.path.join(data_folder,file) . На что они оценивают? Существуют ли эти папка и файл?

2. Эта папка является сетевым диском. Через EC2 код не может подключить его из-за VPC или любой другой проблемы.

3. Код Python здесь, вероятно, не имеет значения. Есть ли у вас какой-либо механизм для подключения и монтирования удаленного диска? Работает ли этот механизм? Из экземпляра EC2 можете ли вы перечислить папки и файлы на соответствующей точке монтирования после того, как этот диск был смонтирован на экземпляре EC2?

4. Нет, я не знаю, как монтировать на сервере EC2.

5. Если я подключу сетевой диск в local и запущу код в cmd, то он работает, но это очень медленный процесс. Использование EC2 сделало бы его быстрым и надежным, поскольку у меня огромное количество файлов на сетевом диске.

Ответ №1:

Я собираюсь сделать некоторые предположения, что:

  • У вас есть компьютер в корпоративной сети
  • Компьютер может получить доступ к сетевому диску в корпоративной сети
  • Вы можете копировать файлы с сетевого диска в корзину Amazon S3

Если это так, то вы можете использовать команду интерфейса командной строки AWS (CLI) aws s3 sync для копирования файлов с компьютера в корзину Amazon S3.

Если это не так, пожалуйста, отредактируйте свой вопрос, чтобы предоставить дополнительную информацию.

Комментарии:

1. Да, ваше предположение верно, и решение, которым вы поделились (AWS CLI), также верно. Но скорость миграции будет очень низкой, поскольку у нас есть огромный объем данных для переноса на s3.

2. Интерфейс командной строки AWS может загружать файлы параллельно. Вы можете отредактировать конфигурацию , чтобы оптимизировать доступную пропускную способность. Однако вашим основным ограничивающим фактором будет пропускная способность между вашей корпоративной сетью и Интернетом.

3. Если у вас «огромный» объем данных (например, 10 ТБ), вы можете использовать AWS Snowball для отправки данных на Amazon S3. Это физическое запоминающее устройство, которое отправляется в ваше местоположение. Затем вы можете скопировать на него данные и отправить их обратно в AWS.

4. На данный момент мы не можем использовать AWS snowball. Я пытаюсь смонтировать диск на ec2.Ниже приведена ссылка, по которой я следую. redhat.com/sysadmin/samba-windows-linux .

5. Есть ли у вас прямое подключение между вашей корпоративной сетью и AWS? Если нет, я бы посоветовал вам не пытаться подключить сетевой диск из вашей корпоративной сети к экземпляру Amazon EC2. Производительность будет довольно низкой.