67
IBM Bluemix www.bluemix.net Bluemix テクニカル・セミナー 2017 API 管理 日本アイ・ビー・エム株式会社 クラウド事業本部 植田 毅

Bluemix テクニカル・セミナー 2017 · IBM Bluemix Bluemix テクニカル・セミナー2017 API 管理 日本アイ・ビー・エム株式会社 クラウド事業本部

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

IBM Bluemixwww.bluemix.net

Bluemix テクニカル・セミナー 2017

API 管理

日本アイ・ビー・エム株式会社

クラウド事業本部

植田 毅

© 2017 IBM Corporation2

IBM Bluemixwww.bluemix.net

ご注意

この資料は日本アイ・ビー・エム株式会社および日本アイ・ビー・エム システムズ・エンジニアリング株式会社の正式なレビューを受けておりません。

資料の内容には正確を期するよう注意しておりますが、この資料の内容は2017年6月現在の情報であり、製品の新しいリリース、修正などによって動作/仕様が変わる可能性があります。

当資料は、資料内で説明されている製品の仕様を保証するものではありません。従って、この情報の利⽤またはこれらの技法の実施はひとえに使⽤者の責任において為されるものであり、資料の内容によって受けたいかなる被害に関しても⼀切の補償をするものではありません。

また、IBM、IBMロゴおよびibm.comは、世界の多くの国で登録されたInternational Business Machines Corporationの商標です。他の製品名およびサービス名等は、それぞれIBMまたは各社の商標である場合があります。現時点でのIBMの商標リストについてはhttp://www.ibm.com/legal/copytrade.shtmlをご覧ください。

© 2017 IBM Corporation3

IBM Bluemixwww.bluemix.net

Agenda

API 管理とは

Bluemix での提供形態

Native API 管理

API Connect サービス

利⽤方法

運⽤

価格体系

サンプル構成

事例

© 2017 IBM Corporation4

IBM Bluemixwww.bluemix.net

Bluemix 概観

Bluemix PaaS

Bluemix Infrastructure

サービス

アプリプラットフォーム(WAS, Node, …)

セキュリティ

DevO

ps

API管理 Watson IoT Analyticsブロック

チェーン

運⽤管理

インターネット

気象ビデオ配信

電話

モバイル通知

メール一斉配信

健康/運動

電子マネー決済

Cloud Foundry コンテナ

Bluemixとは・・・多様なニーズに応えるIBMのクラウド・ソリューション・プラットフォーム

サーバーレス

Cloud Functions

お客様開発のアプリケーションとサービス

オンプレミス

既存IT資産

UNIX系分散Sys

メインフレーム

オフコンお客様ご提供IaaS

© 2017 IBM Corporation5

IBM Bluemixwww.bluemix.net

API管理とは

© 2017 IBM Corporation6

IBM Bluemixwww.bluemix.net

昔のAPI VS. 今のAPI

Application Programming Interface(API)とは?

プログラマが何らかの機能を実行できるように公開された関数

何かをインプットして、処理して、目的のアウトプットが得られる

アプリケーションA

アプリケーションB

API

コール 結果

アプリケーションA

アプリケーションX

サービス

コール

結果

API

企業内のアプリケーション同士がAPI をコールしてアプリケーションの一部機能を利用

パッケージ製品が機能呼び出しのための独自仕様のAPIを提供

外部のアプリケーションが別の企業のWeb API をコールしてそのサービスを利用

社外から利用しやすいまとまり(単位)でAPI を作る

Gateway

異業種

別企業

昔のAPI 今日のAPI企業を超えてつながる!業界の境界をも越える!

サービスサービスa

d

g h

e

b c

f

i

a

d

g h

e

b c

f

i

Internet

© 2017 IBM Corporation7

IBM Bluemixwww.bluemix.net

API公開のドライバー ビジネス観点

企業の持つデータやサービス

APIとしてWebに公開する

外部の開発者が公開APIを使い

新たなアプリを考案

複数企業のサービスが連携された新しいアプリが誕生!

企業 A

企業 B

アプリの利用により間接的に送客される!

APIエコノミーのバリューチェーン

企業A,Bの

サービスを

購入したい!!

イイね!

© 2017 IBM Corporation8

IBM Bluemixwww.bluemix.net

API公開のドライバー システム観点

Web時代 モバイル&IoT時代

•モノリシック・アプリケーション• HTML, XMLの提供•数年間運⽤

•ブラウザー中心で⼀部システム

•人のクリック頻度でのアクセス

•有線アクセス

Webアプリケーション

HTML XML

• ブラウザーにはHTML• システムにはXML• メッセージサイズ大

• システムのマイクロ・サービス化• JSON形式のAPI公開• 継続的デリバリー

• スマホ、IoT、システムなど多種多様

• ブラウザーの割合低下• 高頻度なアクセス• 数日〜数週間リリース• 無線、3G, 4G

