0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

OCIでプライベート・サブネットに存在するデータベースに、ネットワーク・ロード・バランサを使ってインターネットから接続してみた

Posted at

以前に「OCIでプライベート・サブネットに存在するデータベースに、ロード・バランサを使ってインターネットから接続してみた」という記事を書きましたが、同じことがネットワーク・ロード・バランサでもできるはずなので試してみました。

プライベート・サブネットに接続可能なデータベースが存在している前提で、以下に作成手順を記載していきます。

1.ロード・バランサの作成

まずは、ロード・バランサを作成します。
OCIコンソールの左上三本線メニューより「ネットワーキング>ロード・バランサ」を選択します。
image.png
[ロード・バランサの作成]ボタンを押し、作成ウィザードを起動します。

ロード・バランサ・タイプの選択画面では、「ネットワーク・ロード・バランサ」を選択し、[ロード・バランサの作成]ボタンを押します。
image.png
「詳細の追加」画面では、ロード・バランサ名、可視性タイプ、パブリックIPアドレスの割当てを設定します。
今回はインターネットからの接続に使用するため、可視性タイプを「パブリック」に設定する必要があります。
image.png
下にスクロールして、ロード・バランサの所属するネットワークを設定します。
image.png
[次]ボタンを押して、「リスナーの構成」画面に進みます。

任意のリスナー名を設定し、「リスナーで処理するトラフィックのタイプ」は「TCP」を選択します。
「イングレス・トラフィック・ポート」には、データベースへの接続ポートを設定します。
例えば、DBCSへの接続ポートであれば、デフォルトそのままの場合は「1521」を設定します。
(Autonomous Databaseであれば「1522(場合によっては「1521」)」、MySQL Databaseの場合は「3306」です)
image.png
[次]ボタンを押して、「バックエンドの選択」画面に進みます。

任意のバックエンド・サーバー名を設定します。
バックエンドの追加はここでは行わないでおきます。(あとで設定します)
「ソースIPの保持」チェックボックスはオフにしておきます。
image.png
下にスクロールして、ヘルスチェック・ポリシーを設定します。
プロトコルは「TCP」を選択し、ポートは前画面で設定したデータベースへの接続ポートを設定します。
image.png
[次]ボタンを押して、設定内容を確認し、問題なければ[ネットワーク・ロード・バランサの作成]ボタンを押します。
image.png
しばらくすると、ネットワーク・ロード・バランサが作成され、Active状態となります。
image.png
あとで利用するので、画面上の「IPアドレス(パブリック)」を控えておきます。

2.バックエンド・サーバーの追加

バックエンド・セットにデータベース・サーバーを追加します。

ロード・バランサ詳細画面の左下にあるリソース・メニューから「バックエンド・セット」を選択し、先ほど作成したバックエンド・セットを選択します。
image.png
バックエンド・セットの詳細画面の左下にあるリソース・メニューから「バックエンド」を選択し、「バックエンドの追加」ボタンを押します。

バックエンドの追加画面で、バックエンド・タイプとして「IPアドレス」を選択し、データベースのプライベートIPとポートを設定します。(ポートにはデータベースへの接続ポートを設定します)
image.png
[バックエンドの追加]ボタンを押すと、「作業リクエスト送信済」のダイアログが表示され、しばらく待つとステータスが「送信済み」から「成功」に変わります。

3.セキュリティ・ルールの追加

最後に、ロード・バランサへの接続を許可するよう、セキュリティ・リストにルールを追加します。

左上三本線メニューより「ネットワーキング>仮想クラウド・ネットワーク」を選択します。

仮想クラウド・ネットワーク(以下、VCN)が一覧表示されるので、ロード・バランサを作成したVCNを選択します。

VCNの詳細画面が表示され、画面下部にサブネットの一覧が表示されます。
一覧より、ロード・バランサを作成したパブリック・サブネットを選択します。

サブネットの詳細画面が表示され、画面下部にセキュリティ・リストの一覧が表示されます。
一覧より、データベース接続ポートの設定を行うセキュリティ・リストを選択します。(デフォルトでは「Default Security List for VCN名」になっています)

ようやく、設定画面にたどり着きました....
新しいルールを追加するため、[イングレス・ルールの追加]ボタンを押します。
イングレス・ルールの追加画面で、接続元のCIDRと接続ポートを指定して、[イングレス・ルールの追加]ボタンを押します。
image.png
今回は検証のため、接続元のCIDRを「0.0.0.0/0」としていますが、本来は実環境に合わせて、接続元のCIDRに絞って設定することをおすすめします。

4.接続テスト

手順1.ロード・バランサの作成の最後に控えておいた、ロード・バランサのIPアドレス(パブリック)を使って、インターネットからデータベースに接続してみます。

Oracle Databaseであれば、tnsnames.oraのHOSTをロード・バランサのIPアドレスに置き換えます。

SQL*Plusで接続してみると、インターネットからプライベート・サブネットのデータベースに接続できることが確認できます。

C:\OracleClient>sqlplus orauser/xxxxxxxx@privatedb

SQL*Plus: Release 18.0.0.0.0 - Production on 火 2月 1 21:21:47 2022
Version 18.5.0.0.0

Copyright (c) 1982, 2018, Oracle.  All rights reserved.

Oracle Database 19c Standard Edition 2 Release 19.0.0.0.0 - Production
Version 19.5.0.0.0
に接続されました。

SQL>

注意点

ネットワーク・ロード・バランサには、TCPフローの場合は6分の Connections Idle Timeout が設定されています。(マニュアルの記載はこちらになります。)

6分間操作がないと、ORA-03113となりますので、注意が必要です。
また、回避方法として、こちらの記事もご参照ください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?