Approvisionnement EC2 avec Vagrant + Jupyter (IPython Notebook) sur Docker

Aperçu

(Première moitié) Approvisionnement EC2 avec Vagrant (Deuxième moitié) Démarrez Jupyter (IPython Notebook) à l'aide de Docker

J'écrirai à Qiita pour la première fois. Pendant les vacances du Nouvel An, j'ai essayé Deep learning from scratch et j'espère étudier TensorFlow et étudier la construction de l'environnement ... , C'est une introduction qui sert également de mémorandum. Étant donné que la première et la seconde moitié de ce temps sont indépendantes, je pense qu'il est possible de se référer à un seul d'entre eux.

:)

:(

Procédure de construction

Comme prémisse

Est requis.

Je pense que ce sera utile.

(Première moitié) Approvisionnement EC2 avec Vagrant

Reportez-vous à la page GitHub de HashiCorp: Vagrant AWS Provider pour configurer les paramètres.

Tout d'abord, installez le plug-in pour utiliser AWS.

$ vagrant plugin install vagrant-aws

C'est une BOX équivalente à une image de machine, mais comme une boîte factice est ouverte au public pour EC2, nous allons l'utiliser. (Officiellement, le nom de la boîte est factice, mais il est un peu vague, alors je l'ai changé en ec2.)

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

Ensuite, accédez au répertoire de travail et créez un Vagrantfile.

$ mkdir jupyter_ec2
$ cd jupyter_ec2
$ vim Vagrantfile

Modifiez le fichier Vagrant et définissez divers paramètres. Cette fois, le démarrage avec le VPC créé à l'avance est spécifié.

Il semble y avoir pas mal d'autres paramètres, et si vous souhaitez les spécifier, vous pouvez utiliser READ ME ou AWS API Document. Je pense qu'il vaut mieux s'y référer).

Vagrantfile


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

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

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

    #Paramètres EC2
    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' }

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

Après l'édition, démarrez EC2.

$ vagrant up --provider=aws

Quand ça ne marche pas,

$ export VAGRANT_LOG=DEBUG

Après cela, réexécutez vagrant up et il affichera un message d'erreur détaillé.

Si vous souhaitez annuler le message d'erreur ʻexport VAGRANT_LOG = WARN `

Assurez-vous que le groupe de sécurité SSH est également ouvert correctement. Si la limite supérieure n'est pas relâchée, la limite supérieure du nombre d'EIP a tendance à être capturée.

Quand il a fini de démarrer

$ vagrant ssh

Vérifiez si vous pouvez vous connecter en SSH avec.

$ vagrant halt

Vous pouvez arrêter l'instance avec, donc lorsque vous ne travaillez pas, arrêtez-la si nécessaire pour économiser de l'argent.

(Deuxième moitié) Démarrez Jupyter (IPython Notebook) à l'aide de Docker

Tout d'abord, installez Docker sur EC2 en vous référant à Installation de Docker.

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

Démarrez le démon docker pour qu'il démarre automatiquement même après le redémarrage de l'instance.

$ sudo service docker start
$ sudo chkconfig docker on

Ajoutez ec2-user au groupe docker afin de pouvoir ajouter des commandes docker sans privilèges sudo.

$ sudo usermod -a -G docker ec2-user

Une fois que vous quittez et vous reconnectez, docker démarrera sans sudo.

Ensuite, décrivez le Dockerfile.

$ vim Dockerfile

Cette fois, dans un souci de simplicité, nous installerons TensorFlow basé sur l'image d'anaconda. Dans CMD, spécifiez que jupyter doit être démarré à docker run.

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"]

Après la modification, créez une image de conteneur à partir du Dockerfile.

$ docker build -t myjupyter .

Enfin, démarrez le conteneur. Spécifiez le volume et montez-le de manière à ce que le notebook puisse être rendu persistant et visible du côté hôte. De plus, l'option --restart oblige le démon docker à démarrer automatiquement le conteneur même après l'arrêt / le démarrage de l'instance.

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

Après avoir autorisé la communication sur le port TCP 8888 dans le groupe de sécurité, accédez à «[Elastic IP]: 8888» avec un navigateur pour confirmer que Jupyter a démarré.


Seulement lorsque vous étudiez avec cela, apprenez sur le navigateur avec vagrant up, arrêtez de charger avec vagrant halt lorsque vous quittez, construisez à partir du même Dockerfile lorsque vous voulez essayer localement, portage facile si ipythonnb est pris via Vagrant C'est devenu un environnement ...! Cela devrait être le cas, je vais donc le corriger le cas échéant en étudiant des livres.

Recommended Posts

Approvisionnement EC2 avec Vagrant + Jupyter (IPython Notebook) sur Docker
Dessin graphique avec jupyter (notebook ipython) + matplotlib + vagrant
Jouer avec Jupyter Notebook (IPython Notebook)
Exécutez IPython Notebook sur Docker
Formatage avec autopep8 sur le notebook Jupyter
Utilisation d'Apache Spark avec le notebook Jupyter (notebook IPython)
Utiliser Jupyter Lab et Jupyter Notebook avec EC2
Essayez SVM avec scikit-learn sur Jupyter Notebook
Sortie de cellule riche avec Jupyter Notebook (IPython)
Comment déboguer avec Jupyter ou iPython Notebook
Construire un environnement d'analyse avec Docker (jupyter notebook + PostgreSQL)
Activer Jupyter Notebook avec conda sur un serveur distant
Essayez Apache Spark avec Jupyter Notebook (sur Docker local
Création d'un environnement R avec Jupyter (anciennement notebook IPython) (sous OS X El Capitan 10.11.3)
Construction d'environnement virtuel avec Docker + Flask (Python) + notebook Jupyter
Surveiller le modèle d'entraînement avec TensorBord sur Jupyter Notebook
Configurer Docker sur Oracle Linux (7.x) avec Vagrant
[Windows] [Python3] Installer python3 et Jupyter Notebook (anciennement ipython notebook) sous Windows
Construction de l'environnement de contrôle à distance Pepper-kun avec Docker + IPython Notebook
Calcul parallèle avec le notebook iPython
Utilisation de Graphviz avec Jupyter Notebook
Utiliser pip avec Jupyter Notebook
Affichage des chaînes sur le notebook IPython
Graphiques élevés dans le notebook Jupyter
Utiliser Cython avec Jupyter Notebook
Exécutez Apache-Spark sur le notebook IPython
Exécutez Jupyter Notebook sous Windows
Dessin graphique avec IPython Notebook
Utilisation de Bokeh avec IPython Notebook
Impossible d'afficher le tensorboard dans le notebook Jupyter sur Docker (résolu)
Écrivez des graphiques en temps réel avec Matplotlib sur le notebook Jupyter
Essayez le clustering avec un modèle gaussien mixte sur Jupyter Notebook
Autoriser les connexions externes avec le notebook Jupyter
La vie de recherche et développement avec le notebook iPython
Visualisez l'arbre de décision avec le notebook Jupyter
Faites un son avec le notebook Jupyter
Résolvez les caractères japonais brouillés dans matplotlib de Jupyter Notebook sur Docker
Comment utiliser Jupyter Notebook sans polluer votre environnement avec Docker
Utiliser Markdown avec le notebook Jupyter (avec raccourci)
Ajouter plus de noyaux avec Jupyter Notebook
Créer un environnement de notebook IPython avec boot2docker
Analyse pratique avec Pandas + notebook Jupyter
Installez Anaconda sur votre Mac et téléchargez votre notebook Jupyter (IPython) sur Anaconda Cloud
Essayez d'exécuter Jupyter Notebook sur Mac
Je voulais utiliser le notebook jupyter avec docker dans l'environnement pip (opticspy)
Comment configurer un notebook Jupyter à la destination SSH (AWS EC2)
Paramètres de lecture de fichiers S3 avec des pandas depuis Jupyter Notebook sur AWS
Liens pour gérer les notebooks Jupyter sur Docker sur Ubuntu sur VirtualBox sur macOS avec SSH
Créer un environnement Jupyter Lab (Python) avec Docker
IPython Notebook est maintenant rendu et affiché sur GitHub!
Je veux écrire un blog avec Jupyter Notebook
Faire de Jupyter Notebook un service sur CentOS
Démarrez le notebook jupyter sur le serveur GPU (serveur distant)
Cloner le référentiel github sur le notebook Jupyter
Comment utiliser le notebook Jupyter avec ABCI
Vérification du GPU du PC sur le notebook Jupyter
Afficher l'histogramme / diagramme de dispersion sur Jupyter Notebook
Lier Python et JavaScript avec le notebook Jupyter
Présentation HTML "EN DIRECT" avec IPython 3.0.0-dev, IPython Notebook