クラウド環境構築システムVCPのmdxへの適用とOSS化に向けた試作〇大江 和一1, 竹房 あつ子1,2, 丹生 智也1,3, 塙 敏博4,
工藤 知宏4, 合田 憲人1,2
1 国立情報学研究所, 2 総合研究大学院大学,
3 国立遺伝学研究所, 4 東京大学

SWoPP2022 OS-4（2022.7.27）© 2022 National Institute of Informatics

1

はじめに
研究の背景 NIIでは、SINETとクラウドを活用して再現性のある研究教育用アプリ
ケーション環境の構築・運用を行うVCP(Virtual Cloud Provider)の開発・運用を進めている。
 mdx上でデータ収集・集積・解析などを行うアプリケーション構築を行えるようにするためにVCPのmdx適用を行うことにした。

技術的な課題 VCPからmdx計算資源を割り当てる方法の確立

 ユーザ公開されている資源割当て方法は、ポータルGUIからの操作

本研究の成果 mdx portal：mdx計算資源割当てを可能にするREST APIの実現
 VCP：REST APIを駆動するPython拡張ライブラリの実現
2

VCP(Virtual Cloud Provider)とは
アプリケーションテンプレート

オンデマンド構
築サービス(クライアント)

利用機関

オンプレシステムさくら

SINET関連施設

VCコント
ローラ

SINET接続（L2VPN） or インターネット接続

mdx
AWS

利用機関の仮想セグメントVPNで接続された１つ以上のクラウドとオンプレミスシステム（仮想クラウド）でアプリ環境構築を支援 クラウドの異なる制御APIの差異を吸収するVCコントローラを提供
 アプリケーションテンプレートによるアプリケーション環境構築支援

 アプリケーションの構築・運用手順を記述したJupyterNotebook形式のファイル3mdx(データ活用社会創成プラットフォーム)とは
Goal： 用途に応じてオンデマンドで短時間に構築・拡張・融合できるデータ収集・集積・解析機能を提供するプラットホーム
 SINETを活かしたリアルタイム収集・集積・解析環境の動的な構築
 高性能計算環境によるデータ科学と計算科学の融合
 異種データ・異種知識の融合活用の推進と利用者支援https://mdx.jpより引用
4Outline
1. 基盤ソフトウエアVCPの概要
2. VCPのmdx適用に向けた課題
3. mdx REST APIと拡張ライブラリの開発
4. VCPのmdx対応と活用例
5. まとめ5

VCPの概要
オンプレミス
システム

Virtual Cloud
Provider (VCP)
VC コントローラ

秘匿情報
管理

プライベート
レジストリ

仮想ルータ

VCノード
モニタ/可視化

VCP
REST API

実クラウド

実クラウド

実クラウド

プロバイダ A

プロバイダ B

プロバイダ C

Application-1
VM, BM,or Server

VM or BM

VM or BM

VM or BM

Application-2

資源確保、停止、再起動、削除

VM or BMw/ GPU

Terra
form
SINET L2VPN, IPsec
資源管理ートテンプレートアプリケーション
環境管理者(VC 利用者)

VCP SDK

アプリケーション管理

拡張機能

Jupyter
Notebook
クライアント環境アプリケーション利用者

VC ノード6

VCPの概要
オンプレミスシステム

Virtual Cloud
Provider (VCP)
VC コントローラ

実クラウド

実クラウド

実クラウド

プロバイダ A

プロバイダ B

プロバイダ C

Application-1
VM, BM,or Server

VM or BM

秘匿情報
レジストリ
クライアント側からのアクセス方法
管理
VCノード
に関して説明資源確保、停止、
仮想ルータ
モニタ/可視化

VM or BM

VM or BM

プライベートApplication-2

再起動、削除VCPREST APIVM or BMw/ GPU

Terra
form
SINET L2VPN, IPsec
資源管理ートテンプ
レート

アプリケーション
環境管理者(VC 利用者)

VCP SDK

アプリケーション
管理

拡張機能

Jupyter
Notebook
クライアント環境

アプリケーション利用者

VC ノード7

クライアント側からのアクセス方法
VC利用者

 アプリケーションテンプレート*からVCP
SDKを利用してVCP REST APIを操作

