OCI「プライベートエンドポイントアクセスのみ」で作成したAutonomous Databaseにインターネット経由で接続する方法（全体の概要） 

## はじめに
こんにちは。NTTデータ先端技術の@EumJinmanです。
Oracle Cloud Infrastructure（OCI）「プライベートエンドポイントアクセスのみ」で作成したAutonomous Database（ADB）にインターネット経由で接続する以下３つの方法を紹介します。

方法その1：[コンピュートインスタンス経由でADBに接続](https://qiita.com/EumJinman/items/b35ffe06776d82cfe255)

方法その2：[ネットワークロードバランサー（NLB）経由でADBに接続](https://qiita.com/EumJinman/items/905bfab0551eac91c560)

方法その3：[Bastionサーバ経由でADBに接続](https://qiita.com/EumJinman/items/cf427aa588b8540ff9c3)

<b>本記事では、各接続方法を詳しく紹介する前に概要や、構成について説明</b>します。
各接続方法の詳細は、上記各リンクからご確認ください。

## 目次
1. プライベートエンドポイントとは
2. 「プライベートエンドポイントアクセスのみ」のADBとは
3. インターネット経由での接続が必要となるケース
4. 構成図
5. 各接続方法の概要及び、構成
6. まとめ

## 1. プライベートエンドポイントとは
プライベートエンドポイントとは、Virtual Cloud Network（VCN）内のリソースとOCIのサービス（例えば、Object Storage、Autonomous Databaseなど）との間でプライベートな接続を確立するための機能です。

プライベートエンドポイントを使用することでOCIのサービスに対しインターネットを経由せず、VCN内のプライベートIPアドレスを通じて接続ができます。これにより、OCIサービスのセキュリティが強化され、安全なサービスを提供することが可能になります。

プライベートエンドポイントの詳細は以下公式サイトをご確認ください。
https://www.oracle.com/jp/cloud/networking/private-endpoint/

## 2. 「プライベートエンドポイントアクセスのみ」のADBとは
ADBの作成時にアクセス・タイプを「プライベートエンドポイントアクセスのみ」に選択し作成したADBのことです。プライベートエンドポイントを使用することで対象のADBにプライベートIPアドレスが割り当てられ、インターネットからの接続を制限し、VCN内のプライベートIPアドレスを通じた接続を許可することになります。

![スクリーンショット (75).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2821879/a8a5a0d2-cee1-4a2a-85ba-d639b77b9e18.png)

## 3. インターネット経由での接続が必要となるケース
OCIのADBを「プライベートエンドポイントアクセスのみ」で作成した場合、VCN内からしかアクセスできず、インターネット経由の直接接続はできません。しかし、特定の要件でインターネットからADBに接続する必要がある場合もあります。

<b>インターネット経由での接続が必要となるケース</b>
・オンプレミス環境や外部ネットワークからADBに接続したい
・リモートワーク環境でOCIに直接VCN接続したい
・OCI外のアプリケーションからADBを利用したい

## 4. 構成図
![構成図全体.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2821879/46ad4e08-3312-4e7f-b8b2-c34d7f9c51d3.png)
クライアント環境（Teraterm、SQLDeveloper）からOCIサービス（インスタンス、Bastion、ネットワークロードバランサー）を経由し「プライベートエンドポイントアクセスのみ」で作成したADBに接続する３つ方法の全体構成は上記の通りです。

これから各接続方法について説明します。

## 5. 各接続方法の概要及び、構成
### 方法その1：コンピュートインスタンス経由でADBに接続
![構成図インスタンス.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2821879/eab896ed-80ea-4f84-9700-31366d0d62c0.png)
OCIのコンピュートインスタンス（仮想マシン）を踏み台として利用し、そのインスタンスからADBに接続する方法です。<b>シンプルな構成で設定は簡単ですが、コンピュートインスタンスの管理・運用や、インスタンスの使用料金が必要になります。</b>

接続方法の詳細は以下リンクをご確認ください。
方法その1：[コンピュートインスタンス経由でADBに接続](https://qiita.com/EumJinman/items/b35ffe06776d82cfe255)

### 方法その2：ネットワークロードバランサー（NLB）経由でADBに接続
![構成図ネットワークロード.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2821879/09b5c6c0-d6ac-46af-a25b-4db161ce24e7.png)
ネットワークロードバランサー（NLB）を利用し、プライベートエンドポイントのADBにトラフィックを転送する方法です。<b>NLBの設定が必要ですが、NLBを通じて接続を管理することで設定や、運用がシンプルになります。</b>
※NLB自体の使用料金は発生しない。

接続方法の詳細は以下リンクをご確認ください。
方法その2：[ネットワークロードバランサー（NLB）経由でADBに接続](https://qiita.com/EumJinman/items/905bfab0551eac91c560)

### 方法その3：Bastionサーバ経由でADBに接続
![構成図bastion.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2821879/8aae7d86-269c-4d10-98a2-ced0cceaee28.png)
OCIのBastionサーバを利用し、SSHトンネル経由でADBに接続する方法です。<b>SSHトンネル経由でセキュアな接続が可能ですが、接続のために都度セッションとSSHトンネルを作成する必要があります。（持続的な接続には向かない）</b>
※Bastion自体の使用料金は発生しない。

接続方法の詳細は以下リンクをご確認ください。
方法その3：[Bastionサーバ経由でADBに接続](https://qiita.com/EumJinman/items/cf427aa588b8540ff9c3)

## 6. まとめ
OCIのADB（プライベートエンドポイント）をインターネット経由で接続する３つの方法について概要や、構成を説明しました。各接続方法のまとめは以下の通りです。

|接続方法  |セキュリティ  |コスト  |運用負担  |メリット  |
|---|---|---|---|---|
|コンピュートインスタンス |中（インスタンスのセキュリティ設定に依存）  |インスタント利用料金  |中（SSHキーや、OS管理が必要）  |バッチ実行など接続以外の用途でも利用可能  |
|NLB（ネットワークロードバランサー）  |中（OCIのロードバランサーが管理）  |なし  |低い（ロードバランサーの設定が必要）  |設定や、運用がシンプル  |
|Bastion  |高い（SSHトンネル経由のセキュアな接続）  |なし  |高い（SSHキーや、セッションの管理が必要）  |クライアント環境からセキュア接続可能  |

OCIのADBにインターネット経由で接続する方法はいくつかありますが、環境や要件によって最適な方法が異なります。そのため、「どの方法が一番良いか」という明確な答えはなく、状況に応じて適切な選択をする必要があります。

※OCIサービス利用にかかるコスト詳細は以下公式のOCI価格リストからご確認ください。
https://www.oracle.com/jp/cloud/price-list/

### ※各接続方法の詳細については以下リンクからご紹介します。
方法その1：[コンピュートインスタンス経由でADBに接続](https://qiita.com/EumJinman/items/b35ffe06776d82cfe255)

方法その2：[ネットワークロードバランサー（NLB）経由でADBに接続](https://qiita.com/EumJinman/items/905bfab0551eac91c560)

方法その3：[Bastionサーバ経由でADBに接続](https://qiita.com/EumJinman/items/cf427aa588b8540ff9c3)