Autonomous AI Databaseをプライベートエンドポイントで閉域にする:DBの選び方から接続まで
※当ページにはAmazonアソシエイト等の広告リンクを含みます。
公式ドキュメントで検証最終検証 2026-11-01編集部出典 13件
当ページの解説・制限値・構成図は、一般公開されている Oracle Cloud Infrastructure (OCI) 公式ドキュメント、Oracle Cloud Price List、および Oracle University 公開試験ガイドを一次根拠として検証し、独自のSVG視覚図解として作成しています。
- Configure Network Access with Private Endpoints
- Always Free Autonomous AI Database
- About Connecting to an Autonomous AI Database Instance
- Update Network Options to Allow TLS or Require Only Mutual TLS (mTLS) Authentication on Autonomous AI Database
- Download Database Connection Information
- JDBC Thin Connections Without a Wallet (TLS)
- Database Service Names for Autonomous AI Database
- Compute Models in Autonomous AI Database
- Provision an Autonomous AI Database Instance
- What is Oracle Autonomous AI Database?
- Security Guide for Base Database Service
- About Oracle Data Guard
- Network Security Groups
DBサービスを選ぶ
OCIでOracle Databaseを使うとき、小さな構成で候補になるのは Autonomous AI Database と Base Database Service です。違いは、誰がどこまで管理するかにあります。
表1:Autonomous AI Database と Base Database の比較(2026-11-01確認)
| 観点 | Autonomous AI Database | Base Database Service |
|---|---|---|
| 形 | サーバーを意識しないサービス | VM上のDBシステム。1ノードか、2ノードのRAC |
| パッチ | サービス側が行う | DBやOSへの適用は利用者の責任 |
| バックアップ | サービス側が行う | 自動バックアップを設定できる。データの保全は利用者の責任 |
| 最小構成 | Transaction Processing は 2 ECPU、ストレージ 20 GB | 選ぶVMシェイプとエディションによる |
| 閉域の作り方 | プライベートエンドポイントを付ける | DBシステムをサブネットに置き、セキュリティ・ルールで絞る |
| 接続ポート | 1521(TLS)、1522(TLS、mTLS) | SQL*Net は 1521 |
今回は Autonomous AI Database を選び、ワークロードは Transaction Processing にします。経費申請は短い処理が中心だからです。ECPUの自動スケーリングは作成時に既定で有効です。有効のままだと基本のECPU数の3倍まで使う場合があり、その分も課金されます。金額を固定したいなら、作成画面で外します。料金は構成で変わるので、公式の価格表で確かめてください。
公開と閉域の違い
Autonomous AI Databaseのネットワークは、作成時の Choose network access で3つから選びます。
表2:Choose network access の選択肢
- 公開で許可:インターネットを通ってDBへ届きます。ACLに載せた接続元だけが入れます。
- 公開で拒否:ACLにない接続元は拒否されます。ACLを付けない設定では、どのIPからでも接続を試せます。
- 閉域:指定したVCNのネットワークからの通信を受けます。通信はインターネットを通りません。
Always Free では閉域にできない
公式は「Always Free Autonomous AI Databases cannot be provisioned as a private endpoint」と書いています。VCNの中にも置けません。Autonomous AI Database for Developers も、プライベートエンドポイントでは作成できません。
Always Free には、ほかにも本番向きではない条件があります。7日間使わないと自動で停止し、停止が累計90日続くと削除される場合があります。ストレージは20 GBで、スケールできません。作成できるのはホームリージョンだけです(2026-11-01確認。最新は公式で確認してください)。
プライベートエンドポイントを付ける
用意するものは、DBと同じリージョンのVCN、既定のDHCPオプションを使うサブネット、NSGです。今回は private-db(10.0.2.0/24)を使い、VCNは network コンパートメント、DBは app コンパートメントに置きます。
作業するグループには、次の権限が最低限必要です。DBを作成する権限は別に要ります。
allow group adb-admins to use vcns in compartment network
allow group adb-admins to use subnets in compartment network
allow group adb-admins to use network-security-groups in compartment network
allow group adb-admins to manage private-ips in compartment network
allow group adb-admins to manage vnics in compartment network
allow group adb-admins to manage vnics in compartment app
作成の手順は次のとおりです。
- Autonomous AI Database の作成画面で、Workload type に Transaction Processing を選ぶ。
- Always Free と Developer を選ばない。
- Choose network access で Private endpoint access only を選ぶ。
- Virtual cloud network と Subnet に、VCNと
private-dbを指定する。 - Show advanced options を開き、Network security groups (NSGs) に
nsg-dbを指定する。 - Allow public access は有効にしない。
- 費用を固定したいなら、
Compute auto scalingのチェックを外す。 - 作成後、詳細の Mutual TLS (mTLS) authentication が Not Required であることを確かめる。Required なら Edit で Require mutual TLS (mTLS) authentication を外す。
表3:設定するときに気を付ける点
| 項目 | 内容 |
|---|---|
| Private IP address | サブネットのCIDR内で指定できる。空欄なら自動で割り当てる。作成後は変更できない |
| Hostname prefix | 接続先のホスト名の先頭を指定できる |
| NSG | DB 1つに5つまで。作成後も、停止なしで変更できる |
| Allow public access | 閉域に加えて公開の入口を増やす。ECPUモデルだけで使える。今回は使わない |
アプリから接続する
接続方式は mTLS と TLS の2つです。どちらも TCPS で通信を暗号化します。違いは、証明書を確かめる範囲と、ウォレットの有無です。
表4:mTLS と TLS の比較
| 観点 | mTLS | TLS |
|---|---|---|
| 認証 | クライアントとサーバーが証明書で確かめ合う | クライアントがサーバーの証明書を確かめる |
| ポート | 1522 | 1521 または 1522 |
| ウォレット | 必要 | 対応クライアントなら不要 |
| 有効にする条件 | 既定で使える | ACLかプライベートエンドポイントが必要 |
| 運用 | ウォレットの配布と定期的な更新が要る | ウォレットの更新はない |
- パスワード:コードに書かず、Vaultのシークレットから受け取ります。手順はロードマップの次の項目です。
- TLS:サーバーの証明書をクライアントが確かめます。ポートは1521か1522です。
- mTLS:双方が証明書で確かめ合います。ポートは1522で、ウォレットが必要です。
- 省略:Vaultへの経路は図から省いています。2と3は、どちらか一方を選ぶ接続方式です。
TLS で接続する
コンソールの Database connection を開き、Access で Private endpoint を選び、TLS Authentication で TLS を選ぶと接続文字列が出ます。JDBC Thin なら次の形です。service_name の末尾は、用途に合うものを選びます。短い処理が中心のアプリなら tp です。
jdbc:oracle:thin:@(description=(retry_count=20)(retry_delay=3)
(address=(protocol=tcps)(port=1521)(host=<プライベートのホスト名>))
(connect_data=(service_name=<データベース名>_tp.adb.oraclecloud.com))
(security=(ssl_server_dn_match=yes)))
mTLS とウォレット
mTLS を選ぶ場合は、Database connection からウォレットをダウンロードします。ウォレットのファイルとDBのユーザーIDとパスワードがそろうと、データに届きます。扱いには次の点を守ります。
- 種類は、1つのDBに対応する Instance wallet を選ぶ。Regional wallet は管理作業用です。
- ファイルの権限は
600にする。 - メールなどで送るときは、パスワードを別の安全な経路で渡す。
- README で有効期限を見て、切れる前に取り直す。
NSGのルールを書く
DBへの接続を許す設定は、DB側とアプリ側の両方に書きます。NSGのルールでは、CIDRの代わりに別のNSGを相手に指定できます。同じVCNの中なら、サブネットのCIDRより狭く、役割で指定できます。
表5:TLSで接続する場合のNSGルール
mTLS にする場合は、両方のポートを 1522 に変えます。ステートフルなルールなので、戻りの通信のルールは要りません。APEX、Database Actions、ORDS を使うときは 443 も必要ですが、使わないなら開けません。NSGを使う場合も、サブネットのセキュリティ・リストは一緒に適用されます。どちらかで許可された通信は通るので、既定のリストが全送信を許可していると、NSGの送信ルールだけでは絞れません。
アプリ用ユーザーを作り、接続を確かめる
アプリは ADMIN で接続しません。ADMIN でアプリ用のユーザーを作り、必要な権限だけを渡します。パスワードは12〜30文字で、大文字、小文字、数字を各1文字以上含めます。
CREATE USER expense_app IDENTIFIED BY "<password>";
GRANT CREATE SESSION TO expense_app;
つながらないときは、Compute から名前解決とポートを順に確かめます。<PE_Hostname> はDBの詳細で確認します。
nslookup <PE_Hostname>
curl -v telnet://<PE_Hostname>:1521
次に読むページ
ロードマップの次の項目は「パスワードをVaultに置く」です。全体の順番は学習ロードマップで確認できます。DBまでの準備が済んだら、次の段階のLB、HTTPS、WAFの記事へ進みましょう。
よくある質問(FAQ)
- Always Free の Autonomous AI Database をプライベートエンドポイントにできますか?
- できません。公式は、Always Free の Autonomous AI Database はプライベートエンドポイントとして作成できず、VCN の中にも置けないとしています。開発・検証向けの Autonomous AI Database for Developers も同様です。閉域にするなら有料のインスタンスを使います(2026-11-01確認。最新は公式で確認してください)。
- プライベートエンドポイントにしたら、ウォレットは不要になりますか?
- 接続方式によります。TLS で接続するならウォレットは不要です。mTLS で接続するならウォレットが必要です。プライベートエンドポイントを設定すると TLS の前提条件を満たせるので、対応したクライアントならウォレットなしで接続できます。
- 手元のPCから閉域のDBに直接つなげますか?
- そのままではつなげません。受けるのは指定した VCN と、そこへピアリングした VCN、FastConnect などで接続したオンプレミスからの通信で、インターネットからは届きません。Allow public access を有効にすると公開側の入口も増えますが、閉域にする目的と相反します。今回の構成では、Bastion のポート転送か、Bastion 経由で入った Compute から接続します。