Jupyterの内郚で1時間あたり0.25ドルで16コアず30 GB

あなたがあたり幞運でなく、職堎でスクリプトでダりンロヌドできるn栞モンスタヌがない堎合は、この蚘事が圹立ちたす。 たた、スクリプトを䞀晩䞭実行するこずに慣れおいる堎合そしお午前䞭にどこかでブラケットを忘れお、6時間の蚈算がなくなったこずを読んでいる堎合-最終的にAmazon Web Servicesに慣れる機䌚がありたす。







この蚘事では、EC2サヌビスを開始する方法を説明したす。 本質的に、これはJupyterノヌトブックを操䜜し、Anacondaラむブラリを構築するためのAWSスポットむンスタンスの半自動レンタルに関する段階的な手順です。 たずえば、Kaggleコンペティションでおもちゃのポピヌをただ䜿甚しおいる人にずっおは䟿利です。







おそらく、アマゟンりェブサヌビスのりェブサむトに最初にアクセスしたすべおの人の反応は、提䟛されおいる豊富なサヌビスず仮想マシンむンスタンスず呌ばれるに戞惑うこずでしょう。

このチュヌトリアルでは、AWSコンピュヌティングむンスタンスを安䟡にレンタルし、お気に入りのノヌトブックを䜿甚するためにJupyterサヌバヌをすばやくセットアップする方法を玹介したす。 Anacondaのアセンブリず機械孊習のタスクに焊点を圓おたすが、ビットコむンのマむニングも含め、サヌバヌをさたざたな目的に䜿甚できるこずは明らかです:)



モチベヌション Jupyterノヌトブックからコンピュヌティングリ゜ヌスぞのアクセスを自宅のコンピュヌタヌよりも真剣に5〜7分以内に取埗したい。

䞀般的に、 このための良いチュヌトリアルがありたす 。 あなたが読んでいる蚘事は、远加された無料の翻蚳です。 たた、車を借りるたびに実行されるスクリプトを䜜成したす。 そしお、ここに急いでいる人のための結果がありたす。



16コアず30 GBのRAMを備えた3.4xlargeのスポットむンスタンスをリヌスしたす。

「スポット」ずは、本質的に私たちがオヌクションに参加し、機械を䜿甚しお1時間の䟡栌を蚭定し、需芁が増加するたでオヌクションにアクセスできるこずを意味したす。 需芁が䞊昇し、垂堎䟡栌が蚭定した䟡栌を超えるず、車は突然「逃げ出し」たす。 倚くの人がスポットむンスタンスを䜿甚するこずを恐れおいるのはこのため䞍安定性です。ただし、「オンデマンド」むンスタンスず比范しお倚くを節玄できたす。 同じ自動車ですが、より「安定した」モヌドでは 、玄0.85ドル/時間の費甚がかかりたすが、4分の1しか消費したせん。



今、車の皮類に぀いお。 AWSのドキュメントで詳しく説明されおいるため、タむプC-コンピュヌティング甚に最適化されたマシンを遞択しおください。



レンタカヌ





開始するには、アマゟンりェブサヌビスにサむンアップしおください。 ここでは手順を説明したせん。すべおは通垞どおりで、電話ずメヌルで確認するだけで十分です。 アカりントにクレゞットカヌドを添付する必芁がありたすが、支出が怖い堎合は、m4largeむンスタンス2 CPU、8 Gb RAMを1時間あたり0.05ドルで利甚できたす。



AWSコン゜ヌルに移動し、サヌビスでEC2Elastic Compute Cloudを芋぀けたす







[スポットリク゚スト]セクションで、[スポットむンスタンスのリク゚スト]をクリックしたす。







仮想マシン䞊にあるOSのタむプを遞択したす。 䞀般的に、Windowsはより高䟡です。* Nixの䞭で、どちらを遞択するかはそれほど重芁ではありたせん。Ubuntuにしたしょう。







次のタブでは、実際のむンスタンスを遞択できたす。 ここで、タッチし、比范し ここで詳现を説明したす 、c3.4xlargeにスクロヌルしたす。







次に、最も重芁なこずは、仮想マシンを䜿甚するための1時間あたりの䟡栌を蚭定するこずです。 遞択した地域の珟圚の䟡栌が衚瀺されたす。







スクリヌンショットよりも䟡栌がはるかに高い堎合は、珟圚の地域で急増しおいるこずを意味したす-地域を倉曎したす名前の隣の右䞊隅。 これたでのずころ、フランクフルト地域の䜿甚に成功しおいたすが、統蚈を調べお、どの地域がより安く、安定した䟡栌であるかを確認するこずもできたす。



特定の地域のむンスタンスの珟圚の垂堎䟡倀の1.5倍の䟡栌を蚭定するこずをお勧めしたす。 この状況では、䟡栌は少し倉動したすが、めったにあなたが宣蚀した䟡栌を超えるこずはありたせん。 したがっお、この方法では、車が「脱萜」するこずはほずんどありたせん。



次に、ストレヌゞを接続したす。 Amazonは30 GBを提䟛しおいるので、30個すべおを䜿甚しおみたせんか...







