Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Jupyterで手順再現!Elasticsearch構築・運用を実行可能ドキュメントで機械化してみた

4,388 views

Published on

第20回Elasticsearch勉強­会 #elasticsearchjp での発表資料です。

Published in: Technology
  • Be the first to comment

Jupyterで手順再現!Elasticsearch構築・運用を実行可能ドキュメントで機械化してみた

  1. 1. Jupyterで手順再現! Elasticsearch構築・運用を 実行可能ドキュメントで機械化してみた 国立情報学研究所 クラウド研究開発センター / 株式会社ボイスリサーチ 谷沢 智史
  2. 2. 誰? • 谷沢智史 • 国立情報学研究所 / 株式会社ボイスリサーチ • GitHub/Twitter: @yacchin1205 • 昔: オンラインゲームとか映像とか • 今: クラウド運用とかロボットとか • 国立情報学研究所(NII)でプライベートクラウドの運用支援 • 東京大学で社会人博士とか (認知科学)
  3. 3. Which type are you? <https: //www.continuum.io/open-data-science> 
as of July 1, 2016
  4. 4. 本日のアジェンダ 1. 国立情報学研究所(NII)におけるクラウド運用 2. Literate Computing for Reproducible Infrastructureの紹介 3. JupyterでElasticsearch 5.5環境構築ライブデモ 4. Literate Computing for Reproducible Infrastructureの考え 方 5. まとめ
  5. 5. 国立情報学研究所(NII)における クラウド運用
  6. 6. 国立情報学研究所には・・・ • 所内研究者向けベアメタルクラウドサービス • 研究クラウド / アカデミックインタークラウド
  7. 7. ベアメタル上でのサービス構築支援 • OSSが中心 • 主にHadoop族 • 教材用途: VMベースにして自由に壊せるようにしたい / それを1週間だけほしいー • 分析用途: ログ集約にはFluentdがいいなあ / 認証つけて / etc… • Elasticsearchも対象になりつつある… Baremetal VM VM VM VM VM NN ZK NN ZK ZK DN DN DN Baremetal VM VM VM VM VMNN ZK NN ZK ZK DN DN DN Baremetal VM VM VM VM VM NN ZK NN ZK ZK DN DN DN Baremetal VM VM VM VM VM NN ZK NN ZK ZK DN DN DN Baremetal VM VM VM VM VM NN ZK NN ZK ZK DN DN DN Baremetal VM VM VM VM VM NN ZK NN ZK ZK DN DN DN Baremetal VM VM VM VM VM NN ZK NN ZK ZK DN DN DN Baremetal VM VM VM VM VM NN ZK NN ZK ZK DN DN DN …
  8. 8. インフラエンジニアの宿命 (さだめ) • 少量多品種なうえに … インフラは Moving Target • ソフトウェア・周辺環境は、猛スピードで変化する • 既知のバグが修正されたり • 新規の機能が追加されたり • 不要な機能が削除されたり • 既存の機能が改変されたり • 新規のバグが混入されたり • 未知の異常発生を前提としなければならない →すべてを自動化するのは難しい … 人間の介在を重視 • エンジニアの闘いの記録をExplicitにする • 過去の記録を「お手本」として運用を改善していく
  9. 9. 自動化 機械化 Hardiman, General Electric in 1965 https://www.engadget.com/2014/01/26/ge-man-amplifying-robots/
  10. 10. Literate Computing for Reproducible Infrastructure
  11. 11. Jupyter • Data Scientist向けの道具 • 簡単にお試しできるJupyter Notebook環境 • https://tmpnb.org
  12. 12. Literate Computing for Reproducible Infrastructure Jupyter + Ansible ・実行コード ・実行結果 ・説明 をNotebookとして、 ひとまとめに
  13. 13. 今日ご紹介したいもの • Elasticsearch構築・運用をJupyter+Ansibleで • クエリの出し方をNotebookで用意したりとか • Acroquest Technologyさんのご協力感謝! https://github.com/NII-cloud-operation/Literate-computing-Elasticsearch
  14. 14. Elasticsearch Notebook • README.ipynbにて概要説明 • 構築・運用の手順 • 利用方法(クエリ等)の手順
  15. 15. Live Demo Elasticsearch 5.5をAWS上に構築してみる 公開しているデモ資材を使用しています [デモ環境の作り方については後ほど!]
  16. 16. “Literate Computing for Reproducible Infrastructure” 文芸的機械化 • 機械的に再現できる、人が読み解ける手順 人が介在しつつも機械的に再現/再実行できる 計算機 = computation と 人間どうし = communication の分担 • 実際の実行結果が手順とともに,dataが live-code に埋 め込まれていて再現できる • 手順や経緯が具体的に再現可能な形で表現・伝達
  17. 17. 適用局面 日々の運用作業の証跡を記録 … Traceability そこから手順を整理して再利用する … Reusability マニュアルや教材を整備する … Reproducibility これら複数局面での計算機利用を、 「適切に分節化したものを同様に紡いで」 記述・蓄積したい
  18. 18. ぜひ使ってみて(+Feedback)ください • インフラ運用に必要な部品という観点で、Notebook例やExtension を開発・公開しています • GitHub • https://github.com/NII-cloud-operation • Notebook例 • Basics - Literate-computing-Basics • Hadoop - Literate-computing-Hadoop • Extension • まとめ実行 - Jupyter-LC_run_through • セル識別子付与 - Jupyter-LC_nblineage • 出力要約・ログ記録 - Jupyter-LC_wrapper • 他にも色々…!
  19. 19. JupyterCon開催…! • 8月jupyterconにNII のネタを持っていき ます! https://conferences.oreilly.com/jupyter/jup- ny/public/schedule/detail/59995
  20. 20. まとめ Jupyter notebookでの運用は 大変なこともありますが、 Literate Computing for Reproducible Infrastructure 試してみませんか? PullRequestもお待ちしています
  21. 21. 付録: デモ環境の使い方
  22. 22. デモ環境を公開しています • 必要なもの • Docker Engine • Mac, Windowsでも動作します • Image • デモに使った環境をDockerHubにて公開しています • NII謹製Extensionの組み込み済み • AWS Account • ご自分のものを • 大きめのインスタンスを使うので、不要になったらインスタンスな どリソースを削除してください (本デモはリソースの準備、 Elasticsearch構築・利用までをカバーしています) docker pull niicloudoperation/notebook:openhouse-2017-demo
  23. 23. デモ環境の使い方(1) • Jupyter環境の起動 • Docker runするだけ • Bindするアドレス・ポートを変える場合は… -p の引数を変える • その他オプションについては https://hub.docker.com/r/niicloudoperation/notebook/ • Jupyter環境へのログイン • Docker runの出力に従う docker run -it -p 127.0.0.1:8888:8888 niicloudoperation/notebook:openhouse-2017-demo [C 22:50:12.120 NotebookApp] Copy/paste this URL into your browser when you connect for the first time, to login with a token: http://localhost:8888/?token=XXXXXXXXXXXXXXXXXXXXXXXX
  24. 24. デモ環境の使い方(2) • AWSの認証情報の登録 • EC2, VPCに関する操作を行います • JupyterのTerminalで以下を入力 • Notebook 03_Elasticsearch構築手順への適用例 /01_01_Outline.ipynb からスタートしてください $ aws configure AWS Access Key ID [None]: (自身のアカウントのアクセスキー) AWS Secret Access Key [None]: (自身のアカウントのシークレットアクセスキー) Default region name [None]: us-west-2 (使用したいリージョン) Default output format [None]: json

×