EC2-Bereitstellung mit Vagrant + Jupyter (IPython Notebook) auf Docker

Überblick

(Erste Hälfte) EC2-Bereitstellung mit Vagrant (Zweite Hälfte) Starten Sie Jupyter (IPython Notebook) mit Docker

Ich werde zum ersten Mal an Qiita schreiben. Während der Neujahrsferien habe ich versucht, von Grund auf neu zu lernen und hoffentlich TensorFlow und den Aufbau von Umgebungen zu studieren ... Es ist eine Einführung, die auch als Memorandum dient. Da die erste und zweite Hälfte dieser Zeit unabhängig voneinander sind, ist es meines Erachtens möglich, nur auf eine davon Bezug zu nehmen.

:)

:(

Bauverfahren

Als Voraussetzung

Wird benötigt.

Ich denke, das wird hilfreich sein.

(Erste Hälfte) EC2-Bereitstellung mit Vagrant

Informationen zum Konfigurieren der Einstellungen finden Sie auf der GitHub-Seite von HashiCorp: Vagrant AWS Provider.

Installieren Sie zunächst das Plug-In, um AWS zu verwenden.

$ vagrant plugin install vagrant-aws

Es ist eine BOX, die einem Maschinenabbild entspricht, aber da eine Dummy-Box für EC2 für die Öffentlichkeit zugänglich ist, werden wir diese verwenden. (Offiziell ist der Boxname Dummy, aber er ist etwas vage, deshalb habe ich ihn in ec2 geändert.)

$ vagrant box add ec2 https://github.com/mitchellh/vagrant-aws/raw/master/dummy.box

Wechseln Sie als Nächstes in das Arbeitsverzeichnis und erstellen Sie eine Vagrant-Datei.

$ mkdir jupyter_ec2
$ cd jupyter_ec2
$ vim Vagrantfile

Bearbeiten Sie die Vagrant-Datei und stellen Sie verschiedene Parameter ein. Dieses Mal wird der Start mit der zuvor erstellten VPC angegeben.

Es scheint, dass es noch einige andere Parameter gibt. Wenn Sie diese angeben möchten, können Sie README oder AWS API Document verwenden. Ich denke, es ist besser, sich darauf zu beziehen).

Vagrantfile


Vagrant.configure("2") do |config|
  config.vm.box = "ec2" # dummy box name

  config.vm.provider :aws do |aws, override|
    #AWS-Berechtigungsnachweis
    aws.aws_dir = ENV['HOME'] + "/.aws/"
    aws.aws_profile = "YOUR_PROFILE"
    aws.keypair_name = "YOUR_AWS_ACCESS_KEY"
    
    #SSH-Berechtigungsnachweis
    override.ssh.username = "ec2-user"
    override.ssh.private_key_path = "SSH_KEY_PATH"

    #VPC-Einstellungen
    aws.region = 'ap-northeast-1'
    aws.availability_zone = 'ap-northeast-1a'
    aws.subnet_id = 'subnet-XXXXXXXX'
    aws.security_groups = 'sg-XXXXXXXX'

    #EC2-Einstellungen
    aws.ami = "ami-9f0c67f8" # Amazon Linux 2016.09.01
    aws.instance_type = 'm4.large'
    aws.elastic_ip = true
    aws.associate_public_ip = true
    aws.tags = { 'Name' => 'NAME_TAGS_VALUE' }

    #EBS-Einstellungen
    aws.block_device_mapping = [
      {
        'DeviceName' => "/dev/xvda",
        'Ebs.VolumeSize' => 50,
        'Ebs.DeleteOnTermination' => true,
        'Ebs.VolumeType' => 'standard',
      }
    ]
  end
end

Starten Sie nach der Bearbeitung EC2.

$ vagrant up --provider=aws

Wenn es nicht funktioniert,

$ export VAGRANT_LOG=DEBUG

Führen Sie danach "vagrant up" erneut aus und es wird eine detaillierte Fehlermeldung angezeigt.

Wenn Sie die Fehlermeldung export VAGRANT_LOG = WARN rückgängig machen möchten

