第1回 エリア・データ連携基盤 技術セミナー（Kong Gateway / FIWARE Orion編）
2023年1月20日

1©Data Society Alliance 2023

アジェンダ⚫ DSAの活動について⚫ 関連する技術知識 / 用語について⚫ エリア・データ連携基盤のシステム構成要素⚫ Kong Gatewayについて⚫ FIWARE Orionについて⚫ 構築デモ⚫ 運用上の注意点⚫ まとめ2©Data Society Alliance 2023

エリア・データ連携基盤に関するDSAの活動と位置づけ⚫ DSAは、デジタル庁が認定した推奨モジュールに関する情報発信やセミナー開催などの普及促進活動を担うとともに、デジタル庁のモジュール戦略策定や推奨モジュールの認定に関する支援を行います。
エリア・データ連携基盤構築団体
自治体
エリア・データ連携基盤の構築/運用を委託

導入に関する問い合わせ/相談

エリア・データ連携基盤整備事業者

導入に関する問い合わせ/相談・ソフトウェアの活用
・動作上の問題報告
・開発コントリビュート

・Webでの情報発信
・導入支援窓口の提供
・セミナーの開催

官公庁

業務支援

DSA

・モジュール戦略の策定
・推奨モジュールの認定

デジタル庁

最新情報の取得OSSコミュニティ©Data Society Alliance 2023

・推奨モジュールの開発
・コミュニティ運営

3

エリア・データ連携基盤の構築に関連する技術知識 / 用語

4
©Data Society Alliance 2023

構築に必要となる技術知識 / 用語
⚫ HTTP / HTTPS⚫ API / Web API / REST API / NGSIv2⚫ REST API⚫ OpenAPI仕様⚫ APIゲートウェイ⚫ コンテキストブローカー⚫ NGSIv2⚫ コンテナ / Kubernetes⚫ 参考：APIを使うアプリケーションの設計
5©Data Society Alliance 2023

HTTP / HTTPS⚫ クライアント～サーバ間のコネクション（HTTPSの場合はSSL/TLSにより暗号化されている）上でメッセージをやりとりするプロトコル。Webブラウザをはじめとして、インターネットを介した通信を行う多数のアプリケーションが採用しています。
HTTPクライアント
リクエスト
ヘッダ
ボディステータス
ヘッダ

HTTPリクエスト
POST /messages HTTP/1.1

HTTPサーバ

