Я установил инстанс Amazon Elastic Compute Cloud (EC2) на AWS для запуска Jupyter Notebook на графическом процессоре в рамках моего исследования с помощью Udacity Deep Learning Nano Degree. Я делюсь с вами своими заметками, чтобы помочь с настройкой на тот случай, если вы решите выбрать AWS для запуска Jupyter Notebook на графическом процессоре в облаке. Взгляните на мой пост о Floydhub здесь, а дальше я напишу о настройке в Google Cloud.
Резюме высокого уровня
Прежде чем углубляться в детали, полезно увидеть общий обзор настройки, чтобы получить представление о том, что происходит, тем более, что настройка состоит из множества этапов. Итак, вот сводка настройки:
- Войдите в 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)
Использованная литература:
- Udacity Deep Learning Nano степень, Часть 3 CNN, Урок 2 CNN, Раздел 1 Облачные вычисления
- Запуск ноутбуков Jupyter на GPU на AWS: руководство для начинающих