むンスタンスのタグ付けはスキップできたす。 そしお、ポヌトを構成したす。 ここでの䞻なこずは、Jupyterサヌバヌに䜿甚するポヌトを開くこずです。 「芏則の远加」をクリックし、「カスタムTCP芏則」オプションを残しお、ポヌト8888を指定したす。たた、HTTPおよびHTTPSプロトコルを远加し、ポヌトをリッスンできるナヌザヌを蚀いたす。 右偎のDAW My IPを遞択するだけです。







次のステップでは、SSHプロトコルを介しおリモヌトでマシンに接続するずきに私たちを識別するキヌpemファむルを䜜成したす。 奜きなように呌び出すこずができたす-ダりンロヌド埌の䞻なこずは、それがどこにあるかを知るこずであり、決しお!!! GitHubたたは他のどこかにオンラむンでアップロヌドするこずです。 このファむルを銀行カヌドのパスワヌドのように扱いたす。 Amazonは、定期的にpemファむルを曎新するこずをお勧めしたす各リヌゞョンに2぀持぀こずができ、同じキヌを2回ダりンロヌドするこずはできたせん。







最埌に、すべおを確認し、むンスタンスが開始するたで数分埅ちたす。EC2の[むンスタンス]タブで䜕かが衚瀺されおいるこずに気付きたす。







衚瀺されたむンスタンスを遞択しお、[接続]をクリックしたす。 アマゟンは次に䜕をすべきかの指瀺を䞎えたす。



Windowsの䞋に座っおいる堎合、この蚘事を読むこずは終わりたせん通垞、チュヌトリアルのこの堎所では、「WindowsGood luck」を読むこずができたす。 Puttyを䜿甚しお接続する方法に関するAmazonの指瀺を読むだけです。

* NIXの堎合、次の2぀のコマンドを実行したす。



chmod 400 <PEM-file name>.pem ssh -i <PEM-file name>.pem ubuntu@<HOST>
      
      





最初の方法では、通過する党員があなたのpemファむルにアクセスできるわけではありたせん。 2番目は、実際には䞀意のホストで仮想マシンに接続しおいたす。



機械蚭定





すべおが順調に進んだ堎合、ナヌザヌずしおのubuntuはリモヌトマシンのタヌミナルに到達したす。

スクリプトは䜕でも実行できたすが、Jupyterで機械孊習タスクのむンスタンスを蚭定するこずに焊点を圓おたす。 わかりやすくするためおよびrm-rf /のスタむルですべおが冗談なしに行われたこずを確認するため、すべおのコマンドを以䞋に説明したすが、䞀般的には2回目以降はbashスクリプトでこれを実行したす。



Minicondaをダりンロヌドしおむンストヌルしたす。 Anacondaよりもはるかに簡単です。必芁なラむブラリをむンストヌルしたすちなみに、Seabornをポップしおいたせんが、Anacondaですべお問題ありたせん。 私たちは短時間でマシンを䜿甚し、数時間を超えるこずはありたせん。そのため、完璧䞻矩なしに、すべおをホヌムディレクトリにむンストヌルしたす。



 wget -c http://repo.continuum.io/miniconda/Miniconda-latest-Linux-x86_64.sh bash Miniconda-latest-Linux-x86_64.sh -b -p ~/miniconda export PATH=~/miniconda/bin:$PATH
      
      





次に、必芁なすべおのラむブラリをむンストヌルしたす。

 conda install -y numpy scipy pandas scikit-learn jupyter
      
      





たずえば、 Vowpal Wabbit 倧芏暡なサンプルではより高速で、MapReduceの実装よりも高速ず芋なされるこずのある高速線圢モデルを提䟛するこずが可胜です。

 sudo apt-get -qq install vowpal-wabbit
      
      





Gitも害はありたせん-必芁なリポゞトリをすぐにダりンロヌドできたすこのチュヌトリアルではAmazon S3の䜿甚を怜蚎しおいたせん。

 sudo apt-get -qq install git
      
      





パスワヌドを䜿甚しおJupyterにログむンするための蚌明曞を䜜成したしょう-これははるかに安党です。 次に、手動で䜜成したす。この䜜成された蚌明曞がスクリプトで2回䜿甚されたす。



 openssl req -x509 -nodes -days 365 rsa:2048 -keyout jupyter.pem -out jupyter.pem
      
      







ナヌザヌ情報の芁求が衚瀺されたす。 原則ずしお、これは必芁ありたせん。



Jupyterサヌバヌにログむンするためのパスワヌドを䜜成したす。

Ipythonからpasswd関数を䜿甚できたす

 python >>> from IPython.lib import passwd >>> passwd('Sample password')
      
      





パスワヌドのハッシュが衚瀺されたす。 コピヌしおください。

 'sha1:d0c0b7eb515e:f0e59fcd04aec7bb50886084ae8e1fa9a273f88e'
      
      





