SlideShare a Scribd company logo
1 of 23
Download to read offline
OpenStack API
       吉山あきら
 akirayoshiyama@gmail.com
目次
●   OpenStack 各コンポーネントの API
●   OpenStack API
●   OpenStack クライアントライブラリ
OpenStack 各コンポーネントの API
Nova の API
標準装備の API
●   OpenStack Compute API (v2)
●   Amazon EC2 互換 API ※Grizzly リリースで廃止予定
●   Amazon EC2 互換 Metadata API
●   OpenStack Volume API (v1) ※Grizzly リリースで廃止予定
サードパーティ API
●   Cloud Infrastructure Management Interface ( CIMI )
    –   https://github.com/osaddon/cimi/
●   Open Cloud Computing Interface (OCCI)
    –   https://github.com/tmetsch/occi-os
Swift の API
標準装備の API
●   OpenStack Object Storage API (v2.0)
サードパーティ API
●   Amazon S3 互換 API
    –   https://github.com/fujita/swift3
●   Cloud Data Management Interface (CDMI)
    –   https://github.com/osaddon/cdmi
その他のコンポーネントの API
Glance
●   OpenStack Image API (v1.1)
Keystone
●   OpenStack Identity API (v2.0)
Quantum
●   OpenStack Networking API (v2.0)
Cinder
●   OpenStack Volume API (v1.0)
    ※Nova の Volume API と同一
OpenStack API
OpenStack API 登場以前
Nova は当初 Amazon EC2 互換 API のみ
●   標準 CLI は Eualyptus 用の Euca2ools
独自の機能拡張をする際、 EC2 互換 API では…
●   クライアントツールを改造/独自開発する必要がある
●   結果的に API の互換性が低下する



OpenStack プロジェクトで自由に拡張可能な
    RESTful API を開発する事にした
OpenStack API
●   Rackspace のクラウドサービス API を参考
    ●   比較的素直な RESTful API
          リソースの create/read/update/delete が基本
●   ユーザ認証とサービス操作で別の URL を使用
    ●   ユーザ認証… Keystone サービス API の URL
    ●   サービス操作… Keystone から返されたエンドポイント URL
OpenStack API のユーザ認証
                   サービス API
                   ( 5000/TCP )
  ① ユーザ名、
  パスワード→                    Keystone
            ←② エンドポイント、
                トークン




                             Nova 等
OpenStack API のサービス操作


   ③ トークン、操作→             Keystone
                   管理 API
                                ↓⑤ ロール
                ( 35357/TCP )


                   ④ トークン↑

                           Nova 等
            ←⑥ 操作結果
                  OpenStack Compute API
                  ( 8774/TCP )
エンドポイントとトークン
エンドポイント
 各種 OpenStack API の URL
 (全コンポーネントの URL が一度に提供される)
トークン
 各種 OpenStack API のユーザ認証で
 ユーザ名・パスワードの代わりに使用する文字列
 –   有効期限がある
 –   HTTP のセッションクッキーと同様
参考: Amazon EC2 互換 API


         ① 操作・署名→                 Keystone
                           管理 API
                                        ↓③ ロール
                        ( 35357/TCP )


                         ↑② 操作・署名
署名( Signature ):
ユーザ名・操作日時を含む
                                   Nova 等
HTTP リクエストボディを
                    ←④ 操作結果
ユーザのシークレットキーで             Amazon EC2 互換 API
計算したハッシュ値                 ( 8773/TCP )
Curl での例①:ユーザ認証
$ curl
   -d '{"auth": {"tenantName": "tenant1”,           実際には1行で記述
       "passwordCredentials":
       {"username": "joe", "password": "shhh"}}}'
   -H "Content-type: application/json"
   http://localhost:5000/v2.0/tokens              Keystone の認証 API