Host: www.example.com
Content-Type: application/json
User-Agent: Mozilla/5.0 (Windows NT...
{"message": “Hello, world!"}

HTTPレスポンス
HTTP/1.1 201 Created
Date: Mon, 16 Jan 2023 10:32:15 GMT
Content-Type: application/json
Expires: -1{"message": “Hello, world!""created_at": 1673890622

ボディ}

6©Data Society Alliance 2023

API / Web API / REST API / NGSIv2 の関係⚫ API (Application Programming Interface) とは、プログラムから機能を利用するためのインタフェースの総称。Web API、REST API、NGSIv2は下図のような包含関係にあります。
⚫ TwitterやFacebookなどサービスが提供するAPIは、REST APIとして設計されるのがデファクトスタンダードとなっています。
API：プログラムで機能を利用するためのインタフェースの総称。
Web API：APIのうち、Webを介して機能を利用するもの。
REST API：Web APIのうち、URLでリソースを、HTTPメソッドでリソースの登録/参照/更新/削除操作を表現するAPI設計思想。
NGSIv2：REST APIのうち、FIWARE Orionで採用されているコンテキスト情報を取り扱うためのAPI仕様。

▲ API / Web API / REST API / NGSIv2 の関係©Data Society Alliance 2023

7

REST APIの設計思想⚫ REST APIは、リソースをパスで、アクションをHTTPメソッドで表現するAPI設計思想です。近年公開されているWebサービスのAPIは、ほとんどがREST APIに準拠した設計となっています。
▼ 記事とコメントが管理できるサービスのAPI例⚫ GETのパラメータはURL内のクエリパラメータで、それ以外のパラメータはBodyに記載するのが一般的です。
▼ HTTPメソッドとCRUDの対応
MethodReadWrite

用途

用途

Method記事一覧の取得

GET

記事の登録

POST

記事の参照

GET

記事の更新

PUT

記事の部分更新

PATCH

記事の削除DELETE

コメント一覧の取得

GETPOST

GET

リソースの参照

コメントの登録

POST

リソースの登録

コメントの参照

GETPUT

リソースの更新

コメントの更新

PUT

PATCH

リソースの部分更新

コメントの部分更新

PATCH

DELETE

リソースの削除

コメントの削除DELETEPath/articles/articles/{articleId}/articles/{articleId}/comments/articles/{articleId}/comments/{commentId}

8©Data Society Alliance 2023

OpenAPI仕様によるREST API設計⚫ REST APIの設計は、OpenAPI Specification（API設計書の書き方の仕様）に準拠した形で記載するのがデファクトスタンダードとなっています。
⚫ OpenAPI Specファイルは、SwaggerUIやRedoc等の外部ツールに読み込ませることでWebブラウザで見やすく表示することができます。

▲ OpenAPI Specの構造。
実際はYAMLかJSONで記載される。
©Data Society Alliance 2023

▲ SwaggerUIでAPI仕様を表示した例。

▲ RedocでAPI仕様を表示した例。

9APIゲートウェイによるAPI管理⚫ APIゲートウェイは、複数のAPIサーバが提供されるとき、そのリクエストの受け口をまとめるリバースプロキシです。各APIで共通に必要となるセキュリティやロギング等の機能をまとめて提供します。
API利用サービス
管理するAPIを登録し、セキュリティやロギングなど各APIサーバに共通的に必要となる機能を提供。

/articles/itemsAPI Gateway

記事管理API
GET
POST
GET
PUT
PATCH
DELETE/todosリクエストされたURL（ホスト名、HTTPメソッド、パス、ヘッダ等）に応じて適切なAPIサーバへルーティングする。

商品管理API

ToDo管理API/articles/articles/{articleId}

GET
POST
GET
PUT
PATCH
DELETE/todos/todos/{todoId}

GET
POST
GET
PUT
PATCH
DELETE/items/items/{itemId}

10©Data Society Alliance 2023

コンテキストブローカーによる情報管理⚫ コンテキストブローカーは、様々な場所に保存されたコンテキスト情報を管理し、複数のプログラムやサービスからのリクエストをデータ提供元へ仲介、利用できるようにするプログラムです。
アプリケーション①

事前にコンテキスト情報の所在場所を登録しておくと、Context Brokerが適切な場所にリクエストを仲介してくれる。

アプリケーション②

コンテキストに生じた変更をアプリケーションに通知できる。

コンテキスト情報をContextBrokerのDBに保管することもできる。

Context BrokerDB

コンテキスト情報
コンテキスト情報
コンテキスト情報

システム外部のリソース保管場所①

システム外部のリソース保管場所②
DB

DB
コンテキスト情報
コンテキスト情報
コンテキスト情報©Data Society Alliance 2023

コンテキスト情報
コンテキスト情報
コンテキスト情報

11

NGSIv2と主要リソースの関係⚫ NGSIv2は、コンテキストブローカーの1つであるFIWARE Orionが採用しているAPI仕様です。Entity、Registration、Subscriptionの3種類の主要リソースを組み合わせて情報が管理されています。
アプリケーション①

アプリケーション②

コンテキストに生じた変更をアプリケーションに通知できる。
（Subscription）

NGSIv2
事前にコンテキスト情報の所在場所（Registration）を登録しておくと、Context Brokerが適切な場所にリクエストを仲介してくれる。

コンテキスト情報をContextBrokerのDBに保管することもできる。

Context Broker
DB

EntityEntityEntityシステム外部のリソース保管場所①

システム外部のリソース保管場所②
DBDB
EntityEntityEntity©Data Society Alliance 2023

EntityEntityEntity12

コンテナとKubernetes⚫ コンテナは、プログラム本体とその依存ライブラリをまとめ、アクセスできるリソースを限定したプロセスです。コンテナ間もネームスペースが分離されています。OSのブートが不要なため起動が早く、メンテナンス性のよいシステムを構築できます。
⚫ Kubernetes（主要なパブリッククラウドでマネージドサービスとして提供されています）を使うとコンテナ運用の一部を自動化できます。
⚫ データの不揮発化が必要な場合はマネージドサービスの利用を検討します。
コンテナ

プロセス一部のリソースしか利用できないよう制限できる

依存ライブラリ
依存ライブラリ
依存ライブラリ

CPU
メモリ

コンテナ

コンテナ

ネットワークコンテナ

コンテナ

オートスケール

コンテナ

コンテナ

コンテナ

コンテナ

オートスケール

ストレージ
OS（カーネル）▲ コンテナはカーネルを共有しているためVMと比べて起動速度が早い。コンテナ内のプロセスからは独立した空間で稼働しているように見える。
©Data Society Alliance 2023

Kubernetesサービス

Kubernetesノード

オートスケール

Kubernetesノード▲ Kubernetes上にコンテナをデプロイして利用するイメージ。
各コンテナはKubernetesノード上にデプロイされ、プロセスがクラッシュすると自動で新しいコンテナが作成されたり、負荷に応じてオートスケールさせることができる。
13

参考：APIを使うアプリケーションの設計⚫ API自体でやりとりするデータはJSONが主体となるので、入力ボックスやボタンなどのUIはアプリケーション側でコードを持っておきます。ブラウザ上で動くものはSPA（Single Page Application）と呼ばれます。
ブラウザ / アプリ

WebサーバAPI Gateway / APIサーバUIデータの取得
HTML、CSS、JavaScript、ロゴ、アイコン等表示用データの取得
JSONデータの返却

画面の生成 / 更新

14
©Data Society Alliance 2023

エリア・データ連携基盤のシステム構成

15©Data Society Alliance 2023

エリア・データ連携基盤のシステム構成例（推奨モジュールに関連する領域）⚫ APIを利活用するアプリケーションは、APIゲートウェイを通してブローカー（非パーソナル）またはブローカー（パーソナル）にアクセスし、必要なデータを取得します。
この際、APIゲートウェイ部分で必要な認証・認可やロギングなどの制御が行われます。
APIを利活用するアプリケーション
オープンAPIによるデータアクセス

Kong Gateway（APIゲートウェイ）
パーソナルデータ連携モジュール

FIWARE Orion（ブローカー（非パーソナル））

データ蓄積用DB

外部
アセット©Data Society Alliance 2023

外部
アセット

（ブローカー（パーソナル））

データ蓄積用DB

データ分散型でのAPIアクセス

外部
アセット

推奨モジュールとして公開されている範囲

外部
アセット

データ分散型でのAPIアクセス

外部
アセット

外部
アセット

16

Kong Gateway（APIゲートウェイ）

17©Data Society Alliance 2023

Kong Gateway：APIゲートウェイの推奨モジュール⚫ Kong Gatewayは、国内外で広く利用されているWebサーバ「Nginx」をベースとして開発された、複数のAPIを管理できるAPIゲートウェイです。プラグインで機能拡張な設計で、複雑な要件に対しては自作したプラグインを組み合わせて利用可能です。

Kongドキュメントより引用
https://docs.konghq.com/gateway/latest/©Data Society Alliance 2023

Kongプラグイン一覧ページ
https://docs.konghq.com/hub/18

Kong Gateway：APIゲートウェイの推奨モジュール⚫ 複数のAPIが異なる事業者によって開発・提供される場合でも、その接続要件やレート制限のルール、API呼び出しのログ取得など共通的に必要となる機能をまとめて提供します。提供するAPIの均質化と、API開発コストの低減に貢献します。

19©Data Society Alliance 2023

Kong Gatewayの内部構成⚫ Kongは、NginxをベースにLuaで拡張されたオープンソースのAPI Gatewayです。
API Gatewayのコア機能に特化し、設定は管理用のREST APIで行います。
⚫ 外部から受け付けたHTTPリクエストは、Route、Service、Upstream、Targetとよばれる内部リソースを辿ってAPIサーバへルーティングされます。RouteやServiceを通過する際にリクエストをフックし、プラグイン処理を加えることができます。
APIを利用するサービス

Kong Gateway
Route/items

Route/items/{id}PluginService

PluginRoute/users

PluginPluginRoute/users/{id}ServicePlugin

PluginConsumer
PluginCertificate

Upstream

Upstream
CA Certificate

Targetapi01:3000

Targetapi02:3000

Targetapi03:3000

Targetapi11:4000

Targetapi12:4000

Targetapi13:4000

api01

api02

api03

api11

api12

api1320©Data Society Alliance 2023

Kong Gateway内部リソースの考え方⚫ Service：APIサービス1つに相当⚫ Route：メソッドとパスの組に相当⚫ Upstream：Kongの内部ロードバランサ⚫ Target：APIサーバ1つに相当⚫ Consumer：API利用ユーザに相当⚫ Plugin：Service、Route、Consumer、またはグローバルに動作する
リクエスト / レスポンスの追加処理

APIを利用するサービス

Route/items

Route/items/{id}PluginServicePlugin

PluginUpstream

Targetapi01:3000

Targetapi02:3000

Targetapi03:3000

api01

api02

api03

21
©Data Society Alliance 2023

Kong Gatewayの管理用API⚫ Kong本体にはGUIが付属しておらず、操作はAPIで実施することになります。
⚫ Kong公式サイトには、取り扱い可能なリソースと操作方法が確認できるAPIリファレンスが公開されています。

Kong Admin APIリファレンス
https://docs.konghq.com/gateway/3.1.x/admin-api/

22©Data Society Alliance 2023

Kong Gatewayの構築方法⚫ Kong Gatewayは、Linuxサーバに直接パッケージをインストールして利用する方法、Dockerコンテナを使ってコンテナホスト上で稼働させる方法、またはKubernetesのIngress Controllerとして動作させることができます。
⚫ PostgreSQLに依存しているため、パブリッククラウドサービスが提供するマネージドサービスを利用する等して用意が必要です。
⚫ DB-less mode と呼ばれる構成を採用することで、DBを用意しないでKongを動かすことも可能です（一部機能制約があることに注意）。
https://docs.konghq.com/gateway/latest/production/
deployment-topologies/db-less-and-declarative-config/

https://docs.konghq.com/gateway/latest/install/©Data Society Alliance 2023

23

FIWARE Orion（非パーソナルデータ向けのコンテキストブローカー）

24©Data Society Alliance 2023

FIWARE Orion：ブローカー（非パーソナル）の推奨モジュール⚫ FIWARE Orionは、データブローカーとして国内/国外のスマートシティ事業において多数の実績があるOSSです。データ蓄積とデータ分散双方の機能を具備し、提供される接続インターフェースとしてNGSIv2というオープンAPIで実装されています。

2021年度 生活用データ連携に関する機能等に係る調査研究 調査報告書より引用©Data Society Alliance 2023

FIWARE-NGSI v2 Specification（公開されているAPI仕様ページ）
https://swagger.lab.fiware.org/

25

FIWARE Orion：ブローカー（非パーソナル）の推奨モジュール⚫ NGSI = データ形式 + 通信方法のルール⚫ FIWARE = NGSI準拠のデータ仲介サーバ※1 + 連携モジュール群※2

NGSI準拠のデータ

NGSI
準拠の通信

NGSI
準拠の
データ
FIWARE Orion（データ仲介サーバ）※1：NGSIv2に準拠したFIWARE Orionがよく利用され実績が多い。
※2：IoTデバイスやDBとの連携以外にも多数の連携モジュールが存在する。
https://github.com/FIWARE/catalogue/releases/©Data Society Alliance 2023

MongoDB

NGSI
準拠の通信

FIWARE Cygnus（DB連携モジュール）

IoT
IoT
IoT
デバイス
デバイス
デバイス

FIWARE IoT Agent（IoT連携モジュール）

FIWARE（NGSI準拠のサーバと連携モジュール）

Postgres

26

FIWARE Orion：ブローカー（非パーソナル）の推奨モジュール⚫ 大きく分けて (A) データの管理、(B) データ所在情報の管理、(C) データ更新情報の購読 の3つの機能が利用できます。
(A) データの管理(B) データ所在情報の管理(C) データ更新情報の購読

データを溜め込むDBとして利用する。

多数のデータソースへのアクセスを1つのエンドポイントにまとめる。

データが更新されたら通知してもらう。

データサーバ等

データサーバ等

FIWARE Orion（データ仲介サーバ）

データ
MongoDB

書き込み
データ

データ

(NGSI)読み出し
アプリケーション等

データ(NGSI)

所在登録

更新

読み出し

FIWARE Orion（データ仲介サーバ）

MongoDB
データ(NGSI)

読み出し
アプリケーション等

データ(NGSI)FIWARE Orion（データ仲介サーバ）

MongoDB

購読
データ

データ(NGSI)

通知
アプリケーション等

27©Data Society Alliance 2023

FIWARE Orionの内部リソース⚫ Entity：コンテキスト情報1つに相当⚫ Registration ：コンテキスト情報の所在場所のルール1つに相当⚫ Subscription：コンテキスト情報の変更購読ルール1つに相当
EntityRegistration

Subscription

ID

ID

ID

Type

Description

Description

Entity情報

購読対象のEntityと通知条件

所在場所情報変更通知先に関する情報

仲介実績に関する情報

有効期限、スロットリン
グルールなど

属性情報1
Type
Value
Metadata
属性情報2

28©Data Society Alliance 2023

FIWARE Orionで利用可能なAPI⚫ NGSIv2に対応しています。
利用可能なAPIは右のサイトで公開されています。
⚫ 外部データを所在登録する
場合、そのデータ取得もNGSIv2（POST /op/query）に対応している必要があります。
⚫ 情報更新を購読する場合、その通知の受信もNGSIv2（POST /op/notify）に対応している必要があります。
https://swagger.lab.fiware.org/29©Data Society Alliance 2023

FIWARE Orionで利用できるネームスペース⚫ FIWARE Orionでは、Entity、Registration、Subscriptionを保存するネームスペースとしてFIWARE ServiceとFIWARE ServicePathが用意されています。
それぞれHTTPリクエストのヘッダに記載して設定します。
⚫ FIWARE Orionに認証や認可に関する機能はありませんが、API Gateway側でHTTPリクエストヘッダごとに利用可能なユーザを制御する管理は可能です。
FIWARE-Service: service2

FIWARE-Service: service1
FIWARE-ServicePath: /tokyo

FIWARE-ServicePath: /tokyo/chiyodaFIWARE-ServicePath: /EntityEntityEntityEntityEntityEntityEntityEntityEntityEntityEntityRegistration

EntityEntityRegistration

EntityEntityRegistration

EntityEntitySubscription

EntityEntitySubscription

EntityEntitySubscription

30©Data Society Alliance 2023

FIWARE Orionの構築方法⚫ Dockerhubにコンテナイメージが用意されています。更新が不定期なので古いイメージを利用する場合は脆弱性に注意してください。
⚫ MongoDBに依存しています。MongoDB互換のマネージドサービス（Azure
Cosmos DBやAmazon DocumentDB）は、FIWARE Orionのバージョンによってサポートされていない可能性があるため検証が必要です。
⚫ 認証やセキュリティに関する機能は備えていないため、別の仕組みで用意が必要です。
FIWARE Orion

MongoDB

31©Data Society Alliance 2023

Docker Composeによる構築 / 設定デモ

32©Data Society Alliance 2023

システム構成と概要
作業端末⚫ Docker ComposeでKong GatewayおよびFIWARE Orionのコンテナを立て、APIによる設定を行います。
⚫ Docker環境はインストールされているものとします。
⚫ DBは本来マネージドサービスを払い出したものに接続しますが、今回は簡単のためコンテナで動作させるものとします。

⚫ 次の操作を行います。
⚫ Docker Composeファイルの作成⚫ コンテナイメージの取得⚫ DBコンテナの起動と初期化⚫ Kong / FIWARE Orionコンテナの起動⚫ KongとFIWARE Orionの連携設定⚫ Kongプラグインによる認証設定

InternetVM

sshd

・LinuxベースのOS
80,443/tcp

Docker Compose
Dockerコンテナ

PostgreSQL
Dockerコンテナ

MongoDB

8001/tcp

8080,8443/tcp

Dockerコンテナ

Kong Gateway
Dockerコンテナ

FIWARE Orion

33©Data Society Alliance 2023

参考：デモで利用したDocker Composeファイル
FIWARE OrionとMongoDB

Kong GatewayとPostgreSQL

version: '3.8'
services:

version: '3.8'
services:kong:image: kong:2.8.3
restart: always
environment:
TZ: Asia/Tokyo
KONG_DATABASE: postgres
KONG_PG_HOST: db
KONG_PG_USER: kong
KONG_PG_PASSWORD: password
KONG_PG_DATABASE: kong
KONG_PROXY_ACCESS_LOG: /dev/stdout
KONG_ADMIN_ACCESS_LOG: /dev/stdout
KONG_PROXY_ERROR_LOG: /dev/stderr
KONG_ADMIN_ERROR_LOG: /dev/stderr
KONG_ADMIN_LISTEN: 0.0.0.0:8001, 0.0.0.0:8444 ssl
KONG_PROXY_LISTEN: 0.0.0.0:80, 0.0.0.0:443 ssl
ports:- 80:80- 443:443- 8001:8001- 8444:8444
depends_on:- dbdb:
restart: always
image: postgres:13
environment:
TZ: Asia/Tokyo
POSTGRES_PASSWORD: password
POSTGRES_USER: kong
POSTGRES_DB: kongvolumes:- ./data/postgres:/var/lib/postgresql/datamongo:
image: mongo:4.4
restart: alwayscommand: --bind_ip_all --quiet
environment:
TZ: Asia/Tokyo
volumes:- ./data/mongodb:/dataorion:
image: fiware/orion:3.7.0
restart: alwayscommand: -dbhost mongo -logLevel INFO
environment:
TZ: Asia/Tokyo
depends_on:- mongoports:- 1026:1026

これらはデモ目的で用意したものですので、セキュリティ設定や冗長化など本番環境で必要な構成についてはそれぞれ別途設定が必要です。参考程度に利用ください。

34©Data Society Alliance 2023

参考：デモで利用したコマンド（1/3）⚫ コンテナイメージの取得⚫ docker compose pull

⚫ Kong Gatewayコンテナの起動⚫ docker compose up -d db⚫ docker compose run kong kong migrations bootstrap⚫ docker compose up –d⚫ FIWARE Orionコンテナの起動⚫ docker compose up -d

35©Data Society Alliance 2023

参考：デモで利用したコマンド（2/3）⚫ Kongのサービス登録⚫ curl -X POST -d "name=fiware-orion" -d "url=http://172.17.0.1:1026/"
localhost:8001/services⚫ curl -X POST -d "name=all" -d "paths[]=/" localhost:8001/services/fiwareorion/routes⚫ Consumer登録とAPIキーの作成⚫ curl -X POST -d "username=app01" localhost:8001/consumers⚫ curl -X POST localhost:8001/consumers/app01/key-auth⚫ APIキー認証の設定⚫ curl -X POST -d "name=key-auth" localhost:8001/routes/all/plugins

36©Data Society Alliance 2023

参考：デモで利用したコマンド（3/3）⚫ Entityの登録⚫ curl -X POST -H "Content-Type: application/json" -H "apikey: xxx" -d '{"id":"Room001", "type": "Room", "temperature": {"type": "float", "value": 25.5,"metadata": {}}}' localhost/v2/entities⚫ Entityの取得⚫ curl -H "apikey: xxx" localhost/v2/entities/Room001⚫ Entityの更新⚫ curl -X PUT -H "Content-Type: text/plain" -H "apikey: xxx" -d "23.5"
localhost/v2/entities/Room001/attrs/temperature/value⚫ Entityの削除⚫ curl -X DELETE -H "apikey: xxx" localhost/v2/entities/Room001

37©Data Society Alliance 2023

運用上の注意点38©Data Society Alliance 2023

運用上の注意点⚫ Kubernetesクラスタの定期アップグレード⚫ SSL証明書の更新作業⚫ コンテナイメージの更新⚫ FIWARE Orionにおけるバイナリの取り扱い方法⚫ FIWARE Orionで取り扱うEntityの重複に注意⚫ NGSIv2実装ノートを確認する

39©Data Society Alliance 2023

Kubernetesクラスタの定期アップグレード⚫ Kubernetesクラスタを利用している場合は、クラウドサービス側でサポートされているバージョンのサポート期限が設定されているケースがほとんどです。定期的なクラスタアップグレードが必要なケースは計画的な実施が必要です。

▲ Microsoft Azureで提供されるKubernetesサービスのリリース予定
https://learn.microsoft.com/ja-jp/azure/aks/supportedkubernetes-versions?tabs=azure-cli▲ Amazon Web Servicesで提供されるKubernetesサービスのリリース予定
https://docs.aws.amazon.com/ja_jp/eks/latest/userguide/kubernetes-versions.html#kubernetes-release-calendar▲ Google Cloud Platformで提供されるKubernetesサービスのリリース予定
https://cloud.google.com/kubernetes-engine/docs/releaseschedule?hl=ja40©Data Society Alliance 2023

SSL証明書の更新作業⚫ 基本的にすべての操作はAPIを介して実施するため、APIエンドポイントをSSL終端する場合は証明書の期限が切れるとすべてのアクセスが失敗する可能性があります。
テストの上で計画的に証明書の更新が必要です。
アプリケーション

SSL証明書導入可能箇所

L7 Firewall

SSL証明書導入可能箇所

Kong Gateway

API Server

API Server

API Server41©Data Society Alliance 2023

コンテナイメージの更新⚫ Dockerhubで公開されているコンテナイメージにはバージョンタグが設定されていますが、同じバージョンタグでもイメージ自体が更新されているケースがあります。アプリケーションのバージョンは同じで、ライブラリが更新されているケース等があります。
⚫ たとえば、Kong 2.8.1は2022年4月7日リリースですが、コンテナイメージの最終更新日は2022年10月26日となっており、リリース当初からイメージが更新されています。

▲ Dockerhub上で確認したKong 2.8.1の最終更新日は2022年10月26日。

▲ GitHub上で確認できるKong 2.8.1のリリース日は2022年4月7日。

42©Data Society Alliance 2023

FIWARE Orionにおけるバイナリの取り扱い方法⚫ FIWARE OrionではJSONデータのみ取り扱い可能です。そのため、画像、動画、PDF、Excelファイル等のデータはURLやサイズ等のメタデータのみを登録し、データ本体は別の場所（オブジェクトストレージ等）に格納する必要があります。

FIWARE Orion

EntityID: …
Type: …
URL: …
Content-Type: …
Content-Length: …

Object Storage
データ実体
データ実体
データ実体

43
©Data Society Alliance 2023

FIWARE Orionで取り扱うEntityの重複に注意⚫ EntityはFIWARE Service/ServicePath/ID/Typeで識別しますので、これらが重複しないよう設計する必要がいあります。また、FIWARE Orionに蓄積されているEntityと、Registrationで所在登録のみされているEntityで上記が重複しないよう注意する必要があります。

FIWARE Orion
MongoDB
Registration
ID: xxx
Type: yyy
ServicePath: zzz
URL: www

EntityID: xxx
Type: yyy
ServicePath: zzz

44©Data Society Alliance 2023

NGSIv2実装ノートを確認する⚫ NGSIv2実装ノートには、FIWARE Orionで利用できない文字、日付の形式、リク
エストペイロードの検証項目など、FIWARE Orionを利用する上での留意事項がまとまっています。一読した上で動作確認することをおすすめします。
https://fiware-orion.letsfiware.jp/3.7.0/user/ngsiv2_implementation_notes/
https://fiware-orion.readthedocs.io/en/3.7.0/user/ngsiv2_implementation_notes.html

45©Data Society Alliance 2023

まとめ

46
©Data Society Alliance 2023

まとめ
⚫ 本セミナーでは、非パーソナルデータを対象として、次の項目について説明しました。
⚫ エリア・データ連携基盤の構築に関連する技術知識と用語⚫ Kong Gatewayの概要と内部動作⚫ FIWARE Orionの概要と内部動作⚫ Docker Composeを使ったテスト環境の構築と、curlコマンドによる設定、動作確認⚫ 運用上の注意点

47©Data Society Alliance 2023

問い合わせ方法等について⚫ 自治体等からの問い合わせは「エリア・データ連携基盤お問合せフォーム」よりお問合せください。
別途担当者よりご連絡させていただきます。

DSAエリア・データ連携基盤お問合せフォーム
https://data-society-alliance.org/area-data/contact/⚫ なお、DSAのHPには推奨モジュールの導入を支援するために、導入ガイドライン（ビルド手順書 /構築手順書）や利用ガイドライン（利用手順書 / 連携手順書）を公開しており、推奨モジュールのソースコードはOSSとしてGitHubに公開されています。
Kong Gateway https://github.com/Kong/kong （外部サイト）

FIWARE Orion https://github.com/telefonicaid/fiware-orion （外部サイト）⚫ また、ハンズオンセミナーへの参加を希望される場合は、DSAへの会員登録をお願いいたします。

48©Data Society Alliance 2023

質疑応答

49
©Data Society Alliance 2023