Затрудняетесь с ИИ или разработкой полного стека? Наши эксперты готовы помочь вам: индивидуальные консультации, техническая интеграция и многое другое. Обращайтесь по адресу [email protected].

Настройка удаленной среды разработки на сервере AWS с помощью VSCode

Summary

Этот курс посвящен настройке удаленных сред разработки (также известных как "удаленные интерпретаторы"), позволяющих кодировать локально, но выполнять код на удаленном сервере.

Удаленные среды разработки имеют ряд существенных преимуществ:

В этом видео мы покажем, как создать экземпляр сервера на AWS EC2, а затем настроить удаленную среду разработки в VSCode.

Вот структура курса:

Transcript

Здравствуйте, это Джулиен Салинас из компании NLP Cloud.

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

Никаких предварительных требований к этому курсу нет, так что приступаем.

Что мы подразумеваем под удаленной средой разработки? Фактически это означает, что мы будем кодить локально в VS Code, как большинство из нас сегодня.

Если вы используете другую среду разработки, то вам следует проверить, поддерживаются ли удаленные интерпретаторы или удаленные среды разработки, и мы действительно выполним код удаленно на экземпляре AWS.

Сегодня мы выбрали AWS, поскольку я знаю, что большинство из вас используют AWS в повседневной работе, но если вы используете GCP, Azure, OVH, Scaleware или что-то еще, процесс будет очень похожим.

Как вы увидите, речь пойдет об инициализации экземпляра, получении IP-адреса и его локальном использовании в VS Code для подключения к экземпляру по SSH.

Почему мы используем удаленную среду разработки? Первая причина заключается в том, что мы хотим снизить стоимость нашей локальной среды разработки.

Возможно, вы не захотите приобретать очень дорогой высококлассный MacBook Pro Ultra M2, например, и в этом случае вам будет выгоднее приобрести локальную машину более низкого класса, но выполнять свой код удаленно, когда вам это необходимо.

Вторая очень важная причина, особенно для инженеров машинного обучения, заключается в том, что иногда требуется доступ к высокопроизводительному оборудованию, например, к GPU, а такое оборудование не всегда доступно на локальной машине.

Например, если вы хотите получить доступ к графическому процессору NVIDIA A100 или H100, то наверняка вы не сможете получить доступ к таким GPU локально.

Это, как мы сегодня покажем, очень полезно, поскольку в противном случае вы просто не сможете получить доступ к специальным машинам для разработки GPU.

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

И если завтра вам понадобится установить, скажем, другую версию драйверов NVIDIA, инструментария CUDA или библиотек Python и т.п., то вам достаточно будет выделить второй сервер, и вы будете абсолютно уверены, что оба сервера не будут мешать друг другу.

Обе конфигурации будут идеально изолированы.

Поэтому, конечно, можно добиться аналогичных результатов с помощью Docker или даже виртуальных сред, например, в Python.

Но представьте, что вы хотите установить несколько версий драйверов NVIDIA.

Это будет гораздо сложнее.

И в этом случае инициализация нескольких удаленных сред может оказаться единственным решением для вас.

Итак, первое, что мы сейчас сделаем, это подключимся к нашей консоли AWS и создадим базовый экземпляр AWS, экземпляр CPU, а затем будем использовать его локально из VS Code.

Вот так.

Теперь я нахожусь в консоли AWS.

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

Я не думаю, что они запрашивают слишком много информации.

И теперь вы можете создать экземпляр в EC2.

Нажмем кнопку запуска экземпляра.

Мы можем дать имя нашему экземпляру.

Назовем ее, например, dev environment.

Ок.

Теперь о главном.

Нам необходимо выбрать операционную систему для нашего экземпляра.

Вы действительно хотите выбрать Linux, и, насколько я понимаю, мне очень нравится Ubuntu, потому что она стандартная, и я уверен, что самые последние драйверы будут установлены на Ubuntu, особенно с драйверами NVIDIA, это может действительно помочь.

Поэтому я выбрал здесь Ubuntu.

Если вы впервые используете Linux, не беспокойтесь.

Нам не понадобится слишком много приемов и команд Linux.

В основном мы будем делать все из кода VS, за исключением того, что, конечно, за капотом будет Linux, но я не думаю, что это будет для вас большой проблемой.

Версию 2204 LTS можно оставить как есть.

А сейчас мы выберем простой экземпляр процессора.

Например, на AWS у вас есть экземпляр M5, M5 large, два процессора, восемь гигов памяти.

Идеально подходит для нас.

Может быть, даже слишком много для сегодняшнего дня, но в будущем вам придется выбирать экземпляр, идеально соответствующий вашим потребностям.

