В современном быстро развивающемся технологическом ландшафте облачные вычисления стали важным инструментом для многих разработчиков, специалистов по обработке данных и исследователей. Запуск ресурсоемких приложений, таких как Jupyter Notebook, в облаке дает множество преимуществ, включая масштабируемость, гибкость и экономическую эффективность. В этом руководстве мы покажем вам процесс настройки Jupyter Notebook на экземпляре Ubuntu EC2 в Amazon Web Services (AWS), от создания экземпляра до настройки всего, что вам нужно.

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

Создайте экземпляр Ubuntu EC2

  1. Войти в консоль AWS. Войдите в свою учетную запись AWS и перейдите на панель управления EC2.
  2. Запустить экземпляр: нажмите кнопку «Запустить экземпляр», чтобы начать процесс создания экземпляра.
  3. Укажите имя: дайте вашему экземпляру имя (например, «Мой сервер Jupyter»).
  4. Выберите образ компьютера Amazon (AMI): выберите AMI сервера Ubuntu, который соответствует вашим потребностям (например, Ubuntu Server 22.04 LTS).
  5. Выберите тип экземпляра. Выберите тип экземпляра в соответствии с вашими требованиями. Для запуска Jupyter Notebook экземпляра общего назначения, такого как c5.large, должно быть достаточно для небольших проектов. Если вам нужен графический процессор, я рекомендую экземпляры G5 (например, g5.xlarge), которые включают графические процессоры NVIDIA A10G.
  6. Назначить пару ключей. Выберите существующую пару ключей или создайте новую. Этот ключ будет использоваться для доступа к вашему экземпляру через SSH. Если вы его создаете, не забудьте скачать и сохранить его в надежном месте.
  7. Назначить группу безопасности: выберите существующую группу безопасности или создайте ее. Убедитесь, что вы разрешили доступ по SSH (порт 22) и доступ к Jupyter Notebook (порт 8888).
  8. Добавить хранилище. Настройте объем хранилища, необходимый для вашего экземпляра. Для проектов Jupyter Notebook может потребоваться значительный объем памяти при работе с большими наборами данных.
  9. Просмотр и запуск: дважды проверьте конфигурацию экземпляра и запустите его.

Подключитесь к экземпляру EC2

  1. Найти экземпляр. После запуска экземпляра запишите его общедоступный IP-адрес или DNS-имя.
  2. Доступ по SSH: откройте терминал и используйте SSH для подключения к вашему экземпляру. Замените your-key.pem на путь к файлу вашего закрытого ключа, а your-instance-ip — на фактический IP-адрес:
ssh -i "your-key.pem" ubuntu@your-instance-ip

Установите необходимые пакеты

  1. Обновление пакетов: обновите репозиторий пакетов и обновите установленные пакеты:
sudo apt update 
sudo apt upgrade -y

2. Установить Python. Если он еще не установлен, установите Python и pip:

sudo apt install python3 python3-pip -y

3. Установить Jupyter Notebook. Установите Jupyter Notebook с помощью pip:

pip3 install jupyter

Настройка блокнота Jupyter

  1. Создать файл конфигурации. Создайте файл конфигурации Jupyter:
jupyter notebook — generate-config

2. Редактировать конфигурацию: откройте файл конфигурации для редактирования:

nano ~/.jupyter/jupyter_notebook_config.py

3. Настроить IP и порт. Найдите строки, определяющие IP-адрес и порт, которые Jupyter Notebook должен прослушивать, и измените их следующим образом:

c.NotebookApp.ip = ‘0.0.0.0’
c.NotebookApp.port = 8888

4. Настройка пароля. Создайте хэш пароля для защиты вашего блокнота Jupyter, а затем скопируйте сгенерированный хеш:

from notebook.auth import passwd
passwd()

5. Настроить пароль. В файле конфигурации найдите строку, начинающуюся с # c.NotebookApp.password, и замените ее на:

c.NotebookApp.password = ‘your-generated-hash’

Установите и настройте Nginx (необязательно)

  1. Установить Nginx. Установите веб-сервер Nginx, который будет работать в качестве обратного прокси-сервера для Jupyter Notebook.
sudo apt install nginx -y

2. Создать конфигурацию Nginx. Создайте новый файл конфигурации Nginx:

sudo nano /etc/nginx/sites-available/jupyter

3. Настройте Nginx. Добавьте следующую конфигурацию, заменив your-domain своим доменом или общедоступным IP-адресом:

server {
  listen 80;
  server_name your-domain;
  
  location / {
    proxy_pass http://127.0.0.1:8888;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}

4. Включить конфигурацию. Создайте символическую ссылку, чтобы включить конфигурацию и перезапустить Nginx:

sudo ln -s /etc/nginx/sites-available/jupyter /etc/nginx/sites-enabled
sudo systemctl restart nginx

Теперь порт 8888 будет перенаправлен на порт 80. Это означает, что вы сможете получить доступ к Jupyter Notebook через порт 80.

Запустить блокнот Jupyter

  1. Запустить Jupyter Notebook. Запустите Jupyter Notebook на экземпляре EC2:
jupyter notebook

2. Доступ к Jupyter Notebook. Откройте веб-браузер и перейдите к общедоступному IP-адресу или домену вашего экземпляра EC2 с портом (http://your-domain:8888 или http://your-domain, если вы настроили Nginx).

3. Войти: введите пароль, который вы установили ранее.

Поздравляем! Теперь у вас есть Jupyter Notebook, работающий на экземпляре Ubuntu EC2 в облаке. Эта установка позволяет вам работать над проектами по обработке данных, задачами машинного обучения и многим другим, используя гибкость и масштабируемость облачных вычислений. Не забывайте управлять ресурсами вашего экземпляра и настройками безопасности в соответствии с требованиями вашего проекта.