Cloud Service
OCI Database Tools
DB 接続情報を一元管理し、ブラウザだけで SQL を実行できるマネージドな運用ツール群。クライアント導入なしで接続定義・資格情報・SQL ワークシートを扱える。AWS の RDS Query Editor に近い位置づけ。
- 1.DB 接続定義を一元管理し、資格情報は OCI Vault のシークレットで安全に扱う。
- 2.ブラウザの SQL ワークシートでクライアント導入なしに SQL を実行できる。
- 3.プライベートエンドポイントで VCN 内のプライベート DB にも到達できる。
解決する課題
- 開発・運用のたびに DB の接続情報(ホスト・ポート・資格情報・ウォレット)を各人が持ち回るのをやめたい
- DB へ接続するために 手元へ SQL クライアントやドライバを導入・管理する手間をなくしたい
- ウォレットやパスワードを コードや設定ファイルに直書きせず、安全に保管したい
- プライベートサブネットに置いた DB へ、踏み台を立てずに簡単に到達したい
- AWS の RDS Query Editor のように、コンソールから直接 SQL を試したい
主要概念と用語
- 接続(Connection): DB への接続定義を OCI 上のリソースとして保存したもの。接続先・ユーザー名・資格情報・ウォレットなどをまとめて管理する
- SQL ワークシート(SQL Worksheet): OCI コンソール上で動くブラウザ型の SQL エディタ。保存した接続を選んでクエリを実行できる
- プライベートエンドポイント(Private Endpoint): VCN 内のプライベートな DB へ到達するための接続点。Database Tools 側に作成し、接続から参照する
- シークレット(Secret): パスワードやウォレットを保管する OCI Vault(KMS)のリソース。接続はこのシークレットを参照して資格情報を取得する
- ウォレット(Wallet): Autonomous Database などへ mTLS 接続する際に必要な資格情報一式。シークレットとして保管できる
- コンパートメント(Compartment): 接続やプライベートエンドポイントを論理分離して管理する OCI の枠組み(IAM の単位)
- Work Request(作業リクエスト): 接続やプライベートエンドポイントの作成・更新を非同期ジョブとして実行する仕組み
仕様・制限・クォータ
- 接続定義は Oracle Database(Autonomous Database / Base Database / Exadata) を主対象とし、JDBC で到達できる外部 DB(MySQL など)も扱える
- 資格情報は接続に直書きせず、OCI Vault のシークレットを参照する形で保管する
- プライベートサブネットの DB へは プライベートエンドポイントを作成して到達する。パブリック到達のみで完結はしない
- SQL ワークシートはブラウザ動作のため、手元へのクライアント導入は不要。一方で大量データの一括処理など重い用途には向かない
- 1 テナンシ/コンパートメントあたりの接続数・プライベートエンドポイント数などに サービス上限(クォータ) があり、必要に応じて引き上げ申請ができる
- 具体的な上限値や対応バージョンは変動するため、要件確定時に公式ドキュメントで最新値を確認する
内部の仕組み
OCI Database Tools は、接続定義・資格情報・SQL 実行環境をマネージドに束ねるサービスです。利用者は DB ごとに「接続」を作成し、接続先情報とともに 資格情報を OCI Vault のシークレットとして紐づけます。実際の接続時にはサービスがシークレットから資格情報を取り出すため、パスワードやウォレットを利用者が直接持ち回る必要がありません。
DB がプライベートサブネットにある場合は、Database Tools に プライベートエンドポイントを作成し、接続からそれを参照します。これにより、踏み台サーバーや個別の VPN を用意しなくても、VCN 内のプライベートな DB へ到達できます。
SQL ワークシートは OCI コンソール内で動くブラウザ型のエディタで、保存した接続を選ぶだけで SQL を実行できます。クライアントやドライバを手元に導入する必要がなく、権限を持つ利用者であれば同じ接続定義を共有して使えます。
ちょっとした確認クエリやスキーマ調査、運用時のアドホックな SQL 実行に向きます。SQL Developer などの本格的なクライアントを各自に配るほどではないが、コンソールから安全に DB を触りたい、という運用のすき間を埋めるサービスです。
設計パターン / ベストプラクティス
- 資格情報はシークレットに集約: パスワードやウォレットは OCI Vault のシークレットに保管し、接続からは参照だけにする
- プライベート接続を基本にする: DB はプライベートサブネットに置き、プライベートエンドポイント経由で到達する
- 接続をコンパートメントで分離: 環境(開発/本番)や用途ごとにコンパートメントを分け、IAM で権限を最小化する
- 専用ユーザーで接続: 強権限の管理者ではなく、用途に応じた最小権限の DB ユーザーで接続定義を作る
- 共有して属人化を防ぐ: 接続定義を共有資産として整備し、各人が独自に接続情報を持つ状態をなくす
- 重い処理は別手段で: 大量データの移行や一括処理は Data Pump など専用手段に回し、ワークシートはアドホック用途に留める
運用・監視
- 接続やプライベートエンドポイントの作成・更新は Work Request(非同期ジョブ) として実行され、進捗と結果を追跡できる
- 接続の有効性は、コンソールやテスト機能で 接続テストを行って確認する
- 操作は OCI Audit に記録され、誰がいつ接続を作成・変更したかを後から追跡できる
- 資格情報を更新したら、対応する シークレットのバージョンを切り替えて接続へ反映する
- プライベートエンドポイントが参照するサブネットの セキュリティリスト / NSG を見直し、DB への経路を保つ
コスト
OCI Database Tools 自体は、接続定義や SQL ワークシートの利用そのものに大きな課金が乗るタイプのサービスではありません。コストの中心は、プライベートエンドポイントが利用するネットワーク資源や、資格情報を保管する OCI Vault のシークレットなど、周辺リソース側に現れます。具体的な単価は変動するため、ここでは考え方を整理します。
| コスト要素 | 増減の要因 | 最適化の方向性 |
|---|---|---|
| プライベートエンドポイント | 到達したい VCN/サブネットの数 | 必要な範囲に絞り過剰に作らない |
| OCI Vault シークレット | 保管する資格情報やウォレットの数 | 不要なシークレットを整理する |
| 接続・ワークシート | 定義数や利用頻度 | 用途に応じて必要な接続だけ維持する |
セキュリティ
- 資格情報は接続へ直書きせず、OCI Vault のシークレットとして暗号化保管し、接続からは参照だけにする
- DB は プライベートサブネットに置き、プライベートエンドポイント経由でのみ到達する構成を基本にする
- OCI IAM ポリシーで、接続やプライベートエンドポイントの作成・利用権限をコンパートメント単位に最小化する
- DB 側は 最小権限のユーザーで接続し、強権限の管理者アカウントを常用しない
- 操作は OCI Audit に残るため、接続の作成・変更・利用を後から監査できる
パスワードやウォレットを接続定義やコードに直書きするのは厳禁です。資格情報は必ず OCI Vault のシークレットに保管し、DB はプライベートエンドポイント経由で到達してください。強権限の管理者ユーザーを共有接続にそのまま使うのも避けます。
関連サービス・比較
DB へ SQL を投げる手段としては、デスクトップアプリの SQL Developer が代表的です。両者は競合ではなく、用途で使い分けます。
| 観点 | OCI Database Tools(SQL ワークシート) | Oracle SQL Developer |
|---|---|---|
| 形態 | ブラウザ型(コンソール内) | デスクトップアプリ |
| 導入 | 手元への導入不要 | 各自の端末にインストール |
| 資格情報 | OCI Vault のシークレットで管理 | 端末側で保持 |
| プライベート到達 | プライベートエンドポイントで対応 | VPN や踏み台などを別途用意 |
| 主用途 | アドホックな確認・運用クエリ | 本格的な開発・大規模操作 |
| 権限管理 | OCI IAM と統合 | DB ユーザー権限が中心 |
ハンズオン / CLI例
# DB への接続定義を作成(資格情報は OCI Vault のシークレットを参照)
oci database-tools connection create-connection-oracle-database \
--compartment-id "$COMPARTMENT_OCID" \
--display-name "adb-app-conn" \
--connection-string "tcps://adb.region.oraclecloud.com:1522/service" \
--user-name "APP_USER" \
--user-password-secret-id "$PASSWORD_SECRET_OCID"
# プライベート DB へ到達するためのプライベートエンドポイントを作成
oci database-tools private-endpoint create \
--compartment-id "$COMPARTMENT_OCID" \
--display-name "db-tools-pe" \
--subnet-id "$SUBNET_OCID"
# 作成した接続の一覧を確認
oci database-tools connection list \
--compartment-id "$COMPARTMENT_OCID" \
--output table
# 接続が到達可能かを検証する
oci database-tools connection validate \
--database-tools-connection-id "$CONNECTION_OCID"
OCI Service
OCI Database Toolsを実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
データベース
比較で見る軸
クラウド: OCI / カテゴリ: データベース / 難易度: basic
導入後に効く点
ブラウザの SQL ワークシートでクライアント導入なしに SQL を実行できる。
先に潰すリスク
サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。
- クラウド
- OCI
- カテゴリ
- データベース
- 難易度
- basic
- 関連資格
- —
- 設計柱
- operational / security
判断チェックリスト
- 自社の用途が「データベース / operational」に近いか確認する。
- 強みである「DB 接続定義を一元管理し、資格情報は OCI Vault のシークレットで安全に扱う。」が本当に評価軸になるか確認する。
- 注意点の「サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。