1. All contents copyright Six Square Japan Co., Ltd. All Rights Reserved.
株式会社シックススクウェアジャパン
Oracle APEX ユーザーグループ
Oracle APEX × API Gateway ×
Functions による
サーバレス開発
2020/7/29 1
DBXAP(ディービーザップ)
2. All contents copyright Six Square Japan Co., Ltd. All Rights Reserved.
弊社について
会社名 : 株式会社シックススクウェアジャパン
事業内容 : Oracle APEXを中心としたシステム開発
設立年月日 : 2012年2月1日
資本金 : 10,000,000円
創業よりOracle Databaseにかかわる案件を中心にインフラ面での支援を行っております。特
にExadataの支援ご依頼が多くあります。
2017年2月よりDBXAPというOracle APEX専門の開発サービス(開発請負・APEX開発者向
け講習)を展開しています。最近はローコード開発が需要が伸びているせいか、Oracle APEX
の開発者向け講習がよく入ります。
昔から高速開発(RAD)など分野としてありますが、Web上での開発が洗練されてきており、昨
今のエンジニアの枯渇、DX推進、コロナ禍等色々な要素から需要の増加が見込まれる分野と
とらえております。
ガートナーではlow-code application platform (LCAP) による開発は、2024年には65%を
占めると予測を出しています。(2019/08/08記事 日本国内でということではありません。)
https://www.gartner.com/doc/reprints?id=1-1ODOM46A&ct=190812&st=sb
国内初のOracle APEXの正式パートナーとして対応させいて頂いております。
https://apex.oracle.com/pls/apex/f?p=411:2
2020/7/29 2
3. All contents copyright Six Square Japan Co., Ltd. All Rights Reserved.
目次
1. Oracle Cloud上でのAPEX開発課題
2. 構成の変更
3. サービスを使った感想
4. アプリケーションの構成
2020/7/29 3
4. All contents copyright Six Square Japan Co., Ltd. All Rights Reserved.
目的
Oracle APEXとOracle Functionsをサーバレスで構成して
よかったところと、どんな課題があったかを紹介します。
著名なサービスに導入して、こんなサービスが出来たとい
うキラキラした話はなくて、泥臭い感じです。
話を聞い頂いて、もし私もマネージド・サーバレスで
Functionsをやってみようと思って頂けたら成功です。
2020/7/29 4
5. All contents copyright Six Square Japan Co., Ltd. All Rights Reserved.
ORACLE CLOUD上での
APEX開発課題
2020/7/29 5
6. All contents copyright Six Square Japan Co., Ltd. All Rights Reserved.
今まで弊社で導入していた構成
2020/7/29 6
Autonomous
Database
VCN
顧客環境
PL/SQLだと
大変な部分
Virtual
Machine
Apache HTTP
Python
・Flask
WebAPI
PL/SQLコード
SQL
HTTPS
7. All contents copyright Six Square Japan Co., Ltd. All Rights Reserved.
意外といっぱいある課題
2020/7/29 7
メンテナンス 人とお金周り拡張性
顧客ごとのメンテナンス
認証周りの更新
他言語の利用
可用性の向上
拡張時費用
保守する人数
費用が高い?
解決したいなと思いながら案件をこなす日々・・
8. All contents copyright Six Square Japan Co., Ltd. All Rights Reserved.
意外といっぱいある課題
2020/7/29 8
メンテナンス
顧客ごとにあるWebAPI
– 小規模開発でもAPEX単体で難しい場合は外部処理が入る
• 開発環境維持は弊社ですか?そうですか・・監視も個別にいりま
すよね。ですよね。あ、お高い?そうですか・・
Cloudらしくない技術的な負債
– OSやDBの自動アップデートに合わせたレガシー化した
技術のアップデート
• DB、OSが自動でアップデートされます。アップデートに合わ
せてコードの修正が必要ですね。○百万円になります~。
え、Cloudって全部自動でアップデートされるんじゃないの?
9. All contents copyright Six Square Japan Co., Ltd. All Rights Reserved.
意外といっぱいある課題
2020/7/29 9
拡張性
他言語の利用が必要
– Pythonは他の言語に比べて処理速度が遅い
• Pythonから他言語のモジュールを呼ぶとかもあるけども、バー
ジョンごとにライブラリがあったりなかったり・・自作?
処理量が増えた
– ロードバランス構成に変更
• 最初から組んでればいい?だって費用が高いからって・・
– 予算が出ない
• 一次的な予算支出はいいけど、売り上げにつながる部門じゃない
からメンテナンス費用は増やせないなぁ。
Cloudとは・・(実際に継続的な費用増加は嫌がる方は多い。)
10. All contents copyright Six Square Japan Co., Ltd. All Rights Reserved.
意外といっぱいある課題
2020/7/29 10
開発はアジャイル、保守費用はウォーターフォール
– Oracle APEX単体では、正直保守費用はあまりもらえない
• ローコード開発で初期構築費安いですね。基盤も安いですね
(CPU1~2つ)。
• え、すぐできるんだからとりあえず作ってくれ?保守の中に簡単
な修正を入れてほしい?保守費用は開発の20%?1カ月0.5日も稼
働できないんですけど・・
会社が小さくて保守対応者が少ない(資金力不足)
– 小さい案件が多くなると、保守側の効率が悪く人が足りなく
なる
• 弊社より資金のないところなんてそうそうないとは思います
が・・
人とお金周り
11. All contents copyright Six Square Japan Co., Ltd. All Rights Reserved.
解決して実現したい
• メンテナンスを減らしたい
• 顧客も納得できるクラウド型のビジネス
モデルにしたい(サブスクリプションで
も類似でも)
2020/7/29 11
12. All contents copyright Six Square Japan Co., Ltd. All Rights Reserved.
解決して実現したい
2020/7/29 12
そして・・
開発ロジックへの集中、集中&集中
13. All contents copyright Six Square Japan Co., Ltd. All Rights Reserved.
まず思ったこと
2020/7/29 13
Autonomous
Database
VCN
顧客環境
PL/SQLだと
大変な部分
Virtual
Machine
Apache HTTP
Python
・Flask
WebAPI
外に出そう
出来るだけ
共通パッケージ化
PL/SQLコード
SQL
HTTPS
14. All contents copyright Six Square Japan Co., Ltd. All Rights Reserved.
ちょっと聞いてみた
2020/7/29 14
(株)フルエナジー
松本さん
以前OCIjpでFunctions使ってましたよね。
Functionsの環境構築って運用込みでお願いできたり
しますか?
※ 弊社は極力Cloud基盤には手を出さない方針
Kubernetes + Dockerのイメージですか?
サーバレスでAPI Gateway + Oracle Functionsの
方が運用負荷も価格も下がりますよ。
[OCIjp]
Oracle Cloud Infrastructure(OCI)に関する勉強会を開催するグループです。
https://fullenergy-oci.connpass.com/
え、そうなんですか。
弊社(私)
弊社(私)
15. All contents copyright Six Square Japan Co., Ltd. All Rights Reserved.
構成の変更
2020/7/29 15
16. All contents copyright Six Square Japan Co., Ltd. All Rights Reserved.
2020/7/29 16
結局どんな構成にしたか
17. All contents copyright Six Square Japan Co., Ltd. All Rights Reserved.
Security Lists
図解(一部未実装)
2020/7/29 17
API Gateway
Functions
Autonomous
Database
VCN
Functions
VCN
顧客環境 弊社環境
OAuth2.0
Third Party
Tool
DBXAP
Package(β)
ユーザー管理
データロード補助
ジョブ管理
開発無償
本番月額
HTTPS
18. All contents copyright Six Square Japan Co., Ltd. All Rights Reserved.
簡易アーキテクチャ図
2020/7/29 18
API Gateway
Functions
Autonomous
Database
APEX標準のOAuth
クライアント証明登録
PL/SQLコード
|- ビジネスロジック
|- Web APIコール
監視
開発
デプロイ用サー
バ
デプロイ
GitHub
PL/SQL Package
19. All contents copyright Six Square Japan Co., Ltd. All Rights Reserved.
解決!
2020/7/29 19
メンテナンス
顧客ごとにあるWebAPI
– Oracle Functionsによる一元管理(大規模クローズドは別)
Cloudらしくない技術的な負債
– 弊社パッケージとして一元的に管理することで各アップデー
トに対応(大変ですが、個別にやるよりすごく楽)
大体解決!
解決!
20. All contents copyright Six Square Japan Co., Ltd. All Rights Reserved.
解決!
2020/7/29 20
拡張性
他言語の利用が必要
– Oracle Functionsで色々な言語に対応
処理量が増えた
– 基本全てマネージドシステムで管理することで、大体解決。
CPU不足とかで金額据え置きは解決難しい。
大体解決!
解決!
21. All contents copyright Six Square Japan Co., Ltd. All Rights Reserved.
解決!
2020/7/29 21
開発はアジャイル、保守費用はウォーターフォール
– パッケージによる月額課金形態にし、保守を各顧客専用から
全体化することである程度解決
会社が小さくて保守対応者が少ない(資金力不足)
– 案件ごとに持つアプリケーションコードを少なくすることで、
効率的な対応を維持
人とお金周り
大体解決!
大体解決!
22. All contents copyright Six Square Japan Co., Ltd. All Rights Reserved.
サービスを使った感想
2020/7/29 22
23. All contents copyright Six Square Japan Co., Ltd. All Rights Reserved.
2020/7/29 23
Oracle Autonomous Database
Oracle APEX
24. All contents copyright Six Square Japan Co., Ltd. All Rights Reserved.
Autonomous Database 概要
• 基本的にサービスとして、デー
タベース管理が不要となります。
• Exadata上で動いており、
Exadataの機能が利用できます。
• ADW (Oracle Autonomous
Data Warehouse / データウェ
アハウス)とATP(Oracle
Autonomous Transaction
Processing /トランザクション処
理用)があります。
2020/7/29 24
Autonomous Database
26. All contents copyright Six Square Japan Co., Ltd. All Rights Reserved.
2020/7/29 26
API Gateway
27. All contents copyright Six Square Japan Co., Ltd. All Rights Reserved.
API Gateway 概要
• ネットワーク内のプライベート・
エンドポイントや、インターネッ
ト上のパブリックIPアドレスから
接続できるAPIを公開できます。
エンドポイントは、API検証、リ
クエストとレスポンスの変換、
CORS、認証と認可およびリクエ
スト制限をサポートします。
2020/7/29 27
API Gateway
28. All contents copyright Six Square Japan Co., Ltd. All Rights Reserved.
今後の課題に感じた点
今回の構成で良かった点
• 外部WebAPIの認証一元化が
できる(できそう/検証中)。
• Oracle APEXからつなぐ時の
手間が少ない。1つの証明書
で繋がるので、手間が少ない
(事前構成済みWalletを利
用) 。
• Oracle Functionsで作ったも
のは、画面で選択するだけで
デプロイできる。
2020/7/29 28
• 今のところなし
よかった点
29. All contents copyright Six Square Japan Co., Ltd. All Rights Reserved.
2020/7/29 29
Oracle Functions
30. All contents copyright Six Square Japan Co., Ltd. All Rights Reserved.
Oracle Functions 概要
• Oracle Functionsは、エンタープ
ライズ・グレードOracle Cloud
Infrastructureに基づいて構築さ
れ、Fn Projectオープン・ソー
ス・エンジンで機能する、完全に
管理された、スケーラブルな、オ
ンデマンドの、Functions-as-a-
Serviceプラットフォームです。
2020/7/29 30
Functions
31. All contents copyright Six Square Japan Co., Ltd. All Rights Reserved.
今後の課題に感じた点
今回の構成で良かった点
• マネージドなので、保守がと
ても楽。スケールを考える必
要もない。
• 機能部分だけ考えればよいの
で、実装工数が少なくて済む。
• 複数言語が使えるため、処理
によって言語の切り替えが出
来る
2020/7/29 31
• 実行可能な秒数の上限が決め
られている(2020/07/20現
在は120秒)
• メモリに載っている期間が
ちょっと短い。初回実行は少
し時間がかかる。
• 複雑な処理をしたいときは設
計がちょっと面倒。(機能ご
とに分割しないといけない)
• PythonはWindowsの開発で
難あり(後程)
よかった点
32. All contents copyright Six Square Japan Co., Ltd. All Rights Reserved.
アプリケーションの構成
2020/7/29 32
33. All contents copyright Six Square Japan Co., Ltd. All Rights Reserved.
とりあえずの構成
2020/7/29 33
アプリケーション
– 名前: <サービス名>
– Function
• 名前: <機能名>_v1_<操作>
API Gateway
– 名前: <サービス名>
– デプロイメント
• 名前: <機能名>
• パス接頭辞: /<機能名>
– ルート1
» メソッド: GET
» パス: /v1/<操作> (作成したFunctionを指定)
– ルート2
» メソッド: POST
» パス: /v1/<操作> (作成したFunctionを指定)
38. All contents copyright Six Square Japan Co., Ltd. All Rights Reserved.
2020/7/29 38
具体的な設定周りを期待した方はすみません。時間な
いのでまた別で・・
もし今回の話をきいて、やってみようと思ったら
相談下されば何か答えられるかもしれません。
相談はただです。
apexugjのSlackにもいます。
39. All contents copyright Six Square Japan Co., Ltd. All Rights Reserved.
2020/7/29 39
協業者募集中です
特に営業周り。売り上げ欲しいです。
40. All contents copyright Six Square Japan Co., Ltd. All Rights Reserved.
2020/7/29 40
ありがとうございました
41. All contents copyright Six Square Japan Co., Ltd. All Rights Reserved.
2020/7/29 41
免責事項
本資料に掲載された情報・資料を利用、使用、ダウンロードするなどの行為に関連して生じたあらゆ
る損害等についても、理由の如何に関わらず、弊社は一切責任を負いません。
また、本資料の情報には注意を払っておりますが、本資料の内容の正確性については一切責任を負い
かねますのでご了承ください。
各社の商標または登録商標
• Apple、Apple のロゴ、Apple Pay、Apple Watch、iPad、iPhone、iTunes、QuickTime、
QuickTimeのロゴ、Safariは、米国および他の国々で登録されたApple Inc.の商標です。iPhoneの
商標は、アイホン株式会社のライセンスにもとづき使用されています。App Store、AppleCare、
iCloudは、Apple Inc.のサービスマークです。
TM and (C) 2018 Apple Inc. All rights reserved.
• Android、Android ロゴ、Chromecast、Cloud Search、Gmail、Google、Google ロゴ、Google
アシスタント、Google カレンダー、Google Chrome、Google Cloud Platform (GCP) 、Google
ドキュメント、Google ドライブ、ビジネス向け Google グループ、Google Home、Google
Home ロゴ、Google Home Mini、Google Home Mini ロゴ、Google ハングアウト、Google
Keep、Google マップ、Google Nest Mini、Google Nest Mini ロゴ、Google Play、Google Play
ロゴ、Google Play Music、Google Play Music ロゴ、Google+、Google サイト、Google スプ
レッドシート、Google スライド、G Suite、Google Vault、YouTube、YouTube ロゴは、
Google LLC の商標です。
• OracleとJavaは、Oracle Corporationおよびその子会社、関連会社の米国およびその他の国にお
ける登録商標です。文中の社名、商品名などは各社の商標または登録商標である場合があります。
• 「Microsoft (R)」、「Microsoft (R) ActiveSync (R)」「Exchange ActiveSync (R)」
「Microsoft (R) Office OneNote (R)」、「Microsoft (R) Office Outlook (R)」、「Microsoft
(R) Office Excel (R)」、「Microsoft (R) Office PowerPoint (R)」、「Windows (R)」
「Microsoft (R) Windows (R)」「Windows Server (R)」「Windows Vista (R)」「Windows
(R) 7」「Windows (R) 8」「Windows Mobile (R)」「Windows (R) 10 Mobile」、「Internet
Explorer (R)」、「.NET Framework」、「BitLocker」、「SQL Server (R)」、「Microsoft
Azure (TM)」、「ExpressRoute」、「Office 365」、「Active Directory」は、Microsoft
Corporationの商標または登録商標です。