はじめに
プライベート・エンドポイントで構成されているOracle Analytics Cloudインスタンスにインターネット側からアクセスしたいというご要望があったので、ロード・バランサを使用して実現する方法を検証してみました。
1. ネットワークの構成
・VCNの作成
名前:ADB-OAC-VCN
IPv4 CIDR blocks:10.0.0.0/16
VCN「ADB-OAC-VCN」が作成されました。
・インターネット・ゲートウェイの作成
VCNの詳細画面の左側にあるリソース欄の「インターネット・ゲートウェイ」をクリックします。
「インターネット・ゲートウェイの作成」をクリックします。
名前に「InternetGateway1」と入力し、「インターネット・ゲートウェイの作成」をクリックします。
インターネット・ゲートウェイ「InternetGateway1」が作成されました。
・ルート表の作成
VCNの詳細画面の左側にあるリソース欄の「ルート表」をクリックします。
まず始めにロード・バランサを配置するサブネットに適用するルート表「RT_Public_Subnet_LB_OAC」を作成します。
「ルート表の作成」をクリックします。
名前:RT_Public_Subnet_LB_OAC
ルート・ルール:
ターゲット・タイプ:インターネット・ゲートウェイ
宛先CIDRブロック:0.0.0.0/0
ターゲット・インターネット・ゲートウェイ:InternetGateway1
入力が完了したら、「作成」をクリックします。
ルート表「RT_Public_Subnet_LB_OAC」が作成されました。
次にOracle Analytics Cloudを配置するサブネットに適用するルート表「RT_Public_Subnet_OAC」を作成します。
「ルート表の作成」をクリックします。
ここでは名前のみ入力して、「作成」をクリックします。
名前:RT_Private_Subnet_OAC
ルート・ルール:なし
ルート表「RT_Public_Subnet_OAC」が作成されました。
・セキュリティ・リストの作成
VCNの詳細画面の左側にあるリソース欄の「セキュリティ・リスト」をクリックします。
まず始めにロード・バランサを配置するサブネットに適用するセキュリティ・リスト「SL_Public_Subnet_LB_OAC」を作成します。
「セキュリティ・リストの作成」をクリックします。
名前:SL_Public_Subnet_LB_OAC
イングレス・ルール:
ステートレス:チェックをオフ
ソース・タイプ:CIDR
ソースCIDR:0.0.0.0/0
IPプロトコル:TCP
ソース・ポート範囲:空白のまま
宛先ポート範囲:443
エグレス・ルール:
ステートレス:チェックをオフ
宛先タイプ:CIDR
宛先CIDR:0.0.0.0/0
IPプロトコル:すべてのプロトコル
入力が完了したら、「セキュリティ・リストの作成」をクリックします。
セキュリティ・リスト「SL_Public_Subnet_LB_OAC」が作成されました。
次にOracle Analytics Cloudを配置するサブネットに適用するセキュリティ・リスト「SL_Private_Subnet_OAC」を作成します。
「セキュリティ・リストの作成」をクリックします。
名前:SL_Private_Subnet_OAC
イングレス・ルール:
ステートレス:チェックをオフ
ソース・タイプ:CIDR
ソースCIDR:10.0.20.0/24
IPプロトコル:TCP
ソース・ポート範囲:空白のまま
宛先ポート範囲:443
エグレス・ルール:
ステートレス:チェックをオフ
宛先タイプ:CIDR
宛先CIDR:0.0.0.0/0
IPプロトコル:すべてのプロトコル
入力が完了したら、「セキュリティ・リストの作成」をクリックします。
セキュリティ・リスト「SL_Public_Subnet_OAC」が作成されました。
・サブネットの作成
VCNの詳細画面の左側にあるリソース欄の「サブネット」をクリックします。
まず始めにロード・バランサを配置するサブネット「Public_Subnet_LB_OAC」を作成します。
「サブネットの作成」をクリックします。
名前:Public_Subnet_LB_OAC
サブネット・タイプ:リージョナル
IPv4 CIDR Block:10.0.20.0/24
ルート表:RT_Public_Subnet_LB_OAC
サブネット・アクセス:パブリック・サブネット
このSUBNETでDNSホスト名を使用:チェックをオン
DHCPオプション:Default DHCP Options for ADB-OAC-VCN
セキュリティ・リスト:RT_Public_Subnet_LB_OAC
入力が完了したら、「サブネットの作成」をクリックします。
サブネット「Public_Subnet_LB_OAC」が作成されました。
次にOracle Analytics Cloudを配置するサブネット「Public_Subnet_OAC」を作成します。
「サブネットの作成」をクリックします。
名前:Private_Subnet_OAC
サブネット・タイプ:リージョナル
IPv4 CIDR Block:10.0.2.0/24
ルート表:RT_Private_Subnet_OAC
サブネット・アクセス:プライベート・サブネット
このSUBNETでDNSホスト名を使用:チェックをオン
DHCPオプション:Default DHCP Options for ADB-OAC-VCN
セキュリティ・リスト:RT_Private_Subnet_OAC
入力が完了したら、「サブネットの作成」をクリックします。
サブネット「Public_Subnet_OAC」が作成されました。
以上で、ネットワークの準備が整いました。
2. Oracle Analytics Cloudインスタンスの作成
コンソールメニューから「アナリティクス・クラウド」に移動します。
「インスタンスの作成」をクリックします。
名前:任意(ここではmyOAC)
お好みの容量タイプ、OCPU数、ユーザ数を入力します。
お好みのライセンス・タイプとエディションを選択します。
ここではEnterprise Editionを選択しました。
「拡張オプションの表示」をクリックします。
ネットワーク・アクセス
アクセス・タイプ:プライベート
仮想クラウド・ネットワーク:ADB-OAC-VCN
サブネット:Private_Subnet_OAC
入力が完了したら、「作成」をクリックします。
Analytics Cloudインスタンスのプロビジョニングが始まります。
少し待つと、Analytics Cloudインスタンスがアクティブになりました。
「追加詳細」タブをクリックすると、ネットワークの情報等が確認できます。
インスタンスのプライベートIPアドレスとホスト名をコピーしてメモしておきます。
3. パブリックIPアドレスの予約
ロード・バランサにアタッチするためのパブリックIPアドレスを予約します。
これは必須ではありませんが、ロード・バランサに予約済みパブリックIPをアタッチして使用することで、ロード・バランサを一度削除して再作成した場合でも、同じパブリックIPアドレスを使用してアクセスすることが可能になります。
コンソールメニューから「予約済パブリックIP」に移動します。
「パブリックIPアドレスの予約」をクリックします。
予約済みパブリックIPアドレス名:PublicIP-LB-OAC
IPアドレスのソース:Oracle
予約済みパブリックIP「PublicIP-LB-OAC」が作成されました。
4. ロード・バランサの作成
コンソールメニューから「ロード・バランサ」に移動します。
「ロードバランサの作成」をクリックします。
「ロード・バランサの作成」をクリックします。
ロード・バランサ名:LB_for_OAC
可視性タイプ:パブリック
パブリックIPアドレスの割当て:予約済IPアドレス
既存の予約済みIPアドレスの選択:チェックをオン
予約済IPアドレス:PublicIP-LB-OAC
お好みの帯域幅を入力します。
仮想クラウド・ネットワーク:ADB-OAC-VCN
サブネット:Public_Subnet_LB_OAC
入力が完了したら、「次」をクリックします。
ロード・バランシング・ポリシーの指定:重み付けラウンド・ロビン
ここではバックエンドは追加しません。(IPアドレス指定によるバックエンドの追加ができないため)
ヘルス・チェック・ポリシー
プロトコル:TCP
ポート:443
その他の項目はデフォルトのまま
「拡張オプションの表示」をクリックします。
「バックエンド・セット名」タブ
バックエンド・セット名:BS_LB_for_OAC
「セキュリティ・リスト」タブ
「ロード・バランサの作成後にセキュリティ・リスト・ルールを手動で構成します」を選択
「次」をクリックします。
リスナー名:listener_LB_for_OAC
トラフィックのタイプ:TCP
モニターするポート:443
入力が完了したら、「次」をクリックします。
必要に応じて、ロギングの設定を行います。
入力が完了したら、「送信」をクリックして、ロード・バランサを作成します。
ロード・バランサ「LB_for_OAC」のプロビジョニングが始まります。
少し待つと、ロード・バランサ「LB_for_OAC」がアクティブになります。
バックエンドを登録していないため、警告が出ていますが問題ありません。
ロード・バランサのの詳細画面の左側にあるリソース欄の「バックエンド・セット」をクリックします。
バックエンドセット名「BS_LB_for_OAC」をクリックします。
「バックエンドの追加」をクリックします。
IPアドレス:Analytics Cloudの詳細画面で確認したプライベート・エンドポイントのIPアドレス
ポート:443
重み:1
入力が完了したら、「追加」をクリックします。
「閉じる」をクリックします。
バックエンドにAutonomous Databaseが追加され、少し待つとバックエンドのヘルスが「OK」になります。
バックエンド・セットの全体的なヘルスも「OK」になりました。
画面上部の「ロード・バランサ詳細」のリンクをクリックして、ロード・バランサの詳細画面に移動します。
ロード・バランサの全体的なヘルスも「OK」になっていることが確認できました。
5.動作確認
ブラウザのアドレス欄に以下のURLを入力して、Analytics Cloudインスタンスにアクセスしてみます。
https://LB_for_OACのIPアドレス/ui/
おっと、セキュリティリスクありと警告が表示されました。
詳細情報を確認すると、IPアドレスで接続しているために、サーバの証明書内の情報とホスト名が一致しないために警告が表示されているようです。
ここで「危険性を承知で続行」をクリックしてもDatabase Actionsにアクセスできますが、今回はクライアントのhostsファイルにエントリーを追加して対処します。
私はクライアントとしてMacを使用しているため、/etc/hostsに以下のような行を追加します。
ロードバランサのパブリックIP Analyticd Cloudインスタンスのホスト名
今回の例では、以下のようになります。
12x.xxx.xxx.x81 myoac-orasejapan-to.analytics.ocp.oraclecloud.com
では、hostsに追加したホスト名を使用して、Analytics Cloudインスタンスにアクセスしてみます。
Oracle Identity Cloud Serviceのサインイン画面が表示されました。
Oracle Identity Cloud Serviceのユーザでサインインすると、Analytics Cloudインスタンスにアクセスできました。
まとめ
ロード・バランサを使用して、プライベート・エンドポイントで構成されているOracle Analytics Cloudインスタンスにアクセスすることができました。
めでたし、めでたし。