VCコントローラ

 VCP REST API（プロバイダIFを抽象化）からTerraformを介して各クラウドを操作

Jupyter Notebook
VCP SDK (Python)
各クラウド固有設定
VCコントローラ

VCP REST API
Terraform..

各クラウドへ*: JupyterNotebook（+NII拡張）で記述

8

クライアント側からのアクセス方法
VCP SDK（各クラウド固有設定）

 各クラウドの固有設定をSDK内に隠蔽することで、Jupyter Notebookを変更することなくクラウド間での使い回しを実現

Jupyter Notebook
VCP SDK (Python)
各クラウド固有設定
VCコントローラ

VCP REST API
Terraform..

各クラウドへフレーバーファイルで各クラウドのmediumを定義

9

VCPの概要
オンプレミス
システム

Virtual Cloud
Provider (VCP)
VC コントローラ

秘匿情報管理プライベートレジストリ

仮想ルータ

VCノード
モニタ/可視化

VCP
REST API

実クラウド

実クラウド

実クラウド

プロバイダ Aプロバイダ B

プロバイダ C

Application-1
VM, BM,or Server

VM or BM

VM or BM

VM or BM

Application-2

資源確保、停止、再起動、削除

VM or BMw/ GPU

Terraform
SINET L2VPN, IPsec

VCノードの構成を説明

資源管理ートテンプレートアプリケーション
環境管理者(VC 利用者)

VCP SDK

アプリケーション管理

拡張機能

Jupyter
Notebook
クライアント環境

アプリケーション利用者

VC ノード10

VCノード構成
Docker in Docker構成
 ベースコンテナ
死活監視やメトリクス収集などシステムの基本機能
 アプリケーションコンテナ
アプリケーションと関連ソフトウェアをベースコンテナ上に起動

ユーザのアプリケーションコンテナ

appbins/libs

Container
VCP のベースコンテナ

appbins/libs

Container

VCP Base Container
OS (kernel)
Hardware / VM
11

VCPのmdx適用に向けた実装上の課題
理想はこの構成Jupyter Notebook

Terraformへの組み込み

 Terraform Provider Pluginが必要mdxの計算資源管理

VCP SDK (Python)
各クラウド固有設定

 VMware vSphere ⇒ Terraform
Provider Pluginは存在

VCコントローラ

VCP REST API
Terraform..

12

VCPのmdx適用に向けた実装上の課題
Terraformへの組み込み

 Terraform Provider Pluginが必要

Jupyter Notebook

mdxの計算資源管理

VCP SDK (Python)
各クラウド固有設定
VCコントローラ VMware vSphere ⇒ Terraform
Provider Pluginは存在 VMware vSphere APIはユーザ非公
開 ＆ 独自の拡張

VCP REST API
Terraform..

Terraform Provider Pluginの大幅な修正が必要⇒ このアプローチは不採用
13

mdx REST APIとPython拡張ライブラリの開発
mdx portal REST API mdx上にVMのデプロイやネットワーク環境設定などの操作が可能

VCP

 Python拡張ライブラリ アプリケーションテンプレートから、mdx REST APIを呼び出すことで、mdx上へのVMデプロイやネットワーク環境設定を行う。

VCPからmdx上にアプリケーション環境構築が可能となる！

14

mdx REST APIの実行例

15

Python拡張ライブラリの実行例

16

VCPのmdx対応（システム構成）
Jupyter Notebook
VCP SDK (Python)
各クラウド固有設定

Python拡張ライブラリ

VCコントローラ

VCP REST API
Terraform..

Step3, sshによるデプロイ（App. Container）
Step 1, mdx REST APIによるデプロイ（VM）

各クラウドへStep 2, sshによるデプロイ（VCP Base Container）

17

VCPのmdx対応（動作フロー）
mdxポータル
mdx RESTAPI
Jupyter

Server

VC CTRL(portable)

mdxノード①

アプリ #1

アプリ #2

アプリ #3

ベースコンテナ

ベースコンテナ

ベースコンテナ

mdxノードmdxノードmdxノードOCSイメージ（Jupyter + VC CTRL）を起動② mdx REST APIでOCS用のノードを確保③ VC CTRL経由でベースコンテナを起動④ ベースコンテナ上でアプリケーション環境構築
18

mdx上にCoursewareHub環境構築（活用例）CoursewareHubとは

 NIIで開発を進めている講義・演習システム
 JupyterHub +講義のためのモジュール群

 VCP用アプリケーションテンプレートは以下から公開
 https://github.com/nii-gakunin-cloud/ocstemplates/tree/master/CoursewareHubmdx上に構築した構成

 Manager x1, worker x2
 Manager JupyterHubなどのシステムコンテナ

 Worker Notebook Serverコンテナ（ユーザ毎）
CoursewareHubでのデータ集約・配信（2021年度 NII情報処理技術セミナー（クラウド編）より引用）

19

mdx上にCoursewareHub環境構築（活用例）manager
PostgreSQLAutoproxy

Jupyter
Hubworker
Single-user Jupyter
notebook serverSingle-user Jupyter
notebook serverSingle-user Jupyter
notebook server

Docker Swarm
VCP Base Container

VCP Base Container

VCP Base Container

mdxノードmdxノードmdxノードNFS

以下にCoursewareHub構築のデモ動画があります（17分頃から）
https://www.youtube.com/watch?v=vBVhxgZvBK0（NII オープンフォーラム2022 クラウドトラック２
学認クラウドオンデマンド構築サービス (2)）

20

関連研究Ansible

 オーケストレーションやソフトウェアデプロイメントが可能

Kubernetes(K8s) デプロイやスケーリングを自動化したり，コンテナ化されたアプリケーション管理が可能
 VCPでは、Literate Computing for ReproducibleInfrastructure(LC4RI)という方法論に基づき，Jupyter Notebook から操作することで「機械的に再現できる、人が読み解ける手順」となっており、ここがAnsibleやK8sと異なる。

Chameleon Cloud（米国アカデミッククラウド） Jupyter Notebook で計算環境の構築手順を共有しているが、Chameleon Cloud の利用を前提としている点が異なる。
21

まとめ
VCP (Virtual Cloud Provider) VPNで接続された１つ以上のクラウドとオンプレミスシステム（仮想クラウド）でアプリ環境構築を支援

今回、mdx上でのアプリ環境構築機能を実装
 mdx portal: REST API
 VCP: Python拡張ライブラリ

CoursewareHubをmdx上に構築することで有効性を確認
今回開発したVCPポータブル版（VCコントローラを利用機関で運用）はGitHubよりソース等を公開予定。
22

学認クラウドオンデマンド構築サービス（OCS）
OCSとは VCPを用いてユーザアプリケーションの構築・運用を提供
 サポートプロバイダ
 商用プロバイダ&オンブレ：
 学術プロバイダ：

AWS, Azure, さくら, Oracle, VMware vSphere

北大、mdx（new!）サービスの提供形態
 サービス版
 NIIクラスタ内でVCコントローラを運用

 ポータブル版（今年度よりサポート予定）
 利用機関様側環境でVCコントローラを運用
 ソースコードやインストールスクリプトを提供するGitHubを準備中
23

学認クラウドオンデマンド構築サービス（OCS）
サービス版
長所：
NII側でVCP運用・保守
仮想ルータが利用可能
短所：
NIIへのVCP構築申請が必要

NII
VCコント
ローラ

利用機関

ポータブル版
長所：
VCP構築申請が不要となり、すぐに利用可
短所：
利用機関側でVCP構築・運用・保守

今年度よりサポート開始予定！

NII

VCコント
ローラ
利用機関
24

OCSハンズオン実習
開催日時： ２０２２年９月７日 9:30-12:30
開催場所： 北海道大学（北大クラウドウィーク2022内で実施）and online
プログラム（暫定） 「学認クラウドオンデマンド構築サービスの概要」（講演） 「mdxとVCP Portable版によるオンデマンド構築サービスの基礎と活用方法」（ハンズオン実習（視聴参加も可）） VCPポータブル版のmdxへの構築
 VCPポータブル版によるオンデマンド構築サービスの基礎と活用方法
 オンデマンド構築サービスを使った演習（JupyterHubの配備とカスタマイズ） 「公開テンプレート、お試し環境等の紹介」（講演）申込方法：

 8/18より申込開始予定。申込方法は以下に掲載予定
 https://cloud.gakunin.jp/25

Thank You.

26