Infrastructure as CodeでReNom環境構築入門
-
Upload
renom-user-group -
Category
Data & Analytics
-
view
217 -
download
0
Transcript of Infrastructure as CodeでReNom環境構築入門
![Page 1: Infrastructure as CodeでReNom環境構築入門](https://reader030.fdocument.pub/reader030/viewer/2022012407/5a67580b7f8b9a0a2e8b46f7/html5/thumbnails/1.jpg)
富士通株式会社 山中惇平
ReNom User Group #2
Infrastructure as CodeでReNom環境構築入門
Copyright 2017 FUJITSU LIMITED 0
本資料及びLTでお話する内容は、個人の見解であり、 所属する組織の公式見解でも代表する意見でもありません。
![Page 2: Infrastructure as CodeでReNom環境構築入門](https://reader030.fdocument.pub/reader030/viewer/2022012407/5a67580b7f8b9a0a2e8b46f7/html5/thumbnails/2.jpg)
Who?
名前 山中 惇平 / Jumpei Yamanaka
所属 富士通株式会社 AIサービス事業本部 AIインテグレーション事業部
仕事 AIプラットフォームサービスの開発 ↑で作ったAIプラットフォームを用いた商談対応、データ分析
言語 R/Python/Javascript/Java
昔 ロボットの強化学習 (DL黎明期、まだ黒魔術と呼ばれていた頃。私は触れずに卒業)
Copyright 2017 FUJITSU LIMITED 1
![Page 3: Infrastructure as CodeでReNom環境構築入門](https://reader030.fdocument.pub/reader030/viewer/2022012407/5a67580b7f8b9a0a2e8b46f7/html5/thumbnails/3.jpg)
話しの内容
Copyright 2017 FUJITSU LIMITED
Infrastructure as Codeで
ReNom環境構築入門
2
![Page 4: Infrastructure as CodeでReNom環境構築入門](https://reader030.fdocument.pub/reader030/viewer/2022012407/5a67580b7f8b9a0a2e8b46f7/html5/thumbnails/4.jpg)
話しの内容
Copyright 2017 FUJITSU LIMITED
Infrastructure as Codeで
ReNom環境構築入門
?
3
![Page 5: Infrastructure as CodeでReNom環境構築入門](https://reader030.fdocument.pub/reader030/viewer/2022012407/5a67580b7f8b9a0a2e8b46f7/html5/thumbnails/5.jpg)
話しの内容
Copyright 2017 FUJITSU LIMITED
Infrastructure as Codeで
ReNom環境構築入門
多くの人が ReNomを
すぐに 使えるように!
4
![Page 6: Infrastructure as CodeでReNom環境構築入門](https://reader030.fdocument.pub/reader030/viewer/2022012407/5a67580b7f8b9a0a2e8b46f7/html5/thumbnails/6.jpg)
データ分析環境の構築
データ分析の「環境」をどう整えるか?
Copyright 2017 FUJITSU LIMITED
1. サーバーを用意する 2. OSをインストールする 3. 分析に用いる言語(Python、Rなど)をインストールする 4. パッケージをインストールする 5. エディタ、または統合開発環境を用意する
データ分析を始めるまで
ただしデータそのもののの準備は除く
5
![Page 7: Infrastructure as CodeでReNom環境構築入門](https://reader030.fdocument.pub/reader030/viewer/2022012407/5a67580b7f8b9a0a2e8b46f7/html5/thumbnails/7.jpg)
データ分析環境の構築
データ分析の「環境」をどう整えるか?
Copyright 2017 FUJITSU LIMITED
1. サーバーを用意する 2. OSをインストールする 3. 分析に用いる言語(Python、Rなど)をインストールする 4. パッケージをインストールする 5. エディタ、または統合開発環境を用意する
データ分析を始めるまで
ただしデータそのもののの準備は除く
その後 このパッケージPython 2しか
対応して無い! Pythonのバージョンを変えないと~
上司「分析の手が足り無そうなので 新しい分析者をアサインしました。
環境の準備をよろしく。」
実データの分析に移行するにあたって より強力なクラウドサーバで分析を… パッケージがアップデートされて
以前と同じ実験結果が出ない…
6
![Page 8: Infrastructure as CodeでReNom環境構築入門](https://reader030.fdocument.pub/reader030/viewer/2022012407/5a67580b7f8b9a0a2e8b46f7/html5/thumbnails/8.jpg)
Docker!!
Copyright 2017 FUJITSU LIMITED 7
![Page 9: Infrastructure as CodeでReNom環境構築入門](https://reader030.fdocument.pub/reader030/viewer/2022012407/5a67580b7f8b9a0a2e8b46f7/html5/thumbnails/9.jpg)
DockerでReNom分析環境構築
Copyright 2017 FUJITSU LIMITED 8
![Page 10: Infrastructure as CodeでReNom環境構築入門](https://reader030.fdocument.pub/reader030/viewer/2022012407/5a67580b7f8b9a0a2e8b46f7/html5/thumbnails/10.jpg)
注:今回はGPU、cudaまわりは置いておいて まずはCPU環境で作ります。
DockerでReNom分析環境構築
Copyright 2017 FUJITSU LIMITED
nvidia-dockerという dockerのラッパーのようなもので
作れそうではあります
9
![Page 11: Infrastructure as CodeでReNom環境構築入門](https://reader030.fdocument.pub/reader030/viewer/2022012407/5a67580b7f8b9a0a2e8b46f7/html5/thumbnails/11.jpg)
Dockerとは
オープンソースの仮想化プラットフォーム
「コンテナ」としてソフトウェアをパッケージングし、 個別の仮想マシンのように使えるようにする。
Copyright 2017 FUJITSU LIMITED
コンテナと仮想マシンの違い
Docker公式Webページより https://www.docker.com/what-container
コンテナは個別にOSを持たない=仮想マシンより軽量、立ち上がりも早い ⇒分析環境の構築/分離/再現に便利
10
![Page 12: Infrastructure as CodeでReNom環境構築入門](https://reader030.fdocument.pub/reader030/viewer/2022012407/5a67580b7f8b9a0a2e8b46f7/html5/thumbnails/12.jpg)
Docker導入
https://www.docker.com/
様々なプラットフォームに対応
•デスクトップ *| Windows / Mac
•クラウド向け | Docker for AWS / Docker for Azure
•サーバ | Windows Server / CentOS / Debian / RHEL / Ubuntu /…
*) Windows、MacはバージョンによりDockerの種類が変わる
Copyright 2017 FUJITSU LIMITED
イメージの作成 or
ダウンロード
イメージから コンテナの起動
使ってみる
ここから 入手
インストール後
イメージ =コンテナの素 Docker Hubで 様々なものが公開されている https://hub.docker.com/
11
![Page 13: Infrastructure as CodeでReNom環境構築入門](https://reader030.fdocument.pub/reader030/viewer/2022012407/5a67580b7f8b9a0a2e8b46f7/html5/thumbnails/13.jpg)
ReNomイメージの作成
Copyright 2017 FUJITSU LIMITED 12
![Page 14: Infrastructure as CodeでReNom環境構築入門](https://reader030.fdocument.pub/reader030/viewer/2022012407/5a67580b7f8b9a0a2e8b46f7/html5/thumbnails/14.jpg)
Python分析環境の導入
DockerはDockerfileというスクリプトからイメージのビルドを行う
Copyright 2017 FUJITSU LIMITED
# イメージの取得。今回はReNomの推奨環境であるUbuntu 16.04ベース FROM Ubuntu:16.04 # パッケージのインストールとアップデート RUN apt-get update && apt-get –y upgrade RUN apt-get –y install build-essential ¥ git vim curl wget ¥ zlib1g-dev ¥ libssl-dev ¥ libreadline-dev ¥ libyaml-dev ¥ libxml2-dev ¥ libxslt-dev ¥ libncurses5-dev ¥ libncursesw5-dev # pyenvのインストール RUN git clone https://github.com/yyuu/pyenv.git /root/.pyenv RUN git clone https://github.com/yyuu/pyenv-pip-rehash.git ¥ /root/.pyenv/plugins/pyenv-pip-rehash ENV PYENV_ROOT root/.pyenv ENV PATH $PYENV_ROOT/bin:$PATH # anacondaのインストール ENV ANACONDA_VER 4.4.0 RUN pyenv install anaconda3-$ANACONDA_VER RUN pyenv global anaconda3-$ANACONDA_VER ENV PATH $PYENV_ROOT/versions/anaconda-$ANACONDA_VER/bin:$PATH # pyenvの初期化 RUN cd /root && eval “$(pyenv init -)” RUN echo ‘eval “$(pyenv init -)”’ >> /root/.bashrc # ReNomインストール RUN git clone https://github.com/ReNom-dev-team/ReNom.git ¥ /root/ReNom RUN mkdir /root/work ENV RENOM_PRECISION 64 RUN cd /root/ReNom && /root/.pyenv/shims/pip install -e . # コンテナ起動時の実行コマンド(Jupyterの起動) CMD /bin/bash -l –c ¥ '/root/.pyenv/shims/jupyter notebook ¥ --NotebookApp.open_browser=False ¥ --NotebookApp.ip=* ¥ --allow-root ¥ --NotebookApp.notebook_dir="/root/work/"'
ReNom推奨であるUbuntuイメージから作成
Anacondaで必要なライブラリやJupyterを 一気にいれる
肝のReNomインストール
コンテナ起動時にJupyterが動くようにする
イメージの作成 or
ダウンロード
イメージから コンテナの起動
使ってみる
注)2017/9/26現在(ReNom ver 2.1.0)でビルド確認
13
![Page 15: Infrastructure as CodeでReNom環境構築入門](https://reader030.fdocument.pub/reader030/viewer/2022012407/5a67580b7f8b9a0a2e8b46f7/html5/thumbnails/15.jpg)
Python分析環境の導入
Dockerfileがあるフォルダでビルドのコマンドを実行する
コンテナを起動
Copyright 2017 FUJITSU LIMITED
$ docker build –t renom-jupyter:2.1.0 . …(省略)… $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE renom-jupyter 2.1.0 3f63a0357beb 42 seconds ago 2.57 GB
イメージの作成 or
ダウンロード
イメージから コンテナの起動
使ってみる
$ docker run -d -p 8989:8888 -v /home/yamanaka/work/:/root/work/ --name renom_2_1_0_yamanaka renom-jupyter:2.1.0 f30d5b9504b5855c6f0cf4714e28c5055c62e3fa2eb5c95ab865336029aae749 $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES f30d5b9504b5 renom-jupyter:2.1.0 "/bin/sh -c '/bin/..." 16 minutes ago Up 16 minutes 0.0.0.0:8989->8888/tcp renom_2_1_0_ yamanaka
ホストのポート8989を8888にフォワード
ホストのフォルダを作業フォルダとしてマウント Dockerはコンテナ立ち上げ後にデータを保持できない (終了させるとイメージの状態に戻る)ため データはコンテナ外部に保存する必要がある
14
![Page 16: Infrastructure as CodeでReNom環境構築入門](https://reader030.fdocument.pub/reader030/viewer/2022012407/5a67580b7f8b9a0a2e8b46f7/html5/thumbnails/16.jpg)
Python分析環境の導入
コンテナが起動したらブラウザでPythonを使える(Jupyter)
Copyright 2017 FUJITSU LIMITED
イメージの作成 or
ダウンロード 使ってみる
イメージから コンテナの起動
15
![Page 17: Infrastructure as CodeでReNom環境構築入門](https://reader030.fdocument.pub/reader030/viewer/2022012407/5a67580b7f8b9a0a2e8b46f7/html5/thumbnails/17.jpg)
できあがったもの
Copyright 2017 FUJITSU LIMITED
Docker コンテナ
サーバOS(基本的にはLinux、Windows等でも可)
Docker
pyenv
anaconda (Jupyter, Numpy, …)
Python
ReNom
できたこと→ReNomを使ったデータ分析環境の素早い構築 一度イメージを作れば、あとはdocker run ~~で環境を作成可能 Anacondaが入った重めのイメージでも約2.6GB
16
![Page 18: Infrastructure as CodeでReNom環境構築入門](https://reader030.fdocument.pub/reader030/viewer/2022012407/5a67580b7f8b9a0a2e8b46f7/html5/thumbnails/18.jpg)
まだできていないこと
Docker Hub等への公開
誰か有志がいらっしゃいましたら作ってくださってもいいです
GPU対応
必要に迫られるまでは…
ポート枯渇問題
一サーバに環境をたくさんたてすぎるとポートが枯渇する(してる)
その他分析環境とあわせる
R / Rstudio等
その他ツールとあわせる
Git等
Copyright 2017 FUJITSU LIMITED 17
![Page 19: Infrastructure as CodeでReNom環境構築入門](https://reader030.fdocument.pub/reader030/viewer/2022012407/5a67580b7f8b9a0a2e8b46f7/html5/thumbnails/19.jpg)
Infrastracture as Code?
インフラのコード化
インフラの構成をコードとして自動化し、また管理、再利用しやすくする
コードなのでアプリケーションの知見(テストやバージョン管理など)が適用できる
特に「アジャイル」の文脈から継続的インテグレーションに運用面の課題を解決するために出てきた経緯がある
データ分析における役割
分析環境を自動で立ち上げる(本日の話でおそらく第一歩)
作ったロジックをディストリビュートするには?
データ分析とアプリとインフラをつなぐ「たしなみ」
データ分析者を増やす →データ分析への敷居を下げに下げることが重要
Copyright 2017 FUJITSU LIMITED
データ
アプリ インフラ
初学者的理解
18
![Page 20: Infrastructure as CodeでReNom環境構築入門](https://reader030.fdocument.pub/reader030/viewer/2022012407/5a67580b7f8b9a0a2e8b46f7/html5/thumbnails/20.jpg)
Infrastracture as Code?
インフラのコード化
インフラの構成をコードとして自動化し、また管理、再利用しやすくする
コードなのでアプリケーションの知見(テストやバージョン管理など)が適用できる
特に「アジャイル」の文脈から継続的インテグレーションに運用面の課題を解決するために出てきた経緯がある
データ分析における役割
分析環境を自動で立ち上げる(本日の話でおそらく第一歩)
作ったロジックをディストリビュートするには?
データ分析とアプリとインフラをつなぐ「たしなみ」
データ分析者を増やす →データ分析への敷居を下げに下げることが重要
Copyright 2017 FUJITSU LIMITED
データ
アプリ インフラ
初学者的理解
より多くのデータサイエンティストを!!
19
![Page 21: Infrastructure as CodeでReNom環境構築入門](https://reader030.fdocument.pub/reader030/viewer/2022012407/5a67580b7f8b9a0a2e8b46f7/html5/thumbnails/21.jpg)
http://renom.jp/ja/notebooks/tutorials.html
Copyright 2017 FUJITSU LIMITED
より多くのデータサイエンティストを!!
20
![Page 22: Infrastructure as CodeでReNom環境構築入門](https://reader030.fdocument.pub/reader030/viewer/2022012407/5a67580b7f8b9a0a2e8b46f7/html5/thumbnails/22.jpg)
まとめ
データ分析の環境をどう立ち上げる?
DockerでReNomコンテナをたててみた
二度目以降は数分で分析環境を立ち上げられるようになる
Infrastructure as Code
データ分析にもとっても役立つ
Copyright 2017 FUJITSU LIMITED 21
![Page 23: Infrastructure as CodeでReNom環境構築入門](https://reader030.fdocument.pub/reader030/viewer/2022012407/5a67580b7f8b9a0a2e8b46f7/html5/thumbnails/23.jpg)
Copyright 2017 FUJITSU LIMITED
Thank you!_
22