最埌に、蚭定ファむルで䜿甚するポヌトずアクセスを蚱可するアドレスを指定した埌、IPythonプロファむルを䜜成しおサヌバヌを起動したす。 ハッシュ化されたパスワヌドを指定したす。 パスワヌドは異なりたす-自分のパスワヌドを挿入する必芁がありたす。

 ipython profile create nbserver printf "\n# Configuration file for ipython-notebook.\n c = get_config()\n # Notebook config\n c.NotebookApp.ip = '*'\n c.NotebookApp.password = u''sha1:d0c0b7eb515e:f0e59fcd04aec7bb50886084ae8e1fa9a273f88e''\n c.NotebookApp.open_browser = False\n c.NotebookApp.port = 8888\n" >> ~/.ipython/profile_nbserver/ipython_notebook_config.py
      
      





リモヌトマシンでのみ最埌に行うこずは、IPythonサヌバヌの起動です。

なぜIPythonがJupyterではないのですか.. certfileが明瀺的に指定されおいるのはなぜですか答えは単玔ですcrutches.Jupyterは蚭定ファむルを衚瀺したくないので、その䞭の蚌明曞ファむルの蚭定を衚瀺したくありたせんでした。 、構成ファむルず蚌明曞を明瀺的に指定せずに。

 ipython notebook --config="~/.ipython/profile_nbserver/ipython_notebook_config.py" --certfile=jupyter.pem
      
      





すべおが順調に進んだ堎合、最埌に次のように衚瀺されたす。

 [I 10:09:08.774 NotebookApp] Serving notebooks from local directory: /home/ubuntu [I 10:09:08.775 NotebookApp] 0 active kernels [I 10:09:08.775 NotebookApp] The Jupyter Notebook is running at: https://[all ip addresses on your system]:8888/ [I 10:09:08.775 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
      
      





利益



HOST 8888のブラりザに移動したす。ここで、HOSTは以前のようにむンスタンスのアドレスです。 泚意 プロトコルは正確にHTTPSである必芁があり、蚌明曞の確認も必芁になる堎合がありたす。 たずえば、Chromeでは、「詳现」を確認しおサむトぞの移行を確認する必芁がありたす。



パスワヌドを入力したすもちろん、ここではハッシュではなく「通垞」。Jupyterのファむルシステムずいう玠晎らしい画像が衚瀺されたす。







新しいノヌトブックを䜜成し、ボンネットの䞋に豊富な栞を楜しんでいたす。







次に、タヌミナルリモヌトマシンではなくコンピュヌタヌに戻っお、デヌタセットをむンスタンスにドロップしたす。 Kaggleコンペティション「 Forest Cover Type Prediction 」から発蚀しおください。

 scp -i <PEM-file name>.pem <LOCAL_PATH_TO_DATA> ubuntu@<HOST>:/~
      
      





もちろん、機械孊習に぀いお話すのは興味深いこずですが、ここでは生デヌタでランダムなスクレヌンフォレストを実行したす。





n_jobsパラメヌタヌに泚意しおください-ここでは、16個のコアすべおを䜿甚しおいたす。

最倧深さ15の1000ツリヌが5秒で孊習-4コアず4 GBのメモリを搭茉したMacBook Airの3倍の速床。 もちろん、倧きなサンプルでは、​​違いはより重芁になりたす。







同じスクリプト





プロセスは自動化できたす。 botoずいうPython Amazon SDKを䜿甚しお、スクリプトを䜿甚しおスポットむンスタンスのバックアップを䜜成するこずもできたす。 ただし、ここでは、起動埌にJupyterで䜜業するためにマシンを準備するスクリプトを芋おいきたす。



これらはすべおGithub リポゞトリにありたす 。



合蚈で、3぀のファむルが必芁になりたす。





目的のディレクトリで、次を実行したす。

 sh launch_remote_setup.sh
      
      







5-7分、それで終わりです Jupyterサヌバヌで䜜業できたす。



もうお茶を泚ぐずころだった。 しかし 非垞に重芁なポむント

䜜業の最埌に、むンスタンスを停止したす。

EC2->むンスタンス->アクション->むンスタンス状態->終了。



停止ではなく終了ですスポットの堎合のみ䜿甚可胜です。 ただし、むンスタンスをオンデマンドで起動する堎合、停止しおもマシンの電源が完党に切れるわけではなく、デヌタ亀換の費甚がかかる可胜性がありたす。







最埌に、少しの財政に぀いお話し合うこずができたす。 珟圚のアカりントは、あなたの名前をクリックし、「請求ずコスト管理」をクリックするこずにより、Amazonでチェックされたす。

平日4時間䜿甚する堎合、1時間あたり0.25ドルは玄25ドルです。 その埌、誰もが圌がそのような費甚の準備ができおいるかどうかを自分で決めたす。



GitHub Student Developer's Packを宣䌝するこずもできたす -私は個人的にAmazonの蚌明曞を110ドルで入手したしたが、今でも䜿甚しおいたす。 さらに、本栌的な科孊プロゞェクトの堎合は、Amazonから助成金を取埗できたす。



おわりに



今のずころすべおです。 䞀郚の人にずっおは、Amazon Web Services EC2のゞャンプスタヌトだったず思いたす。 倜は車を䌑たせたしょう



PS。 コメント/ヒント/共有䜓隓/プルリク゚ストは倧歓迎です。



All Articles