クライアント・アプリ

IoT

モバイル

WebB2B

SaaS

WebアプリケーションAPI API API API API

JSON

• ブラウザー対応のHTMLではなく様々なクライアントに利⽤できる簡単・軽量なREST/JSON

• メッセージサイズ小

© 2017 IBM Corporation9

IBM Bluemixwww.bluemix.net

「API」は巨大市場へ

社会が主導するモメンタム

モバイルデバイスの普及により、APIがこれまで以上に浸透

イノベーションの基盤として認知

モバイル、IoTなど、最新テクノロジーの活⽤が容易

迅速に構築できる

大企業も積極的に関与

https://www.programmableweb.com/news/programmableweb-api-directory-eclipses-17000-api-economy-continues-surge/research/2017/03/13

© 2017 IBM Corporation10

IBM Bluemixwww.bluemix.net

API管理基盤が求められる理由

API

流量制御

API

流量制御

監査ログ

認証

API

ドキュメント

監査ログ

認証

API

流量制御

監査ログ

ドキュメント

API

流量制御

監査ログ

認証

API API API API API

認証

アプリキー

流量制御

キャッシュ

監査ログAP

I管理

/Gate

way

APIポータル

• 周辺機能はGatewayに任せてAPI処理の実装に専念できる!• セキュリティや流量制御もポリシー設定で簡単!• アプリキーでクライアントが管理されているから、誰がAPIを

使っているかも⼀目瞭然!• コード量が少ないからAPIの仕様追加もわりと簡単!

• API処理以外にも認証・変換・キャッシュの実装、大変だ・・・• APIのセキュリティはどうやって確保したらいいんだろう?• このAPIは変えても大丈夫だろうか?誰が使ってるんだろう?• また仕様の追加が必要?コード量が多いから維持・修正も大変

API α API β API γ API δ API θ

APIプロバイダー APIプロバイダー

アプリ開発者アプリ開発者

• APIは確かにあるようだけど、欲しいデータが全然見つからない!• このAPIを使う許可をもらうにはどこに連絡すればいいんだろう?• 業界標準に準拠してないAPIだと、呼び出すだけでも⼀苦労。しかもAPI

毎に認証方法が違う・・・本当に?!

• ポータルを見ればすべてのAPIが見つかる、これは分かりやすい!• APIの利⽤申請もポータルからボタン⼀つで完了!• 業界標準に準拠しているから、呼び出しもツールから簡単!• 同じアクセスキーで必要なAPIにアクセスできる、しかも認証方法も統⼀されていて楽々!

+1

管理されていない “個別実装API” 群 IBM API Connect で管理された “均質なAPI” 群

© 2017 IBM Corporation11

IBM Bluemixwww.bluemix.net

IBM API Connect とは

APIの開発・保守コストを削減し、

公開までの期間を短縮

APIアクセスの

利用状況分析、トレンド把握

API利用企業・開発者向けの

API利用を促進する仕組み

APIにより連携の

セキュリティーを確保できる

API利用企業・開発者ごとの

アクセス管理と流量制御

作成 実行

管理保護

APIの作成・実行・管理・保護を実現する、企業のAPI公開を支える包括的基盤ソリューション

パブリック・クラウド

オンプレミス

© 2017 IBM Corporation12

IBM Bluemixwww.bluemix.net

Bluemix API Connect の機能

DeveloperToolkit

APIサービス(Compute)

データソースを効率的にAPI化するツール

APIランタイム

APIマネージャー

APIのポリシーを管理する

APIオーナー用UI

APIマネージャー

APIゲートウェイ

ポリシーに基づきAPIを高度に保護・制御する

開発者ポータル

API利用者向けのAPI仕様情報を

提供するポータル

開発者ポータル

APIデザイナー

クライアントアプリケーション

IoT

モバイル

Web

B2B

SaaS API呼び出し

分析情報の収集

構成のデプロイ

サーバーランタイム環境 開発ツール

外部

アプリ開発者(API利用者)

社内取引先

ESB

WebService IBM z

API

バックエンドシステム

内部API

内部API

API Connect サービスで提供 Cloud Foundry Node.js を提供

© 2017 IBM Corporation13

IBM Bluemixwww.bluemix.net

Bluemix におけるAPI Connect の構成

Node.js

App

開発者ポータル

APIの利用

API デザイナー

API G

ate

way in

API C

onnect

地域 (米国南部, 英国, シドニー, ドイツ)

API マネージャー

API Connectfor Bluemix

ランタイム

API開発者

アプリ開発者に公開

アプリ開発者開発者ポータルへアクセスAPIのサブスクライブ

他クラウド or オンプレミス

API利用者

開発環境で稼働

© 2017 IBM Corporation14

IBM Bluemixwww.bluemix.net

インターフェースの種類

API デザイナー

