Я установил инстанс Amazon Elastic Compute Cloud (EC2) на AWS для запуска Jupyter Notebook на графическом процессоре в рамках моего исследования с помощью Udacity Deep Learning Nano Degree. Я делюсь с вами своими заметками, чтобы помочь с настройкой на тот случай, если вы решите выбрать AWS для запуска Jupyter Notebook на графическом процессоре в облаке. Взгляните на мой пост о Floydhub здесь, а дальше я напишу о настройке в Google Cloud.

Резюме высокого уровня

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

  1. Войдите в Amazon AWS, затем перейдите в консоль EC2.
  • Изменить регион на Восток США (Северная Вирджиния)
  • Увеличьте пределы обслуживания для типа экземпляра p2.xlarge (по умолчанию 0)

2. Создайте экземпляр и настройте образ и тип экземпляра.

3. Настройте группу безопасности для настройки порта 8888 для доступа к записной книжке Jupyter.

4. Создайте пару ключей для аутентификации.

5. Запустите экземпляр из консоли EC2, а затем подключитесь к экземпляру через командную строку с файлом .pem и IP-адресом экземпляра.

7. Настройте параметры Jupyter Notebook.

8. Загрузите исходный код и установите все необходимые инструменты, такие как Keras, Tensorflow и т. Д.

9. Запустите Jupyter Notebook, выполните свою работу, а затем не забудьте остановить экземпляр, когда закончите.

Подробный шаг за шагом

Вот подробные шаги, которые я предпринял:

Войдите в AWS

Войдите на сайт aws.amazon.com (зарегистрируйтесь с учетной записью AWS, если у вас ее еще нет), затем

  • Изменить регион на Восток США (Северная Вирджиния)
  • Просмотрите пределы обслуживания EC2 - нажмите на панель управления EC2 / EC2 / Лимиты или перейдите по этой ссылке https://console.aws.amazon.com/ec2/
  • Найдите тип экземпляра p2.xlarge, нажмите «Запросить увеличение лимита» и установите для него значение 1 или число больше 1.

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

Настроить экземпляр - выбрать изображение

Вернитесь в консоль управления EC2,

  • Щелкните раскрывающийся список рядом с кнопкой «Запустить экземпляр».
  • Выберите «Запустить экземпляр». (Обратите внимание, что даже если там написано «Запустить экземпляр», вы не сможете запустить его, пока не зададите образ экземпляра, тип экземпляра и т. Д. И не завершите все шаги настройки, указанные ниже.)

  • Нажмите AWS Marketplace.
  • Найдите Deep Learning AMI с исходным кодом (CUDA 8, Ubuntu) и нажмите «Выбрать».

Настроить экземпляр - выбрать тип экземпляра

  • После этого я вижу окно с подробностями о ценах с очень длинным списком, в котором я не уверен, каков порядок сортировки, и не вижу в списке p2.xlarge. Поэтому я просто нажимаю «Продолжить».
  • Фильтр по «вычислениям на графическом процессоре»
  • Выберите type = p2.xlarge

  • Нажмите «Обзор и запуск», после чего вы перейдете к шагу 7. Просмотр

Далее нам нужно настроить группу безопасности.

Настроить экземпляр - настроить группу безопасности

Нажмите «Изменить группы безопасности» на вкладке «шаг 7. Обзор» или нажмите вкладку 6. «Настроить группу безопасности». Обратите внимание, что для доступа к записной книжке Jupyter необходимо настроить разрешение на доступ к порту 8888.

Итак, добавьте новое правило следующим образом:

  • Тип = Пользовательский TCP
  • Протокол = TCP
  • Диапазон портов = 8888
  • Источник = Где угодно

Затем нажмите Обзор и запуск, после чего вы снова перейдете к «шагу 7. Обзор».

Запустить экземпляр-создать пару ключей для аутентификации

  • Нажмите Запустить.
  • Вам будет предложено выбрать или создать новую пару ключей.
  • Выберите «создать новую пару ключей», если у вас ее еще нет, и дайте ей имя.

  • Нажмите кнопку Загрузить пару ключей, после чего будет загружен файл .pem.
  • Нажмите «Запустить экземпляр», и теперь ваш экземпляр наконец-то запускается!
  • (Необязательно) нажмите на оповещения о выставлении счетов, чтобы настроить оповещения по электронной почте.

Войти в экземпляр

Когда статус Проверки изменится с «инициализация» на «2/2 проверки», экземпляр готов к входу в систему. Перейдите туда, где находится файл .pem, и в терминале введите команду для подключения к вашему экземпляру AWS:

ssh -i [key-name].pem ubuntu@[xx.xx.xxx.xx]

Если вы получите такую ​​ошибку:

Permissions 0644 for ‘key-name.pem’ are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key “[key-name].pem”: bad permissions
[email protected]: Permission denied (publickey)

Затем обновите разрешение .pem следующим образом:

chmod 400 key-name.pem

Попробуйте подключиться еще раз:

ssh -i [key-name].pem ubuntu@[xx.xx.xxx.xx]

Надеюсь, теперь вы подключены к своему экземпляру AWS EC2.

Настройте параметры записной книжки Jupyter

При подключении к вашему экземпляру ASW на типе терминала

jupyter notebook --generate-config

Тогда вы увидите -

Writing default config to: /home/ubuntu/.jupyter/jupyter_notebook_config.py

Используйте экземпляр

  • Источник клонирования
  • Установите или обновите любые необходимые инструменты: Numpy, Keras, tensorflow и т. Д.
  • Запустите Jupyter Notebook из командной строки
jupyter notebook --ip=0.0.0.0 --no-browser 
  • Скопируйте / запатентовайте URL-адрес в браузере, но замените 0.0.0.0 раньше: 8888 на IP-адрес вашего экземпляра (общедоступный IP-адрес Ipv4)

Остановить экземпляр

Обязательно остановите экземпляр, чтобы избежать зарядов!

Нажмите Действия / Состояние экземпляра / Остановить, чтобы остановить экземпляр.

Примечание. Если в будущем экземпляр вам вообще не понадобится, не забудьте завершить его, чтобы не взимать плату за хранилище (том EBS).

Запустите экземпляр снова

Теперь, когда я выполнил всю настройку, вот как снова запустить экземпляр после его остановки. Эти шаги повторяют некоторые из предыдущих шагов, без единовременной начальной настройки / конфигурации и т. Д.

Войдите в консоль AWS EC2, щелкните экземпляры, выберите свой экземпляр, затем

  • Нажмите Действия / Состояние экземпляра / Пуск.
  • Подождите, пока состояние не изменится с инициализации на «2/2 проверки», затем запишите IP-адрес экземпляра.
  • В терминале используйте команду для входа в систему ssh -i [имя-ключа] .pem ubuntu @ [xx.xx.xxx.xx]
  • Перейдите к исходному коду
  • Запустите ноутбук jupyter-
jupyter notebook --ip=0.0.0.0 --no-browser
  • Скопируйте / запатентовайте URL-адрес в браузере, но замените 0.0.0.0 ранее: 8888 на IP-адрес вашего экземпляра (общедоступный IP-адрес Ipv4)

Использованная литература: