Skip to main content
1
パブリッククラウドConoHaを使って
OpenStack APIを理解する(初級編)
GMOインターネット株式会社
ホスティング事業部
テクニカルエバンジェリスト
斉藤弘信
hironobu-saitoh@gmo.jp
オープンソースカンファレンス2015 .Enterprise
2
アジェンダ
• OpenStackとConoHa
• パブリッククラウド「ConoHa」
• OpenStackについて(コンポーネントを理解する)
• OpenStack APIの概要
• REST APIの仕様
• APIワークフロー
• 実践
• 認証(Keystone)とコンピュート(Nova)をつかう
• コマンドラインツールを使う(python-openstackclient)
• SDKと実際の利用例
3
ConoHaとOpenStack
4
パブリッククラウド「ConoHa」とは
GMOインターネットが提供するIaaS型クラウドサービス
• 全ストレージにSSDを採用
• 900円/月〜の定額制
• 転送料金なし
• スケールアップ/ダウン対応
• プライベートネットワーク
• ロードバランサー
• オブジェクトストレージ
• 海外リージョン
• OpenStack API
https://www.conoha.jp/
5
サーバー
ネットワーク
ストレージ
ConoHaサービス一覧
リージョン 東京
グローバルネットワーク
(IPv4/IPv6 デュアルスタック)
シンガポール アメリカ(サンノゼ)
ロードバランサー 無料DNS GeoDNS(GSLB)
プライベートネットワーク 追加IPv4 リージョン間転送
自動バックアップ スケールアップ スナップショット
SSD追加 オブジェクトストレージ
仮想サーバー
(All-SSD)
メールサーバー
DBサーバー
(MySQL互換)
A
P
I
GMOバックボーンネットワーク
ISOイメージ管理
6
OpenStackとは
• オープンソースで開発されている、クラウド環境を構築するためのソフ
トウェアコンポーネント群
• いわゆるIaaSの分野(仮想マシン、ネットワーク、ストレージ)を扱う
• ConoHaでは少し前のバージョンの「Juno」を採用
(現行バージョンは10月にリリースされたLiberty)
7
OpenStackとは
https://www.openstack.org/summithttps://www.openstack.org/
• 10月末にOpenStack Summit Tokyoが開催される
• GMOインターネットも基調講演を行った
• 他に日本からはNTT Group、サイバーエージェント、Yahoo!、楽天
• 2016年はOpenStackの普及元年に?
8
®
OpenStackのサービス
Keystone
Nova
Neutron
Cinder
Glance
Swift
Core Services
Optional Services
Ironic
Horizon
Ceilimeter
Heat
Designate
認証
仮想マシン
ネットワーク
ブロックストレージ
仮想マシンイメージ
オブジェクトストレージ
ベアメタルサーバー
ダッシュボード
メータリング
プロビジョニング
DNS
など
9
コンポーネント 利用用途 リージョン
Keystone
ユーザー作成
アカウント認証
All regions
Nova 仮想サーバ(VPS) All regions
Neutron
ローカルネットワーク
VPSへのIPアドレス割り当て
All regions
Cinder ブロックストレージ(追加SSD) All regions
Swift オブジェクトストレージ Tokyo
Glance
初期OSイメージ
自動バックアップ
All regions
Ceilometer
リソース利用状況の収集
決済システムとの連携
Tokyo
Heat cloud-initによるVPSの初期化 All regions
Horizon (管理用) All regions
ConoHaでのOpenStackの利用
10
OpenStack APIの概要
11
OpenStackで管理される項目
1つのOpenStack環境を表す単位。
ConoHaの場合、日本(TYO1)、アメリカ(SJC1)、シンガポール(SIN1)の3つ
エンドポイントもリージョン毎に異なる
ユーザー名 / パスワード
テナント
リージョン
その名の通り、利用者毎のアカウント。パスワードがセットになる
ユーザーが所属するグループのようなもの。
ユーザーは複数のテナントに属することができる
12
OpenStackで管理される項目
13
API概要
• API自体はシンプルな設計のREST API
• 各サービス毎にエンドポイントが存在する
(ConoHaのエンドポイント)
14
APIのワークフロー
15
1. 認証Identity Endpoint(Keystone)にリクエストを送信する。
2. クレデンシャル情報はユーザー名/パスワード/テナント名(もしくはテナントID)
3. トークンとアクセス可能なエンドポイントがJSONで返ってくる
4. それを元にコンポーネントを利用する
APIのワークフロー
16
実践
17
https://www.conoha.jp/docs/
APIのドキュメント
18
SDKなど
19
OpenStack SDK
http://developer.openstack.org/
• C
• C++
• Clojure
• Erlang
• Go
• Java
• Android
• JavaScript
• Python
• Node.js
• Perl
• PHP
• Python
• Ruby
• Yaml
オフィシャルサイトに
ある一覧
20
実際の利用例
仮想環境構築ツール「Vagrant」をConoHaで
使えるようにするProviderの開発
Docker環境を構築する「Docker Machine」を
ConoHaで動作するように開発元へのPR
Go言語
https://github.com/hironobu-s/vagrant-conoha
https://github.com/docker/machine
21
WordPressのメディアストレージとして
オブジェクトストレージを使うプラグインを開発
実際の利用例
ConoHaのISOイメージマウント機能を
CLIから扱えるコマンドラインツールの開発
Go言語
https://wordpress.org/plugins/conoha-object-sync/
https://github.com/hironobu-s/conoha-iso
22
まとめ
23
本日お話ししたこと
• OpenStackとConoHaの関係
• ConoHaについて
• OpenStackとは
• コンポーネントを理解する
• OpenStack APIの概要
• REST APIの仕様
• APIワークフロー
• 認証(Keystone)
• コンピュート(Nova)
• コマンドラインツールを使う
24
Q&A