APIの作成、公開を行う管理インターフェース

開発環境に導入されるDeveloper Toolkitで提供され、開発環境で稼働

API マネージャー

アプリ開発者へのAPIの公開や追跡を容易にするための管理インターフェース

Bluemix上で稼働

開発者ポータル

API をソーシャル化して、中核的な企業資産の価値を高める新しいアプリケーションの開発を支援する、カスタマイズ可能なポータル

Bluemix上で稼働

© 2017 IBM Corporation15

IBM Bluemixwww.bluemix.net

Bluemixでの提供形態

© 2017 IBM Corporation16

IBM Bluemixwww.bluemix.net

Bluemix では2つのAPI管理を提供

① Native API 管理

2017/6より、Cloud Foundry ランタイム、Cloud Functions (OpenWhisk)の環境で、Native API 管理の仕組みを提供

簡単にセキュリティ、流量制御等のポリシーを追加可能

② IBM API Connect

従来から提供されているもので、Bluemixサービスの⼀つとして IBM API Connectを提供

機能限定的。Cloud Foundry, Functions等で簡単にAPI公開したい場合に有⽤

様々な環境で稼働するAPIを統合的に管理したい場合に有⽤

お試しAPI管理

統合API管理

© 2017 IBM Corporation17

IBM Bluemixwww.bluemix.net

① Native API 管理

Cloud Foundry ランタイム、Cloud Functions、AppConnectで容易に設定可能

数秒の操作で、APIに関する以下のポリシー項目を設定可能

API Security (API キー)

流量制御

OAuth(特定サービスとのOAuth)

CORS

分析機能

© 2017 IBM Corporation18

IBM Bluemixwww.bluemix.net

② IBM API Connect

API Connect 環境をBluemixで提供

© 2017 IBM Corporation19

IBM Bluemixwww.bluemix.net

(参考)オンプレとの主な違い

ライセンス観点

Node.js、Javaは、Cloud Foundryの契約が別途必要

全てのプランでDataPower GatewayがデフォルトのGateway

Bluemix有償契約には、Secure Gatewayの1接続先が含まれる

機能観点

Cloud Manager Console(CMC)へのアクセスができない

DataPower関連

管理コンソールにアクセスできない

DataPower機能は、Assembleで提供されるポリシーのみの利⽤

OAuthのトークン失効はサポート外

Secure Gatewayを利⽤する場合、アセンブルで切り替え(switch), 操作切り替え(operation switch), if ポリシーが使⽤できない

ログ

Cloud FoundryのNode.jsを除く、各コンポーネントのログ、監査ログの確認はできない

*今後変わる可能性があります。

© 2017 IBM Corporation20

IBM Bluemixwww.bluemix.net

利⽤方法①Native API 管理

© 2017 IBM Corporation21

IBM Bluemixwww.bluemix.net

Native API 管理の利⽤方法(1/4)

Cloud Foundry, Cloud Functions のメニューから利⽤開始

1. API定義があればインポートする API仕様が明確になるため、OpenAPI の定義ファイルは、なるべく⽤意した方が良い

© 2017 IBM Corporation22

IBM Bluemixwww.bluemix.net

Native API 管理の利⽤方法(2/4)

2. セキュリティー定義設定アプリケーション認証

APIキー(APIキーと秘密鍵)による認証

Bluemix組織内、組織外でそれぞれキーは5個まで

レート制限

キー単位でAPI呼び出しレートを制限

リーキー・バケット・アルゴリズムを使⽤

例えば、制限が 1 分当たり 10 回の呼び出しに設定されると、1 回の呼び出しは 6 秒ごと(60/10 = 6) に制限される

OAuthユーザー認証

Bluemix アプリケーションID、Facebook, GitHub, Googleで認証を行う

対応する OAuth トークンを、各 API 要求の許可ヘッダーに含める。トークンの認証性が、指定したトークン・プロバイダーを使⽤して検証されます。

CORS設定

ブラウザー・ベースのアプリケーションでAPIを呼び出せるようCORSを有効にする

© 2017 IBM Corporation23

IBM Bluemixwww.bluemix.net

Native API 管理の利⽤方法(3/4)

3. API仕様の確認・テスト

Bluemix組織内ユーザーは、API Explorerタブで、APIの仕様とテストが可能

Bluemix組織外への共有

APIキー作成時に、APIポータル・リンクを提供

© 2017 IBM Corporation24

IBM Bluemixwww.bluemix.net

Native API 管理の利⽤方法(4/4)

4. API利⽤状況の確認・分析要約タブでAPIの利⽤状況が確認可能

直近1時間の統計情報

レスポンス数、平均応答時間、グラフ

直近25件の応答ログの表示

パス、操作、日付時刻、応答時間、キーなど

© 2017 IBM Corporation25

IBM Bluemixwww.bluemix.net

