24
1 パブリッククラウドConoHaを使って OpenStack APIを理解する(初級編) GMOインターネット株式会社 ホスティング事業部 テクニカルエバンジェリスト 斉藤弘信 [email protected] オープンソースカンファレンス2015 .Enterprise

パブリッククラウドConoHaを使ってOpenStack APIを理解する

Embed Size (px)

Citation preview

Page 1: パブリッククラウドConoHaを使ってOpenStack APIを理解する

1

パブリッククラウドConoHaを使って

OpenStack APIを理解する(初級編)

GMOインターネット株式会社ホスティング事業部テクニカルエバンジェリスト

斉藤弘信[email protected]

オープンソースカンファレンス2015 .Enterprise

Page 2: パブリッククラウドConoHaを使ってOpenStack APIを理解する

2

アジェンダ

• OpenStackとConoHa

• パブリッククラウド「ConoHa」

• OpenStackについて(コンポーネントを理解する)

• OpenStack APIの概要

• REST APIの仕様

• APIワークフロー

• 実践

• 認証(Keystone)とコンピュート(Nova)をつかう

• コマンドラインツールを使う(python-openstackclient)

• SDKと実際の利用例

Page 3: パブリッククラウドConoHaを使ってOpenStack APIを理解する

3

ConoHaとOpenStack

Page 4: パブリッククラウドConoHaを使ってOpenStack APIを理解する

4

パブリッククラウド「ConoHa」とは

GMOインターネットが提供するIaaS型クラウドサービス

• 全ストレージにSSDを採用

• 900円/月〜の定額制

• 転送料金なし

• スケールアップ/ダウン対応

• プライベートネットワーク

• ロードバランサー

• オブジェクトストレージ

• 海外リージョン

• OpenStack APIhttps://www.conoha.jp/

Page 5: パブリッククラウドConoHaを使ってOpenStack APIを理解する

5

サーバー

ネットワーク

ストレージ

ConoHaサービス一覧

リージョン 東京

グローバルネットワーク(IPv4/IPv6 デュアルスタック)

シンガポール アメリカ(サンノゼ)

ロードバランサー 無料DNS GeoDNS(GSLB)

プライベートネットワーク 追加IPv4 リージョン間転送

自動バックアップ スケールアップ スナップショット

SSD追加 オブジェクトストレージ

仮想サーバー(All-SSD)

メールサーバーDBサーバー

(MySQL互換)

A

P

I

GMOバックボーンネットワーク

ISOイメージ管理

Page 6: パブリッククラウドConoHaを使ってOpenStack APIを理解する

6

OpenStackとは

• オープンソースで開発されている、クラウド環境を構築するためのソフ

トウェアコンポーネント群

• いわゆるIaaSの分野(仮想マシン、ネットワーク、ストレージ)を扱う

• ConoHaでは少し前のバージョンの「Juno」を採用

(現行バージョンは10月にリリースされたLiberty)

Page 7: パブリッククラウドConoHaを使ってOpenStack APIを理解する

7

OpenStackとは

https://www.openstack.org/summithttps://www.openstack.org/

• 10月末にOpenStack Summit Tokyoが開催される

• GMOインターネットも基調講演を行った

• 他に日本からはNTT Group、サイバーエージェント、Yahoo!、楽天

• 2016年はOpenStackの普及元年に?

Page 8: パブリッククラウドConoHaを使ってOpenStack APIを理解する

8

®

OpenStackのサービス

Keystone

Nova

Neutron

Cinder

Glance

Swift

Core Services

Optional Services

Ironic

Horizon

Ceilimeter

Heat

Designate

認証仮想マシンネットワークブロックストレージ仮想マシンイメージオブジェクトストレージ

ベアメタルサーバーダッシュボードメータリングプロビジョニングDNS

など

Page 9: パブリッククラウドConoHaを使ってOpenStack APIを理解する

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の利用

Page 10: パブリッククラウドConoHaを使ってOpenStack APIを理解する

10

OpenStack APIの概要

Page 11: パブリッククラウドConoHaを使ってOpenStack APIを理解する

11

OpenStackで管理される項目

1つのOpenStack環境を表す単位。

ConoHaの場合、日本(TYO1)、アメリカ(SJC1)、シンガポール(SIN1)の3つ

エンドポイントもリージョン毎に異なる

ユーザー名 / パスワード

テナント

リージョン

その名の通り、利用者毎のアカウント。パスワードがセットになる

ユーザーが所属するグループのようなもの。ユーザーは複数のテナントに属することができる

Page 12: パブリッククラウドConoHaを使ってOpenStack APIを理解する

12

OpenStackで管理される項目

Page 13: パブリッククラウドConoHaを使ってOpenStack APIを理解する

13

API概要

• API自体はシンプルな設計のREST API

• 各サービス毎にエンドポイントが存在する

(ConoHaのエンドポイント)

Page 14: パブリッククラウドConoHaを使ってOpenStack APIを理解する

14

APIのワークフロー

Page 15: パブリッククラウドConoHaを使ってOpenStack APIを理解する

15

1. 認証Identity Endpoint(Keystone)にリクエストを送信する。

2. クレデンシャル情報はユーザー名/パスワード/テナント名(もしくはテナントID)

3. トークンとアクセス可能なエンドポイントがJSONで返ってくる

4. それを元にコンポーネントを利用する

APIのワークフロー

Page 16: パブリッククラウドConoHaを使ってOpenStack APIを理解する

16

実践

Page 17: パブリッククラウドConoHaを使ってOpenStack APIを理解する

17

https://www.conoha.jp/docs/

APIのドキュメント

Page 18: パブリッククラウドConoHaを使ってOpenStack APIを理解する

18

SDKなど

Page 19: パブリッククラウドConoHaを使ってOpenStack APIを理解する

19

OpenStack SDK

http://developer.openstack.org/

• C

• C++

• Clojure

• Erlang

• Go

• Java

• Android

• JavaScript

• Python

• Node.js

• Perl

• PHP

• Python

• Ruby

• Yaml

オフィシャルサイトにある一覧

Page 20: パブリッククラウドConoHaを使ってOpenStack APIを理解する

20

実際の利用例

仮想環境構築ツール「Vagrant」をConoHaで

使えるようにするProviderの開発

Docker環境を構築する「Docker Machine」を

ConoHaで動作するように開発元へのPR

Go言語

https://github.com/hironobu-s/vagrant-conoha

https://github.com/docker/machine

Page 21: パブリッククラウドConoHaを使ってOpenStack APIを理解する

21

WordPressのメディアストレージとして

オブジェクトストレージを使うプラグインを開発

実際の利用例

ConoHaのISOイメージマウント機能を

CLIから扱えるコマンドラインツールの開発

Go言語

https://wordpress.org/plugins/conoha-object-sync/

https://github.com/hironobu-s/conoha-iso

Page 22: パブリッククラウドConoHaを使ってOpenStack APIを理解する

22

まとめ

Page 23: パブリッククラウドConoHaを使ってOpenStack APIを理解する

23

本日お話ししたこと

• OpenStackとConoHaの関係

• ConoHaについて

• OpenStackとは

• コンポーネントを理解する

• OpenStack APIの概要

• REST APIの仕様

• APIワークフロー

• 認証(Keystone)

• コンピュート(Nova)

• コマンドラインツールを使う

Page 24: パブリッククラウドConoHaを使ってOpenStack APIを理解する

24

Q&A