{"access": {
                                                           実行結果を
  "token": {"expires": "2012-10-26T22:27:40Z",
               "id": "2cd10cc33d034a50b30f9867241c93cc",   見やすく加工
               "tenant": ... },
  "serviceCatalog": [
     {"nova": {
         "endpoints": [
    {"adminURL": "http://10.0.2.15:8774/v2.0",
             "region":   "RegionOne",
            "id": “....”,
       "internalURL": "http://10.0.2.15:8774/v2.0",
     "publicURL": "http://10.0.2.15:8774/v2.0"}],
         "name": "nova",
         "type": "compute”,
    ...},
Curl での例②:サービス操作
$ curl -v
   -H "X-Auth-Token:2cd10cc33d034a50b30f9867241c93cc"  
   http://10.0.2.15:8774/v2.0/images
{"images": [                             Nova の OpenStack Compute API
  {"id": 3, "links": [
  {"href": "http://10.0.2.15:8774/v2.0/images/3", "rel": "self"},
  {"href": "http://10.0.2.15:8774/images/3", "rel": "bookmark"}],
   "name": "ubuntu-11.04-server"},
  {"id": 2, "links": [
  {"href": "http://10.0.2.15:8774/v2.0/images/2", "rel": "self"},
  {"href": "http://10.0.2.15:8774/images/2", "rel": "bookmark"}],
   "name": "ubuntu-11.04-initrd"},
  {"id": 1, "links": [
  {"href": "http://10.0.2.15:8774/v2.0/images/1", "rel": "self"},
  {"href": "http://10.0.2.15:8774/images/1", "rel": "bookmark"}],
   "name": "ubuntu-11.04-kernel"}]}
OpenStack クライアントライブラリ
クライアントライブラリ登場以前
各コンポーネントのソースコード中にクライアント
アクセス用のソースコード( client.py 等)があり、
これを他のコンポーネントが利用していた
●   Nova 用のサーバに Keystone や Glance の
    ソースコードを全てインストール(無駄が多い)
●   他コンポーネント用サーバも同様



    コンポーネント毎の軽量ライブラリが必要
OpenStack クライアントライブラリ
OpenStack の複雑なユーザ認証と、
各種 OpenStack API 固有の利用可能な操作を
Python で簡単に扱う為のライブラリ群
●   ネーミングルール
        python-< コンポーネント名 >client
●   それぞれ API 操作用の CLI を含む
    –   python-novaclient には nova コマンドが付属している。
        他のライブラリも同様
    –   Glance だけ Glance 本体のソースコードに
        古い glance コマンドが残っている ※廃止予定
各ライブラリ名とバージョン
                                    Folsom 時の
コンポーネント     クライアントライブラリ名
                                     バージョン
  Nova        python-novaclient         2.9.0
  Swift       python-swiftclient        1.2.0
 Glance      python-glanceclient        0.5.1
Keystone    python-keystoneclient       0.1.3
Quantum     python-quantumclient         2.1
 Cinder      python-cinderclient        1.0.0
  ※OpenStack ライブラリのバージョン番号のポリシーがコロコロ変わるので、
    git のタグには essex-1 や 2012.1 等が存在する
使用例 (python-novaclient)
# python-novaclient をインポート
from novaclient.v1_1 import client

# 操作用インスタンスを作成
# ※USER, PASS, TENANT, AUTH_URL は文字列変数
nt = client.Client(USER, PASS, TENANT, AUTH_URL,
                   service_type="compute")

# サーバの一覧
nt.servers.list()

# サーバの作成
# ※NAME, IMAGE, FLAVOR, KEYNAME は文字列変数
nt.servers.create(NAME, IMAGE, FLAVOR,
                  keyname=KEYNAME)
参考情報
●   OpenStack API Quick Start
      http://docs.openstack.org/api/quick-start/content/
●   Programming OpenStack Compute API
    with Shell and Python
      http://docs.openstack.org/api/openstack-compute/  
      programmer/content/
●   API Specifications
      http://docs.openstack.org/api/api-specs.html
●   API Complete Reference
      http://api.openstack.org/
Q&A
お疲れ様でした!

More Related Content

What's hot

Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14Masahiro Nagano
 
『How to build a High Performance PSGI/Plack Server』のその後と ISUCON3を受けての話題
『How to build a High Performance PSGI/Plack Server』のその後と ISUCON3を受けての話題『How to build a High Performance PSGI/Plack Server』のその後と ISUCON3を受けての話題
『How to build a High Performance PSGI/Plack Server』のその後と ISUCON3を受けての話題Masahiro Nagano
 
On-premise コンテナ基盤と Hardware LB を使った "type LoadBalancer"
On-premise コンテナ基盤と Hardware LB を使った "type LoadBalancer"On-premise コンテナ基盤と Hardware LB を使った "type LoadBalancer"
On-premise コンテナ基盤と Hardware LB を使った "type LoadBalancer"Masaya Aoyama
 
第9回 OpenStack 勉強会(Glance)
第9回 OpenStack 勉強会(Glance)第9回 OpenStack 勉強会(Glance)
第9回 OpenStack 勉強会(Glance)Hiroki Ishikawa
 
Ansible 2.0を使って組む kubernetesクラスタ vol.1
Ansible 2.0を使って組む kubernetesクラスタ vol.1Ansible 2.0を使って組む kubernetesクラスタ vol.1
Ansible 2.0を使って組む kubernetesクラスタ vol.1Hidetoshi Hirokawa
 
AWSをコードで定義する
AWSをコードで定義するAWSをコードで定義する
AWSをコードで定義するSugawara Genki
 
イベント駆動プログラミングとI/O多重化
イベント駆動プログラミングとI/O多重化イベント駆動プログラミングとI/O多重化
イベント駆動プログラミングとI/O多重化Gosuke Miyashita
 
ISUCONの勝ち方 YAPC::Asia Tokyo 2015
ISUCONの勝ち方 YAPC::Asia Tokyo 2015ISUCONの勝ち方 YAPC::Asia Tokyo 2015
ISUCONの勝ち方 YAPC::Asia Tokyo 2015Masahiro Nagano
 
10分で作る Node.js Auto Scale 環境 with CloudFormation
10分で作る Node.js Auto Scale 環境 with CloudFormation10分で作る Node.js Auto Scale 環境 with CloudFormation
10分で作る Node.js Auto Scale 環境 with CloudFormationKazuyuki Honda
 
20140612_Docker上でCloudStackを動かしてみる!!
20140612_Docker上でCloudStackを動かしてみる!!20140612_Docker上でCloudStackを動かしてみる!!
20140612_Docker上でCloudStackを動かしてみる!!Midori Oge
 
Spark Streaming Snippets
Spark Streaming SnippetsSpark Streaming Snippets
Spark Streaming SnippetsKoji Agawa
 
TerraformでECS+ECRする話
TerraformでECS+ECRする話TerraformでECS+ECRする話
TerraformでECS+ECRする話Satoshi Hirayama
 
Let's Use OKE
Let's Use OKELet's Use OKE
Let's Use OKENeo Xrea
 
FIWAREシステム内の短期履歴の管理
FIWAREシステム内の短期履歴の管理FIWAREシステム内の短期履歴の管理
FIWAREシステム内の短期履歴の管理fisuda
 
10分でわかる marathon-lb
10分でわかる marathon-lb10分でわかる marathon-lb
10分でわかる marathon-lbShuji Yamada
 
JAWS-UG CLI #25 LT - AWS Tools for Windows PowerShellでログを取得
JAWS-UG CLI #25 LT - AWS Tools for Windows PowerShellでログを取得JAWS-UG CLI #25 LT - AWS Tools for Windows PowerShellでログを取得
JAWS-UG CLI #25 LT - AWS Tools for Windows PowerShellでログを取得Nobuhiro Nakayama
 
Introduction to Magnum (JP)
Introduction to Magnum (JP)Introduction to Magnum (JP)
Introduction to Magnum (JP)Motohiro OTSUKA
 

What's hot (20)

Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14
 
『How to build a High Performance PSGI/Plack Server』のその後と ISUCON3を受けての話題
『How to build a High Performance PSGI/Plack Server』のその後と ISUCON3を受けての話題『How to build a High Performance PSGI/Plack Server』のその後と ISUCON3を受けての話題
『How to build a High Performance PSGI/Plack Server』のその後と ISUCON3を受けての話題
 
On-premise コンテナ基盤と Hardware LB を使った "type LoadBalancer"
On-premise コンテナ基盤と Hardware LB を使った "type LoadBalancer"On-premise コンテナ基盤と Hardware LB を使った "type LoadBalancer"
On-premise コンテナ基盤と Hardware LB を使った "type LoadBalancer"
 
第9回 OpenStack 勉強会(Glance)
第9回 OpenStack 勉強会(Glance)第9回 OpenStack 勉強会(Glance)
第9回 OpenStack 勉強会(Glance)
 
Ansible 2.0を使って組む kubernetesクラスタ vol.1
Ansible 2.0を使って組む kubernetesクラスタ vol.1Ansible 2.0を使って組む kubernetesクラスタ vol.1
Ansible 2.0を使って組む kubernetesクラスタ vol.1
 
Amazon ECS事始め
Amazon ECS事始めAmazon ECS事始め
Amazon ECS事始め
 
AWSをコードで定義する
AWSをコードで定義するAWSをコードで定義する
AWSをコードで定義する
 
イベント駆動プログラミングとI/O多重化
イベント駆動プログラミングとI/O多重化イベント駆動プログラミングとI/O多重化
イベント駆動プログラミングとI/O多重化
 
ISUCONの勝ち方 YAPC::Asia Tokyo 2015
ISUCONの勝ち方 YAPC::Asia Tokyo 2015ISUCONの勝ち方 YAPC::Asia Tokyo 2015
ISUCONの勝ち方 YAPC::Asia Tokyo 2015
 
10分で作る Node.js Auto Scale 環境 with CloudFormation
10分で作る Node.js Auto Scale 環境 with CloudFormation10分で作る Node.js Auto Scale 環境 with CloudFormation
10分で作る Node.js Auto Scale 環境 with CloudFormation
 
20140612_Docker上でCloudStackを動かしてみる!!
20140612_Docker上でCloudStackを動かしてみる!!20140612_Docker上でCloudStackを動かしてみる!!
20140612_Docker上でCloudStackを動かしてみる!!
 
Spark Streaming Snippets
Spark Streaming SnippetsSpark Streaming Snippets
Spark Streaming Snippets
 
TerraformでECS+ECRする話
TerraformでECS+ECRする話TerraformでECS+ECRする話
TerraformでECS+ECRする話
 
Aws cli
Aws cliAws cli
Aws cli
 
Let's Use OKE
Let's Use OKELet's Use OKE
Let's Use OKE
 
FIWAREシステム内の短期履歴の管理
FIWAREシステム内の短期履歴の管理FIWAREシステム内の短期履歴の管理
FIWAREシステム内の短期履歴の管理
 
10分でわかる marathon-lb
10分でわかる marathon-lb10分でわかる marathon-lb
10分でわかる marathon-lb
 
JAWS-UG CLI #25 LT - AWS Tools for Windows PowerShellでログを取得
JAWS-UG CLI #25 LT - AWS Tools for Windows PowerShellでログを取得JAWS-UG CLI #25 LT - AWS Tools for Windows PowerShellでログを取得
JAWS-UG CLI #25 LT - AWS Tools for Windows PowerShellでログを取得
 
Introduction to Magnum (JP)
Introduction to Magnum (JP)Introduction to Magnum (JP)
Introduction to Magnum (JP)
 
Ansible handson
Ansible handsonAnsible handson
Ansible handson
 

Viewers also liked

OpenStack API's and WSGI
OpenStack API's and WSGIOpenStack API's and WSGI
OpenStack API's and WSGIMike Pittaro
 
OpenStack Summit in Hong Kong 参加報告
OpenStack Summit in Hong Kong 参加報告OpenStack Summit in Hong Kong 参加報告
OpenStack Summit in Hong Kong 参加報告Akira Yoshiyama
 
OpenStack Study#9 JOSUG
OpenStack Study#9 JOSUGOpenStack Study#9 JOSUG
OpenStack Study#9 JOSUGHideki Saito
 
OpenStack開発のいろはの「い」
OpenStack開発のいろはの「い」OpenStack開発のいろはの「い」
OpenStack開発のいろはの「い」VirtualTech Japan Inc.
 
『フルスタックエンジニアを目指す』ためのOpenStack勉強術 - OpenStack最新情報セミナー 2014年2月
『フルスタックエンジニアを目指す』ためのOpenStack勉強術 - OpenStack最新情報セミナー 2014年2月『フルスタックエンジニアを目指す』ためのOpenStack勉強術 - OpenStack最新情報セミナー 2014年2月
『フルスタックエンジニアを目指す』ためのOpenStack勉強術 - OpenStack最新情報セミナー 2014年2月VirtualTech Japan Inc.
 
OpenStack 最新動向 2015/2
OpenStack 最新動向 2015/2OpenStack 最新動向 2015/2
OpenStack 最新動向 2015/2Akira Yoshiyama
 
OpenStack Summit in Atlanta 参加報告
OpenStack Summit in Atlanta 参加報告OpenStack Summit in Atlanta 参加報告
OpenStack Summit in Atlanta 参加報告Akira Yoshiyama
 
OpenStack概要(オープンクラウド最新動向)
OpenStack概要(オープンクラウド最新動向)OpenStack概要(オープンクラウド最新動向)
OpenStack概要(オープンクラウド最新動向)Akira Yoshiyama
 
OpenStack Block Storage (Cinder)
OpenStack Block Storage (Cinder)OpenStack Block Storage (Cinder)
OpenStack Block Storage (Cinder)Akira Yoshiyama
 
Webクローリング&スクレイピングの最前線 公開用
Webクローリング&スクレイピングの最前線 公開用Webクローリング&スクレイピングの最前線 公開用
Webクローリング&スクレイピングの最前線 公開用Lumin Hacker
 
OpenStackをさらに”使う”技術 概要と基礎操作
OpenStackをさらに”使う”技術 概要と基礎操作OpenStackをさらに”使う”技術 概要と基礎操作
OpenStackをさらに”使う”技術 概要と基礎操作irix_jp
 
WebDB Forum 2016 gunosy
WebDB Forum 2016 gunosyWebDB Forum 2016 gunosy
WebDB Forum 2016 gunosyHiroaki Kudo
 

Viewers also liked (20)

OpenStack API's and WSGI
OpenStack API's and WSGIOpenStack API's and WSGI
OpenStack API's and WSGI
 
OpenStack hyeroglyphs
OpenStack hyeroglyphsOpenStack hyeroglyphs
OpenStack hyeroglyphs
 
OpenStack Summit in Hong Kong 参加報告
OpenStack Summit in Hong Kong 参加報告OpenStack Summit in Hong Kong 参加報告
OpenStack Summit in Hong Kong 参加報告
 
OpenStack の利用
OpenStack の利用OpenStack の利用
OpenStack の利用
 
OpenStack Study#9 JOSUG
OpenStack Study#9 JOSUGOpenStack Study#9 JOSUG
OpenStack Study#9 JOSUG
 
OpenStack開発のいろはの「い」
OpenStack開発のいろはの「い」OpenStack開発のいろはの「い」
OpenStack開発のいろはの「い」
 
20130209勉強会
20130209勉強会20130209勉強会
20130209勉強会
 
Tour of Scraping
Tour of ScrapingTour of Scraping
Tour of Scraping
 
『フルスタックエンジニアを目指す』ためのOpenStack勉強術 - OpenStack最新情報セミナー 2014年2月
『フルスタックエンジニアを目指す』ためのOpenStack勉強術 - OpenStack最新情報セミナー 2014年2月『フルスタックエンジニアを目指す』ためのOpenStack勉強術 - OpenStack最新情報セミナー 2014年2月
『フルスタックエンジニアを目指す』ためのOpenStack勉強術 - OpenStack最新情報セミナー 2014年2月
 
cinder-agent
cinder-agentcinder-agent
cinder-agent
 
20130319勉強会
20130319勉強会20130319勉強会
20130319勉強会
 
OpenStack 最新動向 2015/2
OpenStack 最新動向 2015/2OpenStack 最新動向 2015/2
OpenStack 最新動向 2015/2
 
OpenStack Summit in Atlanta 参加報告
OpenStack Summit in Atlanta 参加報告OpenStack Summit in Atlanta 参加報告
OpenStack Summit in Atlanta 参加報告
 
OpenStack概要(オープンクラウド最新動向)
OpenStack概要(オープンクラウド最新動向)OpenStack概要(オープンクラウド最新動向)
OpenStack概要(オープンクラウド最新動向)
 
実践スクレイピング
実践スクレイピング実践スクレイピング
実践スクレイピング
 
OpenStack Block Storage (Cinder)
OpenStack Block Storage (Cinder)OpenStack Block Storage (Cinder)
OpenStack Block Storage (Cinder)
 
Webクローリング&スクレイピングの最前線 公開用
Webクローリング&スクレイピングの最前線 公開用Webクローリング&スクレイピングの最前線 公開用
Webクローリング&スクレイピングの最前線 公開用
 
OpenStackをさらに”使う”技術 概要と基礎操作
OpenStackをさらに”使う”技術 概要と基礎操作OpenStackをさらに”使う”技術 概要と基礎操作
OpenStackをさらに”使う”技術 概要と基礎操作
 
OpenStack概要
OpenStack概要OpenStack概要
OpenStack概要
 
WebDB Forum 2016 gunosy
WebDB Forum 2016 gunosyWebDB Forum 2016 gunosy
WebDB Forum 2016 gunosy
 

Similar to OpenStack API

20120528 aws meister-reloaded-awssd-kforjava-public
20120528 aws meister-reloaded-awssd-kforjava-public20120528 aws meister-reloaded-awssd-kforjava-public
20120528 aws meister-reloaded-awssd-kforjava-publicAmazon Web Services Japan
 
AWSとGCPを使用したインフラ環境
AWSとGCPを使用したインフラ環境AWSとGCPを使用したインフラ環境
AWSとGCPを使用したインフラ環境Katsutoshi Nagaoka
 
How to Make Own Framework built on OWIN
How to Make Own Framework built on OWINHow to Make Own Framework built on OWIN
How to Make Own Framework built on OWINYoshifumi Kawai
 
AKS と ACI を組み合わせて使ってみた
AKS と ACI を組み合わせて使ってみたAKS と ACI を組み合わせて使ってみた
AKS と ACI を組み合わせて使ってみたHideaki Aoyagi
 
Azure で Serverless 初心者向けタッチ&トライ
Azure で Serverless 初心者向けタッチ&トライAzure で Serverless 初心者向けタッチ&トライ
Azure で Serverless 初心者向けタッチ&トライMasanobu Sato
 
AWS SDK for Haskell開発
AWS SDK for Haskell開発AWS SDK for Haskell開発
AWS SDK for Haskell開発Nomura Yusuke
 
AWS ではじめる Programmable Cloud
AWS ではじめる Programmable CloudAWS ではじめる Programmable Cloud
AWS ではじめる Programmable CloudTakashi Someda
 
AWS Black Belt Tech シリーズ 2015 - Amazon API Gateway
AWS Black Belt Tech シリーズ 2015 - Amazon API GatewayAWS Black Belt Tech シリーズ 2015 - Amazon API Gateway
AWS Black Belt Tech シリーズ 2015 - Amazon API GatewayAmazon Web Services Japan
 
Jaws−横浜ハンズオンーCloudFormation w/ vpc 2/3
Jaws−横浜ハンズオンーCloudFormation w/ vpc 2/3Jaws−横浜ハンズオンーCloudFormation w/ vpc 2/3
Jaws−横浜ハンズオンーCloudFormation w/ vpc 2/3Yasuhiro Araki, Ph.D
 
Windows 開発者のための Dev&Ops on AWS
Windows 開発者のための Dev&Ops on AWSWindows 開発者のための Dev&Ops on AWS
Windows 開発者のための Dev&Ops on AWSAmazon Web Services Japan
 
Handlersocket etc. 20110906
Handlersocket etc. 20110906Handlersocket etc. 20110906
Handlersocket etc. 20110906akirahiguchi
 
BCPに活かせ!一撃 CloudFormation
BCPに活かせ!一撃 CloudFormationBCPに活かせ!一撃 CloudFormation
BCPに活かせ!一撃 CloudFormation真吾 吉田
 
20120303 jaws summit-meister-04_cloud_formation
20120303 jaws summit-meister-04_cloud_formation20120303 jaws summit-meister-04_cloud_formation
20120303 jaws summit-meister-04_cloud_formationAmazon Web Services Japan
 
Aws meister-cloud formation-summit2012
Aws meister-cloud formation-summit2012Aws meister-cloud formation-summit2012
Aws meister-cloud formation-summit2012Akio Katayama
 
Cloudstack user group meeting in osaka
Cloudstack user group meeting in osakaCloudstack user group meeting in osaka
Cloudstack user group meeting in osakaNaotaka Jay HOTTA
 
ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説Akira Inoue
 
CloudFormation 詳細 -ほぼ週刊AWSマイスターシリーズ第6回-
CloudFormation 詳細 -ほぼ週刊AWSマイスターシリーズ第6回- CloudFormation 詳細 -ほぼ週刊AWSマイスターシリーズ第6回-
CloudFormation 詳細 -ほぼ週刊AWSマイスターシリーズ第6回- SORACOM, INC
 
AWS Glueを使った Serverless ETL の実装パターン
AWS Glueを使った Serverless ETL の実装パターンAWS Glueを使った Serverless ETL の実装パターン
AWS Glueを使った Serverless ETL の実装パターンseiichi arai
 

Similar to OpenStack API (20)

20120528 aws meister-reloaded-awssd-kforjava-public
20120528 aws meister-reloaded-awssd-kforjava-public20120528 aws meister-reloaded-awssd-kforjava-public
20120528 aws meister-reloaded-awssd-kforjava-public
 
[Japan Tech summit 2017] DEP 005
[Japan Tech summit 2017] DEP 005[Japan Tech summit 2017] DEP 005
[Japan Tech summit 2017] DEP 005
 
AWSとGCPを使用したインフラ環境
AWSとGCPを使用したインフラ環境AWSとGCPを使用したインフラ環境
AWSとGCPを使用したインフラ環境
 
How to Make Own Framework built on OWIN
How to Make Own Framework built on OWINHow to Make Own Framework built on OWIN
How to Make Own Framework built on OWIN
 
AKS と ACI を組み合わせて使ってみた
AKS と ACI を組み合わせて使ってみたAKS と ACI を組み合わせて使ってみた
AKS と ACI を組み合わせて使ってみた
 
Azure で Serverless 初心者向けタッチ&トライ
Azure で Serverless 初心者向けタッチ&トライAzure で Serverless 初心者向けタッチ&トライ
Azure で Serverless 初心者向けタッチ&トライ
 
AWS SDK for Haskell開発
AWS SDK for Haskell開発AWS SDK for Haskell開発
AWS SDK for Haskell開発
 
AWS ではじめる Programmable Cloud
AWS ではじめる Programmable CloudAWS ではじめる Programmable Cloud
AWS ではじめる Programmable Cloud
 
AWS Black Belt Tech シリーズ 2015 - Amazon API Gateway
AWS Black Belt Tech シリーズ 2015 - Amazon API GatewayAWS Black Belt Tech シリーズ 2015 - Amazon API Gateway
AWS Black Belt Tech シリーズ 2015 - Amazon API Gateway
 
Jaws−横浜ハンズオンーCloudFormation w/ vpc 2/3
Jaws−横浜ハンズオンーCloudFormation w/ vpc 2/3Jaws−横浜ハンズオンーCloudFormation w/ vpc 2/3
Jaws−横浜ハンズオンーCloudFormation w/ vpc 2/3
 
Windows 開発者のための Dev&Ops on AWS
Windows 開発者のための Dev&Ops on AWSWindows 開発者のための Dev&Ops on AWS
Windows 開発者のための Dev&Ops on AWS
 
Handlersocket etc. 20110906
Handlersocket etc. 20110906Handlersocket etc. 20110906
Handlersocket etc. 20110906
 
BCPに活かせ!一撃 CloudFormation
BCPに活かせ!一撃 CloudFormationBCPに活かせ!一撃 CloudFormation
BCPに活かせ!一撃 CloudFormation
 
20120303 jaws summit-meister-04_cloud_formation
20120303 jaws summit-meister-04_cloud_formation20120303 jaws summit-meister-04_cloud_formation
20120303 jaws summit-meister-04_cloud_formation
 
Aws meister-cloud formation-summit2012
Aws meister-cloud formation-summit2012Aws meister-cloud formation-summit2012
Aws meister-cloud formation-summit2012
 
Cloudstack user group meeting in osaka
Cloudstack user group meeting in osakaCloudstack user group meeting in osaka
Cloudstack user group meeting in osaka
 
ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説
 
CloudFormation 詳細 -ほぼ週刊AWSマイスターシリーズ第6回-
CloudFormation 詳細 -ほぼ週刊AWSマイスターシリーズ第6回- CloudFormation 詳細 -ほぼ週刊AWSマイスターシリーズ第6回-
CloudFormation 詳細 -ほぼ週刊AWSマイスターシリーズ第6回-
 
AWS Glueを使った Serverless ETL の実装パターン
AWS Glueを使った Serverless ETL の実装パターンAWS Glueを使った Serverless ETL の実装パターン
AWS Glueを使った Serverless ETL の実装パターン
 
Clrh 110716 wcfwf
Clrh 110716 wcfwfClrh 110716 wcfwf
Clrh 110716 wcfwf
 

More from Akira Yoshiyama

OpenStack Trainリリース (Rev.2)
OpenStack Trainリリース (Rev.2)OpenStack Trainリリース (Rev.2)
OpenStack Trainリリース (Rev.2)Akira Yoshiyama
 
OpenStack Train リリース
OpenStack Train リリースOpenStack Train リリース
OpenStack Train リリースAkira Yoshiyama
 
Nova からみる OpenStack プロジェクトの歴史 (rev.4)
Nova からみる OpenStack プロジェクトの歴史 (rev.4)Nova からみる OpenStack プロジェクトの歴史 (rev.4)
Nova からみる OpenStack プロジェクトの歴史 (rev.4)Akira Yoshiyama
 
Nova からみる OpenStack プロジェクトの歴史 (rev.3)
Nova からみる OpenStack プロジェクトの歴史 (rev.3)Nova からみる OpenStack プロジェクトの歴史 (rev.3)
Nova からみる OpenStack プロジェクトの歴史 (rev.3)Akira Yoshiyama
 
Nova から見る OpenStack プロジェクトの歴史 (rev.2)
Nova から見る OpenStack プロジェクトの歴史 (rev.2)Nova から見る OpenStack プロジェクトの歴史 (rev.2)
Nova から見る OpenStack プロジェクトの歴史 (rev.2)Akira Yoshiyama
 
コンテナ時代のOpenStack
コンテナ時代のOpenStackコンテナ時代のOpenStack
コンテナ時代のOpenStackAkira Yoshiyama
 
OpenStack Rocky リリース
OpenStack Rocky リリースOpenStack Rocky リリース
OpenStack Rocky リリースAkira Yoshiyama
 
OpenStack Ocata リリース
OpenStack Ocata リリースOpenStack Ocata リリース
OpenStack Ocata リリースAkira Yoshiyama
 
Osc201703 tokyo-clonezilla-v1.2 j
Osc201703 tokyo-clonezilla-v1.2 jOsc201703 tokyo-clonezilla-v1.2 j
Osc201703 tokyo-clonezilla-v1.2 jAkira Yoshiyama
 
OpenStack 最新動向 2016/11
OpenStack 最新動向 2016/11OpenStack 最新動向 2016/11
OpenStack 最新動向 2016/11Akira Yoshiyama
 
OpenStack最新動向 2016/2
OpenStack最新動向 2016/2OpenStack最新動向 2016/2
OpenStack最新動向 2016/2Akira Yoshiyama
 
Openstack 2014.2 (Juno Release)
Openstack 2014.2 (Juno Release)Openstack 2014.2 (Juno Release)
Openstack 2014.2 (Juno Release)Akira Yoshiyama
 
OpenStack 2014.1 (Icehouse Release)
OpenStack 2014.1 (Icehouse Release)OpenStack 2014.1 (Icehouse Release)
OpenStack 2014.1 (Icehouse Release)Akira Yoshiyama
 
OpenStack Grizzly Release
OpenStack Grizzly ReleaseOpenStack Grizzly Release
OpenStack Grizzly ReleaseAkira Yoshiyama
 

More from Akira Yoshiyama (16)

OpenStack Trainリリース (Rev.2)
OpenStack Trainリリース (Rev.2)OpenStack Trainリリース (Rev.2)
OpenStack Trainリリース (Rev.2)
 
OpenStack Train リリース
OpenStack Train リリースOpenStack Train リリース
OpenStack Train リリース
 
Nova からみる OpenStack プロジェクトの歴史 (rev.4)
Nova からみる OpenStack プロジェクトの歴史 (rev.4)Nova からみる OpenStack プロジェクトの歴史 (rev.4)
Nova からみる OpenStack プロジェクトの歴史 (rev.4)
 
Nova からみる OpenStack プロジェクトの歴史 (rev.3)
Nova からみる OpenStack プロジェクトの歴史 (rev.3)Nova からみる OpenStack プロジェクトの歴史 (rev.3)
Nova からみる OpenStack プロジェクトの歴史 (rev.3)
 
Nova から見る OpenStack プロジェクトの歴史 (rev.2)
Nova から見る OpenStack プロジェクトの歴史 (rev.2)Nova から見る OpenStack プロジェクトの歴史 (rev.2)
Nova から見る OpenStack プロジェクトの歴史 (rev.2)
 
コンテナ時代のOpenStack
コンテナ時代のOpenStackコンテナ時代のOpenStack
コンテナ時代のOpenStack
 
OpenStack Rocky リリース
OpenStack Rocky リリースOpenStack Rocky リリース
OpenStack Rocky リリース
 
201709 osc josug
201709 osc josug 201709 osc josug
201709 osc josug
 
OpenStack Ocata リリース
OpenStack Ocata リリースOpenStack Ocata リリース
OpenStack Ocata リリース
 
201703 osc josug
201703 osc josug201703 osc josug
201703 osc josug
 
Osc201703 tokyo-clonezilla-v1.2 j
Osc201703 tokyo-clonezilla-v1.2 jOsc201703 tokyo-clonezilla-v1.2 j
Osc201703 tokyo-clonezilla-v1.2 j
 
OpenStack 最新動向 2016/11
OpenStack 最新動向 2016/11OpenStack 最新動向 2016/11
OpenStack 最新動向 2016/11
 
OpenStack最新動向 2016/2
OpenStack最新動向 2016/2OpenStack最新動向 2016/2
OpenStack最新動向 2016/2
 
Openstack 2014.2 (Juno Release)
Openstack 2014.2 (Juno Release)Openstack 2014.2 (Juno Release)
Openstack 2014.2 (Juno Release)
 
OpenStack 2014.1 (Icehouse Release)
OpenStack 2014.1 (Icehouse Release)OpenStack 2014.1 (Icehouse Release)
OpenStack 2014.1 (Icehouse Release)
 
OpenStack Grizzly Release
OpenStack Grizzly ReleaseOpenStack Grizzly Release
OpenStack Grizzly Release
 

Recently uploaded

TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationYukiTerazawa
 
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2Tokyo Institute of Technology
 
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学ssusere0a682
 
UniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScriptUniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScriptyuitoakatsukijp
 
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ssusere0a682
 
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024koheioishi1
 
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料Takayuki Itoh
 

Recently uploaded (7)

TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentation
 
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
 
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
 
UniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScriptUniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScript
 
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
 
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024
 
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
 

OpenStack API

  • 1. OpenStack API 吉山あきら akirayoshiyama@gmail.com
  • 2. 目次 ● OpenStack 各コンポーネントの API ● OpenStack API ● OpenStack クライアントライブラリ
  • 4. Nova の API 標準装備の API ● OpenStack Compute API (v2) ● Amazon EC2 互換 API ※Grizzly リリースで廃止予定 ● Amazon EC2 互換 Metadata API ● OpenStack Volume API (v1) ※Grizzly リリースで廃止予定 サードパーティ API ● Cloud Infrastructure Management Interface ( CIMI ) – https://github.com/osaddon/cimi/ ● Open Cloud Computing Interface (OCCI) – https://github.com/tmetsch/occi-os
  • 5. Swift の API 標準装備の API ● OpenStack Object Storage API (v2.0) サードパーティ API ● Amazon S3 互換 API – https://github.com/fujita/swift3 ● Cloud Data Management Interface (CDMI) – https://github.com/osaddon/cdmi
  • 6. その他のコンポーネントの API Glance ● OpenStack Image API (v1.1) Keystone ● OpenStack Identity API (v2.0) Quantum ● OpenStack Networking API (v2.0) Cinder ● OpenStack Volume API (v1.0) ※Nova の Volume API と同一
  • 8. OpenStack API 登場以前 Nova は当初 Amazon EC2 互換 API のみ ● 標準 CLI は Eualyptus 用の Euca2ools 独自の機能拡張をする際、 EC2 互換 API では… ● クライアントツールを改造/独自開発する必要がある ● 結果的に API の互換性が低下する OpenStack プロジェクトで自由に拡張可能な RESTful API を開発する事にした
  • 9. OpenStack API ● Rackspace のクラウドサービス API を参考 ● 比較的素直な RESTful API リソースの create/read/update/delete が基本 ● ユーザ認証とサービス操作で別の URL を使用 ● ユーザ認証… Keystone サービス API の URL ● サービス操作… Keystone から返されたエンドポイント URL
  • 10. OpenStack API のユーザ認証 サービス API ( 5000/TCP ) ① ユーザ名、 パスワード→ Keystone ←② エンドポイント、 トークン Nova 等
  • 11. OpenStack API のサービス操作 ③ トークン、操作→ Keystone 管理 API ↓⑤ ロール ( 35357/TCP ) ④ トークン↑ Nova 等 ←⑥ 操作結果 OpenStack Compute API ( 8774/TCP )
  • 12. エンドポイントとトークン エンドポイント 各種 OpenStack API の URL (全コンポーネントの URL が一度に提供される) トークン 各種 OpenStack API のユーザ認証で ユーザ名・パスワードの代わりに使用する文字列 – 有効期限がある – HTTP のセッションクッキーと同様
  • 13. 参考: Amazon EC2 互換 API ① 操作・署名→ Keystone 管理 API ↓③ ロール ( 35357/TCP ) ↑② 操作・署名 署名( Signature ): ユーザ名・操作日時を含む Nova 等 HTTP リクエストボディを ←④ 操作結果 ユーザのシークレットキーで Amazon EC2 互換 API 計算したハッシュ値 ( 8773/TCP )
  • 14. Curl での例①:ユーザ認証 $ curl -d '{"auth": {"tenantName": "tenant1”, 実際には1行で記述 "passwordCredentials": {"username": "joe", "password": "shhh"}}}' -H "Content-type: application/json" http://localhost:5000/v2.0/tokens Keystone の認証 API {"access": { 実行結果を   "token": {"expires": "2012-10-26T22:27:40Z", "id": "2cd10cc33d034a50b30f9867241c93cc", 見やすく加工 "tenant": ... },   "serviceCatalog": [ {"nova": { "endpoints": [     {"adminURL": "http://10.0.2.15:8774/v2.0",     "region":   "RegionOne", "id": “....”,     "internalURL": "http://10.0.2.15:8774/v2.0",      "publicURL": "http://10.0.2.15:8774/v2.0"}], "name": "nova", "type": "compute”, ...},
  • 15. Curl での例②:サービス操作 $ curl -v -H "X-Auth-Token:2cd10cc33d034a50b30f9867241c93cc"   http://10.0.2.15:8774/v2.0/images {"images": [ Nova の OpenStack Compute API {"id": 3, "links": [   {"href": "http://10.0.2.15:8774/v2.0/images/3", "rel": "self"},   {"href": "http://10.0.2.15:8774/images/3", "rel": "bookmark"}],   "name": "ubuntu-11.04-server"}, {"id": 2, "links": [   {"href": "http://10.0.2.15:8774/v2.0/images/2", "rel": "self"},   {"href": "http://10.0.2.15:8774/images/2", "rel": "bookmark"}],   "name": "ubuntu-11.04-initrd"}, {"id": 1, "links": [   {"href": "http://10.0.2.15:8774/v2.0/images/1", "rel": "self"},   {"href": "http://10.0.2.15:8774/images/1", "rel": "bookmark"}],   "name": "ubuntu-11.04-kernel"}]}
  • 17. クライアントライブラリ登場以前 各コンポーネントのソースコード中にクライアント アクセス用のソースコード( client.py 等)があり、 これを他のコンポーネントが利用していた ● Nova 用のサーバに Keystone や Glance の ソースコードを全てインストール(無駄が多い) ● 他コンポーネント用サーバも同様 コンポーネント毎の軽量ライブラリが必要
  • 18. OpenStack クライアントライブラリ OpenStack の複雑なユーザ認証と、 各種 OpenStack API 固有の利用可能な操作を Python で簡単に扱う為のライブラリ群 ● ネーミングルール python-< コンポーネント名 >client ● それぞれ API 操作用の CLI を含む – python-novaclient には nova コマンドが付属している。 他のライブラリも同様 – Glance だけ Glance 本体のソースコードに 古い glance コマンドが残っている ※廃止予定
  • 19. 各ライブラリ名とバージョン Folsom 時の コンポーネント クライアントライブラリ名 バージョン Nova python-novaclient 2.9.0 Swift python-swiftclient 1.2.0 Glance python-glanceclient 0.5.1 Keystone python-keystoneclient 0.1.3 Quantum python-quantumclient 2.1 Cinder python-cinderclient 1.0.0 ※OpenStack ライブラリのバージョン番号のポリシーがコロコロ変わるので、   git のタグには essex-1 や 2012.1 等が存在する
  • 20. 使用例 (python-novaclient) # python-novaclient をインポート from novaclient.v1_1 import client # 操作用インスタンスを作成 # ※USER, PASS, TENANT, AUTH_URL は文字列変数 nt = client.Client(USER, PASS, TENANT, AUTH_URL, service_type="compute") # サーバの一覧 nt.servers.list() # サーバの作成 # ※NAME, IMAGE, FLAVOR, KEYNAME は文字列変数 nt.servers.create(NAME, IMAGE, FLAVOR, keyname=KEYNAME)
  • 21. 参考情報 ● OpenStack API Quick Start http://docs.openstack.org/api/quick-start/content/ ● Programming OpenStack Compute API with Shell and Python http://docs.openstack.org/api/openstack-compute/   programmer/content/ ● API Specifications http://docs.openstack.org/api/api-specs.html ● API Complete Reference http://api.openstack.org/
  • 22. Q&A