利⽤方法②API Connect

© 2017 IBM Corporation26

IBM Bluemixwww.bluemix.net

API 公開のステップ

API開発者

API管理者

アプリ開発者(外部 取引先 社内)

API提供側

API利用側

APIデザイナー

APIマネージャー

開発者ポータル

API開発

API仕様とポリシー定義

APIの製品化と公開

APIキー発行と利用登録

API利用分析

1 2

3

4

0

© 2017 IBM Corporation27

IBM Bluemixwww.bluemix.net

API 公開のステップ

API開発者

API管理者

アプリ開発者(外部 取引先 社内)

API提供側

API利用側

APIデザイナー

APIマネージャー

開発者ポータル

API開発

API仕様とポリシー定義

APIの製品化と公開

APIキー発行と利用登録

API利用分析

1 2

3

4

0

© 2017 IBM Corporation28

IBM Bluemixwww.bluemix.net

API 開発の流れ

Developer Toolkitを使⽤してAPIアプリケーション(LoopBack)を開発する

1. ひな形のアプリを生成

2. データ・ソースの定義

3. モデルの定義

データ・ソースの定義 モデルの定義 REST APIの生成

データベース

App

ひな形アプリの生成

© 2017 IBM Corporation29

IBM Bluemixwww.bluemix.net

LoopBack とは

Node.js の Webアプリケーション・フレームワーク

REST APIの作成に特化したOpen Sourceのフレームワーク

モデルを定義するとREST APIが自動生成

モデル:データベースに対するORM(オブジェクト関係マッピング)

様々なデータソースに接続するためのコネクターを提供

もともとはStrongLoop社が提供(2015年にIBMが買収)

© 2017 IBM Corporation30

IBM Bluemixwww.bluemix.net

API の開発

Developer Toolkitのコマンド1つでAPIのひな形が生成

API デザイナーを利⽤し、データ・ソースを定義

様々な種類のデータ・ソースに対するコネクターを提供拡張コネクター: Db2, SOAP, Oracle, MS SQL, SAP HANA

APIの編集画面 データ・ソースの編集画面

© 2017 IBM Corporation31

IBM Bluemixwww.bluemix.net

モデルを作るだけでREST API が生成

モデル探索機能でデータ・ソース定義からモデルを自動で生成可能

モデル探索機能が使⽤可能なDB

MySQL, Oracle, PostgreSQL, SQL Server

LoopBackの機能により、モデルに合わせてREST APIが自動生成

コード生成

OpenAPI(Swagger 2.0)仕様に準拠したAPI記述書

データ・ソースの設定 モデルが自動生成 REST APIが自動生成データベース

コネクターで接続

モデル探索機能

© 2017 IBM Corporation32

IBM Bluemixwww.bluemix.net

(参考)Open API とは

REST APIの仕様や文書を記述するための標準仕様

REST API のインターフェイスを記述するための標準フォーマットと、そのツール群

IBMは、2015/11/05に、The Linux Foundationの協力のもと、Microsoft, Google, Intuit, PayPal, 3Scale, Apigeeらと共にOpenAPIInitiativeを結成

現在の参加企業

© 2017 IBM Corporation33

IBM Bluemixwww.bluemix.net

API の動作確認

ローカルでのAPIのテストもインターフェースから実施可能

ローカルでのAPIの起動 ローカルでのAPIのテスト

© 2017 IBM Corporation34

IBM Bluemixwww.bluemix.net

API 公開のステップ

API開発者

API管理者

アプリ開発者(外部 取引先 社内)

API提供側

API利用側

APIデザイナー

APIマネージャー

開発者ポータル

API開発

API仕様とポリシー定義

APIの製品化と公開

APIキー発行と利用登録

API利用分析

1 2

3

4

0

© 2017 IBM Corporation35

IBM Bluemixwww.bluemix.net

セキュリティー設定

APIの認証方法として3つのセキュリティー定義を作成することが可能

認証方式 説明

API Key (デフォルト)アプリケーションがAPIを呼び出す際に、識別子(クライアントID、クライアント・シークレット)を指定する方式

基本認証 APIへのアクセスを認証する際に、LDAP または認証URLを使⽤する方式

OAuthアプリケーションがAPIを呼び出す際に、トークン・ベースの認証でアクセス制御する方式

3種類から選択

© 2017 IBM Corporation36

IBM Bluemixwww.bluemix.net

API ゲートウェイでの変換(アセンブル)

メッセージ変換やカスタマイズのフローを定義

キャンバス

アセンブリー・フロー

プロパティー・シート

ドラッグ&ドロップで配置

各ポリシーをクリックして詳細を指定

アセンブル機能

