OCIで提供されているデータベースサービスについて
かつてデータベースは、オンプレミスのサーバーにソフトウェアをインストールして稼働させていた。そのためハードウェアからソフトウェアまで管理する必要があり、苦労が多かった。しかしクラウドが登場すると、IaaSでハードウェアとサーバーOSまで準備された環境にデータベースをインストールして利用できるようになった。現在ではさらに進み、PaaSとしてインストール済みのデータベースをサービスとして利用できるようになっている。
今回はオラクルのクラウド「OCI(Oracle Cloud Infrastructure)」で提供されているデータベースサービス(PaaS)に、どのようなものがあるか確認するところから始めよう。ちなみに、どれも内部的にはOracle Databaseをベースとしている。
仮想マシンにOracle DatabaseやOracle RACをインストールしたものは「Base Database Service(Base DB)」と呼ばれる。またOracle Exadataは専用のプラットフォーム上で構成されるのでBaseDBとは区別して「Exadata Database Service(ExaDB)」と呼ばれる。ここまではデータベースの運用に必要な機能の多くが自動化されているので「DB PaaS Automated(自動化)」とくくることができる。
フルマネージド自律型データベース「Autonomous Database」
自動化の次はフルマネージドサービスだ。今回フォーカスを当てるAutonomous Databaseは「DB PaaS Full Managed」と分類され、パッチ適用、リソース監視、バックアップ/リストア、HA/DRまでデータベース管理作業を自動化することができる。さらにはDB最適化からスケーリングなど一般的なマネージドサービスでは管理者が手作業で実施するのがAutonomous Databaseならではの特徴だ。そのため利用者は基本的にはアプリケーション層のことだけを考えればいいようになっている。
ADBは2018年からサービス提供されている。オラクルがこれまで培った技術を最適に組み合わせることで性能の高さを実現している。具体的にはExadataを基盤として、Oracle Database 19cを使い、運用環境では機械学習を用いるなどして、可能な限り自動化が進められている。ユーザーは運用管理に煩わされることなく、アプリケーション層に集中できる。
武井氏はAutonomous Databaseを「新時代のデータベース・サービス」と呼び、その特徴について3つ挙げる。
1点目は「完全なマネージドサービス」。オラクルがこれまで培い、実績のあるOracle DatabaseやExadataを基盤として、運用は完全に自動化され、さまざまなツールが無償で同梱されている。
2点目は「完全な柔軟性」。1CPU単位で、CPUを無停止で増減できる。またワークロードに応じた自動増減も可能だ。CPUやストレージは1秒単位で課金されるため、細かな利用も可能となる。
3点目は「完全なマルチモデル」。トランザクション(OLTP)や分析などあらゆるワークロードに対応し、また構造化データ、JSON、グラフなどあらゆるデータタイプにも対応している。
繰り返しとなるがAutonomous Databaseはさまざまなワークロードに対応しており、特性に応じて4種類のサービスを選択することができる。分析がメインであれば「Autonomous Data Warehouse(ADW)」、JSONメインであれば「Autonomous JSON Database(AJD)」、アプリケーション開発が中心であれば「APEX Application Development」となる。それ以外は混在ワークロードでも使える汎用(はんよう)的な「Autonomous Transaction Processing(ATP)」を使うことになるだろう。
デプロイメントでは、シンプルかつコスト優先で使いたいなら通常のサーバーレスがいいだろう。しかし選択肢がサーバーレスだけではないのがOCIならではだ。大規模なシステムやより自社に特化した運用を求める場合のために「Dedicated Exadata Infrastructure」という占有環境で利用できる選択肢もある。
武井氏は「Autonomous Databaseは世界で数百社以上、日本国内でも数十社以上の公開事例を持ち、多くのお客様で利用されています」と話す。
全てのデベロッパー(開発者)におすすめ!Oracle Code Night
オラクルのテクノロジーだけに限定しない、Developer(開発者)のDeveloperによるDeveloperのための開発者向けコミュニティ Meetup / セミナーを ほぼ毎週さまざまなテーマで開催しています! 開催情報はConnpass(Oracle Code Online)に掲載中!
過去開催分セッションアーカイブはYouTube(@OraDevJP)をチェック!
データベースを扱うWebアプリをローコードで作成!「Oracle APEX」
ここからはOracle Application Express(Oracle APEX)に話題を移そう。Oracle APEXは拡張性や安全性などの機能が豊富で、あらゆるデバイスで実行可能なWebアプリケーションをローコードで開発できるプラットフォームとなる。ローコードというものの、SQLやPL/SQLを使って複雑なデータ処理やロジックを扱うこともできる。JavaScriptやCSSの知識がなくてもWebアプリケーションを開発できるため「データベースのスキルはあるが、Webアプリケーション開発は得意ではない」ならうってつけかもしれない。
なおOracle APEXはAutonomous Databaseで標準搭載されるツールであり、追加コストなしで利用できる。データベースにあるデータをレポートやカレンダーなどのコンポーネントを通じて簡単に可視化や編集ができるようにもなっている。ブラウザベースの開発ツールなのでブラウザから手軽に開発できる。
よくあるユースケースとしては、スプレッドシートからのWebアプリケーション作成、簡易なビジネスアプリケーション開発、Oracle Formsアプリケーションの刷新、ERPシステムの拡張などがある。詳しくは「Oracle APEX情報サイト」を参考にしてほしい。
Oracle APEXでは、1つのデータベースで複数の開発環境(ワークスペース)を作ることができる。ワークスペースは複数の開発者で複数のアプリケーションを作成し、共有することができる。例えばマスターとなるデータベースがあり、そのデータベースに紐付いたワークスペースをチームごとに作り、チーム内でアプリケーションを開発し、共有してもいいかもしれない。
全てのデベロッパー(開発者)におすすめ!Oracle Code Night
オラクルのテクノロジーだけに限定しない、Developer(開発者)のDeveloperによるDeveloperのための開発者向けコミュニティ Meetup / セミナーを ほぼ毎週さまざまなテーマで開催しています! 開催情報はConnpass(Oracle Code Online)に掲載中!
過去開催分セッションアーカイブはYouTube(@OraDevJP)をチェック!
Autonomous Databaseの操作とOracle APEXでの開発
実際にどのように使うか、武井氏はデモを披露した。まずOCIの画面を開いてみると、あらかじめ作成しておいたAutonomous Databaseが表示されている。ここで[Autonomous Database詳細]タブを開くと、データベースに関する詳細情報を確認できる。
例えば[バックアップ]のセクションを見ると、自動バックアップが有効化されていることを確認できる。Autonomous Databaseだと自動バックアップの保持期間はデフォルトで60日間。この期間内であれば任意のタイミングにデータベースを復元することができるようになっている。
[他のアクション]というボタンをクリックすると、Autonomous Databaseのライフサイクルを選択することができる。例えば「停止」、「再起動」、「終了」など。[パフォーマンス・ハブ]というボタンをクリックすると画面が遷移し、Autonomous Databaseの統計情報、例えばASH分析やSQLモニタリングを通じてデータベースのパフォーマンス状況を確認することができる。
続いてOracle APEXを利用する時の画面を見ていこう。Autonomous Databaseの[ツール構成]というタブを開くとOracle APEXを開くリンクがある。クリックすると、Oracle APEXが開き、(あらかじめ作成しておいた)ワークスペースが表示される。
Oracle APEXのトップ画面には、4つの主要機能へのナビゲーションが用意されている。[アプリケーション・ビルダー]をクリックするとWebアプリケーション開発、[SQLワークショップ]からはデータベースにあるオブジェクトのメンテナンス、[チーム開発]からはアプリケーション開発のライフサイクル管理、[ギャラリー]からはアプリケーション一覧へと進むようになっている。
次に武井氏はExcelファイルからアプリケーションを作成する手順をデモで示した。[アプリケーション・ビルダー]から[作成]、さらに[ファイルから]をクリックして、データが入っているファイルを選択する。続いて表の名前などを入力し、プレビュー画面で問題がない(文字化けなど発生していない)ことを確認して、データをロードする。ロードが終わると表が作成される。
この表からアプリケーションを作成していく。アプリケーションの作成画面にはページの概観や主要機能(プッシュ通知やアクセス制御)などが提示されるので、必要に応じて取捨選択してからアプリケーションの作成を実行する。
作成したアプリケーションに対して[アプリケーションの実行]をクリックすると、ブラウザの新しいタブが開いてログイン画面が表示される。ユーザー名とパスワードを入力してログインすると、作成したアプリケーションを利用できる状態となる。このアプリケーションを使うエンドユーザーには、ログイン画面のURLを伝えておけばいい。
アプリケーションでは、表からグラフを作成したり、カテゴリ別に検索したり、行単位でデータを絞り込んだり、レポート作成したりすることが可能だ。こうした機能はとてもシンプルだが、一から作成しようとするとそれなりに手間となる。Oracle APEXで提供されているテンプレートを活用すれば素早くアプリケーションを作成できて、データの編集も手軽にできるようになる。もちろんデータベースのデータはそう簡単に改変してはいけないことも多いので、データ編集についての制限をかけることも可能だ。
このようにOracle APEXはシンプルなアプリケーションを簡単に開発することができるので、ビジネスの変化が激しいなか素早く対応するのに寄与することだろう。あるいは既存の基幹システムや業務システムのちょっとした拡張にも役立つ。またデモで示したようにファイルで共有していたデータをWebアプリケーション化することで、複数のユーザーが安全に同時利用できるようになる。レガシーなクライアント・サーバー型のアプリケーションのWeb化で活用されるケースもある。
最後に武井氏は「Autonomous DatabaseやOracle APEXはさまざまな業界で採用されております。興味があれば成功事例やドキュメントなどをご確認いただき、Oracle Cloud Free Tierで無償でお試しください」と呼びかけた。
全てのデベロッパー(開発者)におすすめ!Oracle Code Night
オラクルのテクノロジーだけに限定しない、Developer(開発者)のDeveloperによるDeveloperのための開発者向けコミュニティ Meetup / セミナーを ほぼ毎週さまざまなテーマで開催しています! 開催情報はConnpass(Oracle Code Online)に掲載中!
過去開催分セッションアーカイブはYouTube(@OraDevJP)をチェック!