Ок.

Теперь нам необходимо использовать пару ключей SSH.

Поэтому, если вы впервые используете здесь SSH, вам необходимо создать свою собственную пару ключей на AWS, create new key pair.

Назовем ее тестовой парой ключей.

Вы можете выбрать формат PEM, создать пару ключей.

И сейчас я скачиваю его, извините, на своем аппарате.

Ок.

Изменять группу безопасности здесь не нужно.

По умолчанию порт SSH будет открыт, что вполне нормально.

Это то, что нам нужно.

Восемь гигов SSD - идеальный вариант на сегодняшний день.

И мы можем нажать кнопку запуска экземпляра.

Ок.

Теперь экземпляр готов.

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

Я точно не знаю.

Для очень дорогих экземпляров, например экземпляров с GPU, необходимо запросить увеличение квоты.

Для простого экземпляра M5 я не уверен.

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

Вот наш пример.

Как видите, он уже запущен.

Это было очень быстро.

M5 большой.

А здесь, справа, указан IP-адрес, который мы будем использовать.

Теперь, когда мы создали наш экземпляр и загрузили пару ключей SSH на нашу машину, нам остается открыть VS Code и создать SSH-соединение с нашим удаленным сервером.

Если вы впервые используете SSH-клиент под Windows, его необходимо активировать.

Вот руководство от команды Windows о том, как это сделать.

Достаточно набрать в Google "Создать SSH-клиент под Windows", и вы найдете множество обучающих материалов.

Вот официальная версия.

Если пролистать немного вниз, то все очень просто.

Необходимо просто активировать что-либо в приложениях Windows.

Если вы работаете в Linux, то он установлен по умолчанию.

Теперь я нахожусь в VS Code.

В левом нижнем углу вы видите вот эту кнопку.

Я нажимаю кнопку подключения текущего окна к хосту.

Если вы впервые используете этот модуль удаленного подключения, то, возможно, VS Code собирается загрузить плагин.

Поэтому доступ к этой функции может занять несколько секунд.

Я настраиваю хосты, нажимаю настроить хосты.

Сегодня я на Windows, поэтому вот где находится моя конфигурация.

А вот здесь находится конфигурационный файл, который мне нужно заполнить.

Итак, самое главное - нам нужно получить IP-адрес нашего экземпляра и вставить его сюда.

Идеально.

Мы можем дать имя нашей связи, но это только для нас.

Назовем ее DevHouse.

Имя пользователя - это имя пользователя, используемое SSH-клиентом для подключения к экземпляру.

Учитывая, что мы выделили сервер Ubuntu, имя пользователя по умолчанию будет Ubuntu.

И когда я загрузил пару ключей, пару ключей SSH, я поместил ее на свой рабочий стол в Windows.

Именно здесь VS Code собирается получить ключ.

Вы можете сохранить файл и теперь, щелкнув внизу, снова подключить текущее окно к хосту.

DevHouse - это то, что мы только что создали.

Вам придется подождать здесь.

Очень хорошо.

Видно, что VS Code запрашивает обмен ключами.

Так что да, мы впервые подключаемся к этому экземпляру.

Поэтому в целях безопасности мы должны принять этот новый отпечаток пальца.

Хорошо.

Казалось бы, ничего особенного, но теперь мы действительно находимся на нашем удаленном экземпляре AWS.

И это видно, потому что слева внизу вы видите SSH.

Для проверки можно открыть терминал в верхней части, нажав кнопку новый терминал.

И здесь видно, что этот терминал совершенно не является терминалом моей локальной машины Windows.

Я нахожусь на машине Ubuntu.

И если я захочу, я могу использовать некоторые команды Linux, как обычно в Linux, например, list directories.

У нас здесь ничего нет, поэтому мы можем создать каталог.

Допустим, мы хотим создать среду разработки для проведения нескольких тестов.

И теперь у нас здесь создана новая папка test.

Либо вы хотите делать все с помощью командной строки, либо, что еще лучше, использовать графический интерфейс VS Code для просмотра файла, как обычно.

Итак, щелкните вверху, откройте папку.

А здесь вы видите только что созданный мною тестовый каталог.

Теперь VS Code открывается снова, но на этот раз в конкретной папке, о которой я упоминал.

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

Так что давайте попробуем.

Например, создадим простую Python-программу, говорящую hello, new file, test.py, print, hello

Сохраните файл.

И теперь в консоли мы можем выполнить этот файл.

Здравствуйте.

Итак, вы только что успешно выполнили свой первый удаленный код на AWS.

На сегодня это все.

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

Не забывайте отключать экземпляр AWS, если он вам больше не нужен.

И до скорой встречи.