Edited at
AidemyDay 3

Aidemy Premium Planで提供する仮想環境の仕組み


概要

Aidemy Premium Planで受講生が使っている機械学習向けの仮想環境「Fastpyter」の仕組みについて説明します。

本記事ではソースコード等は一切出てきません。


Fastpyterって?

Aidemy Premium Planで受講生が使っている機械学習向けの仮想環境です。

機械学習向けのスペックを持ち、機械学習でよく利用されるpythonのパッケージの大部分と、jupyter notebookがインストールされています。

また、 各受講者ごとに個別のデータを保持することができます。


システムの概要



この図をベースに説明します。


  1. まずユーザーはインターネット上に公開されたフロントサーバーにアクセスします。

  2. フロントサーバーで認証を行います。

  3. 認証されたユーザーであれば、パブリックIPを持たない各自のVMにアクセスします。

Fastpyterの基本は、この3ステップで成り立っています。


VMの制御

各個人が利用するVMのスペックは機械学習向けということもありとてもいい性能のものを利用しています。

そのため、インフラに詳しい方はお気づきかもしれませんが、維持費もものすごくかかってしまうのです。

(ずっと起動したままの場合月々およそ75,000円かかってしまいます。)

なので費用を抑えるため、必要な時だけVMを立ち上げ、不要になったらVMを削除する、という制御を行っています。

これはAzure Active Directoryを利用して実現しています。


VM消したらデータはどうなるの?

さて、必要ないときはVMを削除するとなると、データの保存方法を考えなければなりません。

Fastpyterでは、起動時に各受講者専用の仮想ディスクドライブをマウントし、VMを削除してもそのディスクだけは削除せずに残しておくことで各受講者ごとのでデータを保持しています。

実物で例えると、毎回パソコンを組み立てて起動して外付けハードディスクを接続して、シャットダウンして外付けハードディスクを取り外してパソコンを分解する。そのようなイメージが近いです。


今後の展望

Kubernetesに移行したい。

現在Fastpyterが抱えている1番の課題はVMの作成・削除の時間の長さです。Kubernetesのようなコンテナ技術を利用することで、VM作成・削除をより高速化してより快適な学習環境を提供できるようにしていきたいです。