✓ 外部APIの呼び出し✓ XML/JSONメッセージ変換✓ XML,JSONデータのValidation✓ レスポンス変換✓ 変数変換(マッピング)✓ 変数の取得・生成✓ エラー制御✓ 複数APIのマッシュアップ✓ レスポンス・キャッシング✓ エラーレスポンスのカスタマイズ✓ 複数のAPIをマッシュアップ✓ JavaScript実行✓ XSLT実行✓ プロトコル変換✓ 分析ログ出力内容変更✓ Operation-switch✓ If✓ Throw

アセンブル機能の例

パレット(ビルトイン・ポリシー)

© 2017 IBM Corporation37

IBM Bluemixwww.bluemix.net

API の動作確認 DataPower ポリシーの実行

DataPowerのアセンブル・ポリシーをローカルでテスト実施

Developer Toolkit とDataPower のDocker コンテナーを組み合わせることが可能

Docker 環境がインストールされ稼働していれば、DataPower のdocker モジュールがダウンロードされ実行される

前提API Connect V5.0.7以上

Docker v1.13以上

Docker Compose V1.11以上

アセンブルでDataPower を選択 ローカルでAPI の起動 Docker のDataPower が稼働

Micro Gateway 表記だが、Docker 上のDataPower が稼働

$ docker psCONTAINER ID IMAGE COMMAND CREATED 8fc94c9d0df9 ibm-apiconnect-toolkit/datapower-api-gateway:1.0.10 "/bin/drouter" 7c96516b0767 ibm-apiconnect-toolkit/datapower-mgmt-server-lite:1.0.10 "node lib/server.js"

docker ps コマンドで確認

© 2017 IBM Corporation38

IBM Bluemixwww.bluemix.net

API の管理体系

API API をリソース単位にまとめたもの

Node.js のアプリケーションに対応

製品 API を公開する単位にまとめたもの

サブスクリプション⽤のプランを作成する単位

プラン含めるAPI とレート制限を指定

アプリ開発者が利⽤登録(配信登録)する単位

© 2017 IBM Corporation39

IBM Bluemixwww.bluemix.net

レート制限

単位時間あたりどれだけの呼び出しを許可するかを設定できる

制限は複数設定可

レート制限に到達した後、アプリケーションによるAPI の呼び出しを拒否する

429 Too Many Requests で返す

© 2017 IBM Corporation40

IBM Bluemixwww.bluemix.net

Bluemix へデプロイ

Node.js

App

ランタイム

Bluemix 上のNode.js アプリとして稼働

注意点:API デザイナーからデプロイするとAPI 仕様、製品、プランはデザイナーでしか変更できない

© 2017 IBM Corporation41

IBM Bluemixwww.bluemix.net

Bluemix 上でAPI を稼働

Cloud Foundry のNode.js アプリケーションとして稼働

通常のCloud Foundry アプリと異なる点ドメイン名が異なる apiconnect-<アプリid>.<組織名>-<space名>.apic.mybluemix.net

API Gateway 経由でないとアクセスできない(API デザイナーでデプロイするタイミングで、TLS プロファイルの定義が追加されるため、ユーザーは意識する必要なし)

© 2017 IBM Corporation42

IBM Bluemixwww.bluemix.net

API 公開のステップ

API開発者

API管理者

アプリ開発者(外部 取引先 社内)

API提供側

API利用側

APIデザイナー

APIマネージャー

開発者ポータル

API開発

API仕様とポリシー定義

APIの製品化と公開

APIキー発行と利用登録

API利用分析

1 2

3

4

0

© 2017 IBM Corporation43

IBM Bluemixwww.bluemix.net

開発者ポータルの機能

API 利⽤者向けに、API 仕様の表示、プランの選択、API キーの発行、API テストなどの機能を提供

- APIの仕様表示- ヘッダー- パラメーター- 応答

ブログ機能 フォーラム機能 サポート機能(チケット発行)

言語ごとのサンプルコード(cURL、Ruby、Python、PHP、Java、Node、Go、Swift)

APIのテスト実行

APIキー(クライアントID)の発行例

プランの選択画面例

プランの選択ボタン

APIキー(クライアントID)

利⽤可能なプラン

リクエスト・レスポンスのサンプル表示

© 2017 IBM Corporation44

IBM Bluemixwww.bluemix.net

開発者ポータルで外部に公開

ユーザーがサブスクライブ可能なAPI 製品がカタログとして表示

製品の可視性やサブスクライブ可能なユーザー設定は編集可能

開発者ポータルのUI はカスタマイズ可能

© 2017 IBM Corporation45

IBM Bluemixwww.bluemix.net

API 公開のステップ

API開発者

API管理者

アプリ開発者(外部 取引先 社内)

API提供側

API利用側

APIデザイナー

APIマネージャー

開発者ポータル

API開発

API仕様とポリシー定義

APIの製品化と公開

APIキー発行と利用登録

API利用分析

1 2

3

4

0

© 2017 IBM Corporation46

IBM Bluemixwww.bluemix.net