Stellen Sie sicher, dass die Sicherheitsgruppe SSH auch ordnungsgemäß geöffnet ist. Wenn die Obergrenze nicht gelockert wird, wird die Obergrenze der Anzahl der EIPs tendenziell erfasst.

Wenn es fertig ist zu starten

$ vagrant ssh

Überprüfen Sie, ob Sie sich mit SSH anmelden können.

$ vagrant halt

Sie können die Instanz mit stoppen. Wenn Sie also nicht arbeiten, stoppen Sie sie entsprechend, um Geld zu sparen.

(Zweite Hälfte) Starten Sie Jupyter (IPython Notebook) mit Docker

Installieren Sie Docker zunächst auf EC2 unter Installieren von Docker.

$ sudo yum update -y
$ sudo yum install -y docker

Starten Sie den Docker-Daemon so, dass er auch nach dem Neustart der Instanz automatisch gestartet wird.

$ sudo service docker start
$ sudo chkconfig docker on

Fügen Sie der Docker-Gruppe ec2-user hinzu, damit Sie Docker-Befehle ohne Sudo-Berechtigungen hinzufügen können.

$ sudo usermod -a -G docker ec2-user

Sobald Sie beenden und sich erneut anmelden, startet Docker ohne Sudo.

Beschreiben Sie als Nächstes die Docker-Datei.

$ vim Dockerfile

Dieses Mal werden wir der Einfachheit halber TensorFlow basierend auf dem Image von Anaconda installieren. Geben Sie in CMD an, dass jupyter beim Docker-Lauf gestartet werden soll.

FROM continuumio/anaconda:latest

RUN mkdir /opt/notebooks
RUN pip install tensorflow
# Another installations comes here.

CMD ["/opt/conda/bin/jupyter", "notebook", "--notebook-dir=/opt/notebooks", "--ip='*'", "--port=8888", "--no-browser"]

Erstellen Sie nach der Bearbeitung ein Containerbild aus der Docker-Datei.

$ docker build -t myjupyter .

Starten Sie zum Schluss den Container. Geben Sie das Volume an und mounten Sie es, damit das Notebook dauerhaft und von der Hostseite aus sichtbar ist. Die Option --restart bewirkt außerdem, dass der Docker-Daemon den Container automatisch startet, selbst nachdem die Instanz gestoppt / gestartet wurde.

$ mkdir notebooks
$ docker run -p 8888:8888 -v /home/ec2-user/notebooks:/opt/notebooks --restart=always myjupyter

Nachdem Sie die Kommunikation mit dem TCP-Port 8888 in der Sicherheitsgruppe zugelassen haben, greifen Sie mit einem Browser auf "[Elastic IP]: 8888" zu, um zu bestätigen, dass Jupyter gestartet wurde.


Nur wenn Sie damit lernen, lernen Sie im Browser mit "vagrant up", beenden Sie das Aufladen mit "vagrant halt" beim Beenden, erstellen Sie aus derselben Docker-Datei, wenn Sie es lokal versuchen möchten, portieren Sie einfach, wenn ipythonnb über Vagrant verwendet wird Es wurde eine Umgebung ...! Es sollte so sein, also werde ich es angemessen korrigieren, während ich Bücher studiere.

Recommended Posts