利⽤状況の分析

いつ、どのアプリがどのAPI を呼び出したのか

どれくらいの人がこのAPI に利⽤登録しているか

© 2017 IBM Corporation47

IBM Bluemixwww.bluemix.net

運⽤

© 2017 IBM Corporation48

IBM Bluemixwww.bluemix.net

可⽤性

複数地域を利⽤した冗長化

API Connect のインスタンス、API のエンドポイントが異なる

プロキシーや負荷分散装置によるリクエストの分散を検討

APIに対するレート制限、OAuth のトークン等を考慮すると、クライアント単位でリクエスト分散を検討

複数地域のインスタンス間で情報共有する仕組みがないため、API 仕様、製品情報はエクスポート、インポートを行う

© 2017 IBM Corporation49

IBM Bluemixwww.bluemix.net

監視・バックアップ

監視

Status ページ (https://console.bluemix.net/status) で確認

各コンポーネントのURL の稼働状況、ping等による確認 API Gateway api.<地域>.apiconnect.ibmcloud.com

API マネージャー <地域>.apiconnect.ibmcloud.com

開発者ポータル <カタログ名>-<組織名>-<space名>.developer.<地域>.apiconnect.ibmcloud.com

APIサーバー apiconnect-<アプリid>.<組織名>-<space名>.apic.mybluemix.net

バックアップ

作成したAPI 仕様、製品はYAML 形式でダウンロード可能

© 2017 IBM Corporation50

IBM Bluemixwww.bluemix.net

API サーバーの負荷対策

Auto-Scaling サービスによる API サーバーの負荷対策ランタイムのインスタンス数を負荷に応じて、自動でスケール

アクセス頻度が高くなった時だけサーバーをスケールアウトすることで、パフォーマンスを確保することが可能

© 2017 IBM Corporation51

IBM Bluemixwww.bluemix.net

外部リソースとの連携 (1/2) API Connect 機能

オンプレミス / クラウド上のシステムをAPI化する場合、インターネット経由でBluemix 上のアプリケーションからリソースへアクセスされる

オンプレミス / クラウド基盤間の通信の安全性はAPI 開発者が担保する必要がある

API Connect では、TLS プロファイルを設定することで外部リソースとの通信保護が可能

API マネージャーで、TLS プロファイルの登録が可能

証明書のアップロード

Pkcs12 形式ファイルのみサポート

© 2017 IBM Corporation52

IBM Bluemixwww.bluemix.net

外部リソースとの連携 (2/2) Bluemix 他サービス

オンプレミス / クラウド上のシステムをAPI 化する場合、インターネット経由でBluemix 上のアプリケーションからリソースへアクセスされる

通信セキュリティーの観点で、Bluemix アプリケーションからのみのアクセスに制限したい場合、以下のサービスを併⽤することを推奨Secure Gateway サービス

セキュア・トンネル(websocketトンネル)で安全かつ容易に拠点間を接続

制約事項:アセンブルで切り替え(switch), 操作切り替え(operation switch), if ポリシーが使⽤できない

https://www.ibm.com/support/knowledgecenter/ja/SSFS6T/com.ibm.apic.toolkit.doc/tapic_pub_secure_gateway.html

Statica サービス(3rd party)

送信元IP アドレスを固定化するためのフォワード・プロキシー・サービス

© 2017 IBM Corporation53

IBM Bluemixwww.bluemix.net

APIフロントエンドのアクセス保護

API Gateway へのアクセス保護

IBM オペレーションチームによって制御

フロントエンドを保護をしたい場合、IBM に連絡

[email protected]

https://www.ibm.com/support/knowledgecenter/ja/SSFS6T/com.ibm.apic.apionprem.doc/task_apionprem_ssl.html

© 2017 IBM Corporation54

IBM Bluemixwww.bluemix.net

運⽤上の注意点

継続的にテストができる仕組み⽤意されることを推奨!

自動でAPI 呼び出し(正常・異常)ができるような仕組み

リクエスト、レスポンスを確認できる仕組み

その理由

連携基盤である

他システムと連携することが前提

マルチテナントで稼働しているため、お客様でログを確認できない

Ticket での問い合わせ

API Connect は、まだまだ進化中

1〜2月間隔でFixがリリース

仕様や挙動が変わる可能性がある

リリース状況の確認

https://developer.ibm.com/apiconnect/bluemix-maint-uk/

他のBluemix サービスと連携している場合、そちらのリリース頻度の影響も併せて受ける

© 2017 IBM Corporation55

IBM Bluemixwww.bluemix.net

価格体系

© 2017 IBM Corporation56

IBM Bluemixwww.bluemix.net

API Connect 提供形態

提供形態

API Connect上のAPI運⽤管理

API Connectのランタイム運⽤管理

ハイパーバイザー/OS運⽤管理

仮想アプライアンスBluemix 仮想イメージ物理アプライアンス

仮想イメージサービス

お客様お客様お客様

お客様お客様IBM

お客様IBM

サービス

お客様

IBM

IBM

ハードウェア運⽤管理 お客様IaaSベンダーIBM IBM

お客様

API Connect インスタンス

課金体系

Public Dedicated IaaS オンプレミス

運⽤主体

共有 専有 専有 専有

ロケーション 海外Bluemix拠点 国内可 国内可 お客様サイト

Subscription(月額)サポート費⽤要

Subscription(月額)サポート・構築費⽤要

Subscription(月額)永久ライセンス(買取)

Subscription(月額)永久ライセンス(買取)

外部Gateway管理 不可 利⽤可 利⽤可

Reserved Instance

お客様

IBM

IBM

IBM

サービス

専有

国内可

利⽤可不可

プラットフォーム Bluemix Public Bluemix Dedicated VMWare ESXi VMWare ESXiBluemix Public

Subscription(月額)サポート費⽤要

© 2017 IBM Corporation57

IBM Bluemixwww.bluemix.net

Bluemix Public ライセンスプラン フィーチャー 料金

Lite 月5万 API コールまで非アクティブで30日経過すると削除される

無料

Essentials 月5万 API コールまで 無料

Professional 月10万 API コールごとに料金を請求単⼀部門のプロジェクト⽤

月額8,400円

Enterprise 月10万 API コールごとに料金を請求企業プロジェクトおよび部門間プロジェクト⽤

月額10,500円

Professional 5M 月500万 API コール、超過時は10万APIごとに料金を請求単⼀部門のプロジェクト⽤

月額262,600円超過10万ごと5,250円

Enterprise 25M 月2500万 APIコール、超過時は10万APIごとに料金を請求企業プロジェクトおよび部門間プロジェクト⽤

月額1,051,000円超過10万ごと4,200円

Enterprise 1B 月10億 APIコール、超過時は10万APIごとに料金を請求企業プロジェクトおよび部門間プロジェクト⽤

月額16,801,000円超過10万ごと1,680円

Custom Professional IBM営業担当者と契約されたお客様専⽤のPAGプランで、前払いのものが亡くなった後、月10万APIコールごとに料金を請求単⼀部門のプロジェクト⽤

月額5,607円

Custom Enterprise IBM営業担当者と契約されたお客様専⽤のPAGプランで、前払いのものが亡くなった後、月10万APIコールごとに料金を請求企業プロジェクトおよび部門間プロジェクト⽤

月額4,486円

Native Cloud Foundry, OpenWhisk等で提供されるAPI管理機能API Connectのサブセット

無料

お試しAPI管理

© 2017 IBM Corporation58

IBM Bluemixwww.bluemix.net

サンプル構成

© 2017 IBM Corporation59

IBM Bluemixwww.bluemix.net

構成例:オンプレでAPIを実行する場合

オンプレでAPIを実行

オンプレ側にSecure Gateway Clientの設定が必要(DataPowerも選択可能)

外部向けAPI 内部システム

オンプレミス

tunnel

Secure GatewayAPI Connect

API

API Connectで

API公開

Secure GWによる

セキュアな接続

既存のDBにアクセスする

新規APIを作成

Secure GW用のクライアントは、DataPowerもしくはサーバーにイン

ストール

外部アプリeg. PFMアプリ

SecureGateway

Client

オンプレでAPIを実行

API

SecureGateway

APIConnect

• 無償枠あり• 有償サービス:¥10,200〜/月

• 10万回のAPI呼び出し/月 =¥10,200〜/月

• 無償版あり• 有償サービス:¥10,200〜/月

• GW 5つ - 接続先 5つ – 50GB 通信量 = ¥10,200〜/月

想定利用料

© 2017 IBM Corporation60

IBM Bluemixwww.bluemix.net

構成例:オンプレのDBを利⽤する場合

クラウド上でアプリは実行するが、DBはオンプレを利⽤

オンプレ側にSecure Gateway Clientの設定が必要(DataPowerも選択可能)

外部向けAPI 内部システム

オンプレミス

tunnel

SecureGateway

API Connect

APIAPI

API Connectで

API公開

Secure GWによる

VPN接続

既存のDBにアクセス

する新規APIを作成

Secure GW用のクライアントは、DataPowerもしくはサーバーにイン

ストール

外部アプリeg. PFMアプリ

SecureGateway

Client

Node.js/Javaなど

クラウドでAPIを実行

SecureGateway

APIConnect

• 無償枠あり• 有償サービス:¥10,200〜/月

• 10万回のAPI呼び出し/月=¥10,200〜/月

• 無償版あり• 有償サービス:¥10,200〜/月

• GW 5つ - 接続先 5つ – 50GB 通信量 = ¥10,200〜/月

• 無償枠あり• 有償:¥7,35 GB/時間

• 2GBメモリ=約10,000円/月

Runtime実行環境

想定利用料

© 2017 IBM Corporation61

IBM Bluemixwww.bluemix.net

構成例:全てクラウドで実行する場合

DBはBluemix上に構築する

必要なデータはオンプレからBlumix上にコピーする

外部向けAPI 内部システム

オンプレミス

DBサービスAPIConnect

APIAPI

API Connectで

API公開

既存のDBにアクセス

する新規APIを作成

オンプレのDBからAPI化に

必要なデータをコピーしておく

外部アプリeg. PFMアプリ

Node.js/Javaなど

クラウドでAPIを実行

• 無償枠あり• 有償:データ量や通信量による

• SQL DB (8GBメモリ-500GB-HA無) = ¥26,300/月

DBサービス

APIConnect

• 無償枠あり• 有償サービス:¥10,200〜/月

• 10 万回のAPI呼び出し/月=¥10,200〜/月

• 無償枠あり• 有償:¥7,35 GB/時間

• 2GBメモリ= 約10,000円/月

Runtime実行環境

想定利用料

© 2017 IBM Corporation62

IBM Bluemixwww.bluemix.net

事例

© 2017 IBM Corporation63

IBM Bluemixwww.bluemix.net

株式会社ゼンリン様: API公開によるデータ・ビジネス拡大

オンプレミスの電子住宅地図DB/ナビ地図DBをIBM API Connectを活⽤することでAPI経由で顧客に公開。新規ビジネス・チャネルの開拓によりデータビジネスを拡大。

Need: 電子住宅地図DB/ナビ地図DBを中心とする派生商品を保有・展開しており必要とされるデータはオンプレミスのデータベースにより管理。通常、これまでデータは紙媒体/DVDで顧客や開発者に対して提供していたが、データを活⽤した新規ビジネス・チャネルの拡大や市場の急激な市場変化にスピーディーに対応するためデジタル化が必要とされた。

Why IBM?: 大量の異業種データを利活⽤、取引が実現可能なハイブリッドクラウド環境を、IBM Bluemixが提供。API開発を高速に行い、お客様が求めるデータ利⽤環境を柔軟かつ迅速に提供します。

Solution: API Connectを⽤いて、• ジオコーディングAPI(住所名称から緯度経度取得)• 道路NW API(緯度経度から周辺・道路属性情報取得)• 施設検索API(緯度経度から周辺の施設情報取得)等をクラウド上でセキュアにAPI公開を実現。

Benefit: API公開後、顧客やパートナーが効率的にデータを発見してアクセス可能となりデータビジネスの拡大に寄与。

SaaS

API

API

電子住宅地図DB

Renovation Innovation

新規ビジネス・チャネル(金融、流通、…)

Data on Cloudパートナー

ナビ地図DB

API

API

API

IBM Bluemix

デジタルITエンタープライズIT

ジオコーディングAPI道路NW API施設検索 API…

マイクロ・サービス・アプリ

オンプレミス クラウド

© 2017 IBM Corporation64

IBM Bluemixwww.bluemix.net

デジタルポスト株式会社様

• サービスをAPIとして提供することで、ハガキ作成ソフトや企業の営業支援システム、販売管理システムとの連携が容易に行えるようになり、ビジネスチャンスが拡大

• 名刺管理、年賀状送付、DM送付などの他社サービスが続々とAPI利用開始

PCユーザーやスマートフォン・ユーザーが年賀状やダイレクトメールの印刷・配送を個別に注文していたが、あらゆるシステムから一貫してデジタルポストの利用を可能にするビジネスモデルを創出したい

課題

効果

© 2017 IBM Corporation65

IBM Bluemixwww.bluemix.net

まとめ

Bluemix の API管理

Cloud Foundry, Cloud Functionsですぐに試せるお試しAPI管理

API Connect による統合API管理

API公開の課題をワンストップで解決

LoopBackによるAPI開発

API デザイナー / API マネージャーによるAPI仕様定義

GatewayによるAPI仕様の実行

開発者ポータルによるAPIの公開

利⽤状況の分析

© 2017 IBM Corporation66

IBM Bluemixwww.bluemix.net

参考情報

Introducing Bluemix Native API Management in CF Apps – The Most Integrated API Tooling on the Market

https://developer.ibm.com/apiconnect/2017/06/01/introducing-bluemix-native-api-management-cf-apps-integrated-api-tooling-market/

Getting Started with Bluemix Native API Management in Bluemix Cloud Foundry.

https://github.com/ibm-apiconnect/getting-started/tree/master/native

Knowledge Center IBM API Connect for Bluemix

https://www.ibm.com/support/knowledgecenter/ja/SSFS6T/mapfiles/getting_started_bluemix.html

© 2017 IBM Corporation67

IBM Bluemixwww.bluemix.net