EC2-Bereitstellung mit Vagrant + Jupyter (IPython Notebook) auf Docker
Grafikzeichnung mit Jupyter (Ipython-Notizbuch) + Matplotlib + Vagabund
Spielen Sie mit Jupyter Notebook (IPython Notebook)
Führen Sie IPython Notebook auf Docker aus
Formatieren mit autopep8 auf Jupyter Notebook
Verwenden von Apache Spark mit Jupyter Notebook (IPython Notebook)
Verwenden Sie Jupyter Lab und Jupyter Notebook mit EC2
Probieren Sie SVM mit scikit-learn auf Jupyter Notebook aus
Reichhaltige Zellenausgabe mit Jupyter Notebook (IPython)
So debuggen Sie mit Jupyter oder iPython Notebook
Erstellen einer Analyseumgebung mit Docker (Jupyter Notebook + PostgreSQL)
Aktivieren Sie Jupyter Notebook mit conda auf dem Remote-Server
Probieren Sie Apache Spark mit Jupyter Notebook (auf Local Docker) aus
Erstellen einer R-Umgebung mit Jupyter (ehemals IPython-Notebook) (unter OS X El Capitan 10.11.3)
Aufbau einer virtuellen Umgebung mit Docker + Flask (Python) + Jupyter-Notebook
Überwachen Sie das Trainingsmodell mit TensorBord auf Jupyter Notebook
Richten Sie Docker unter Oracle Linux (7.x) mit Vagrant ein
[Windows] [Python3] Installieren Sie Python3 und Jupyter Notebook (ehemals Ipython Notebook) unter Windows
Aufbau einer Pepper-Kun-Fernbedienungsumgebung mit Docker + IPython Notebook
Parallele Berechnung mit iPython Notebook
Verwenden von Graphviz mit Jupyter Notebook
Verwenden Sie pip mit Jupyter Notebook
Anzeigen von Zeichenfolgen in IPython Notebook
Hohe Charts im Jupyter-Notizbuch
Verwenden Sie Cython mit Jupyter Notebook
Führen Sie Apache-Spark auf IPython Notebook aus
Führen Sie Jupyter Notebook unter Windows aus
Diagrammzeichnung mit IPython Notebook
Verwenden von Bokeh mit IPython Notebook
Tensorboard im Jupyter-Notebook auf Docker kann nicht angezeigt werden (gelöst)
Schreiben Sie Diagramme in Echtzeit mit Matplotlib auf dem Jupyter-Notizbuch
Versuchen Sie, mit einem gemischten Gaußschen Modell auf Jupyter Notebook zu gruppieren
Ermöglichen Sie externe Verbindungen mit dem Jupiter-Notebook
Forschungs- und Entwicklungsleben mit iPython Notebook
Visualisieren Sie den Entscheidungsbaum mit einem Jupyter-Notizbuch
Machen Sie einen Sound mit Jupyter Notebook
Löse verstümmelte japanische Zeichen in matplotlib von Jupyter Notebook auf Docker
So verwenden Sie das Jupyter-Notebook, ohne Ihre Umgebung mit Docker zu verschmutzen
Markdown mit Jupyter-Notebook verwenden (mit Verknüpfung)
Fügen Sie mit Jupyter Notebook weitere Kernel hinzu
Erstellen Sie eine IPython Notebook-Umgebung mit boot2docker
Bequeme Analyse mit Pandas + Jupyter Notebook
Installieren Sie Anaconda auf Ihrem Mac und laden Sie Ihr Jupyter (IPython) -Notebook in die Anaconda Cloud hoch
Versuchen Sie, Jupyter Notebook auf einem Mac auszuführen
Ich wollte ein Jupyter-Notebook mit Docker in einer Pip-Umgebung (Opticspy) verwenden.
So richten Sie ein Jupyter-Notebook am SSH-Ziel ein (AWS EC2)
Einstellungen zum Lesen von S3-Dateien mit Pandas aus Jupyter Notebook unter AWS
Links zum Umgang mit Jupyter-Notebooks unter Docker unter Ubuntu unter VirtualBox unter macOS mit SSH
Erstellen Sie mit Docker eine Jupyter Lab (Python) -Umgebung
IPython Notebook wird jetzt gerendert und auf GitHub angezeigt!
Ich möchte einen Blog mit Jupyter Notebook schreiben
Machen Sie Jupyter Notebook zu einem Dienst unter CentOS
Starten Sie das Jupiter-Notebook auf dem GPU-Server (Remote-Server).
Klonen Sie das Github-Repository auf dem Jupyter-Notizbuch
Verwendung des Jupyter-Notebooks mit ABCI
PC-GPU-Prüfung am Jupyter-Notebook
Histogramm / Streudiagramm auf Jupyter Notebook anzeigen
Verknüpfung von Python und JavaScript mit dem Jupiter-Notizbuch
HTML-Präsentation "LIVE" mit IPython 3.0.0-dev, IPython Notebook