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?

Oracle Integration Gen3 で Postgres Adapterを使ってOCI Managed PostgreSQLへ接続する

Last updated at Posted at 2024-05-13

はじめに

Oracle integration Cloud(OIC)がアップグレードされたOIC3でPotgres Adapterが追加されていたので、OCIのManaged Postgresに接続できるか試してみたいと思います。この記事ではAdapterを使ってOICに接続の定義をしてテストで疎通確認をするところまでの手順をまとめます。

事前準備

  • Oracle Database with PostgreSQLをプロビジョニングし、さらにアクセスした後DBを作成していること。私はこちらを参考にさせていただきました。

  • Oracle jdk17のインストーラをダウンロードしていること。ダウンロードはこちらからできます。

  • OICのエージェント・グループを作成していること。手順はこちら

Connectivity Agent用インスタンスの作成

OICのAdapterを使ってOCI Managed Postgresに接続するにはオンプレ接続用のConnectivity Agentを接続先のインスタンスへインストールする必要があります。が、Managed Postgresのインスタンスには直接アクセスできないので同じサブネット上にインスタンスを作成してそこにAgentをインストールします。

インスタンスの作成手順は省略。

イメージ
image.png

Connectivity Agentと構成ファイルの取得

まずはConnectivity Agentのzipファイルと接続のために必要な構成ファイルを取得します。
OICのコンソール画面から「設計」-「エージェント」に遷移し、右上の「ダウンロード」→「接続性エージェント」をクリックし、任意の場所にzipファイルをダウンロードします。

image.png

次に任意のエージェント・グループのメニューから「構成のダウンロード」をクリックしてInstallerProfile.cfgというファイルを任意の場所にダウンロードします。

image.png

Connectivity Agentのインストール

インスタンスにAgentをインストールします。今回は楽なのでCloud Shellを使います。

OCIのコンソールからCloud Shellを起動し、ネットワークをprivate subnetに切り替えます。

image.png

jdk17のインストーラ、Connectivity AgentのzipファイルをCloud Shell上にアップロードします。

image.png

次にjdk17のインストーラ、Connectivity Agentのzipファイルをこちらで作成したインスタンスへ送信します。以下のコマンドで渡します。(※privatekeyはインスタンスを作成した際のものを事前にCloud Shellへ配置してください)

scp -i .ssh/privatekey jdk-17.0.10_linux-x64_bin.tar.gz opc@{プライベートip}:/home/opc
scp -i .ssh/privatekey oic_conn_agent_installer.zip opc@{プライベートip}:/home/opc

次にsshコマンドを使ってインスタンスへアクセスします。

ssh -i .ssh/privatekey opc@{プライベートip}

アクセスできたら、以下のコマンドを使ってjdkをインストールします。

sudo su
tar -xvf jdk-17.0.10_linux-x64_bin.tar.gz
mv jdk-17.0.10 /opt/
export JAVA_HOME=/opt/jdk-17.0.10
export PATH=$PATH:$JAVA_HOME/bin
java --version

次にConnectivity Agentのzipファイルを解凍します。

unzip oic_conn_agent_installer.zip

回答したら中にInstallerProfile.cfgというファイルがあるので中身をこちらでダウンロードした構成ファイルで置き替えます。参考までに中身は以下のようになってます。

# Required Parameters
# oic_URL format should be https://<runtimehostname>
oic_URL=https://XXXXXXXXXXXXXXXXXXXXXXX.integration.us-phoenix-1.ocp.oraclecloud.com
agent_GROUP_IDENTIFIER=YOINAKAG2
oic_IDCS_URL=https://idcs-XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.identity.oraclecloud.com
oic_SCOPE=https://XXXXXXXXXXXXXXXXXXXXX.integration.us-phoenix-1.ocp.oraclecloud.com:443urn:opc:resource:consumer::all
oic_CLIENT_ID=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
oic_CLIENT_SECRET=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
# Proxy Parameters
proxy_HOST=
proxy_PORT=
proxy_USER=
proxy_PASSWORD=
proxy_NON_PROXY_HOSTS=

ここまで出来たら以下のコマンドを実行してConnectivity Agentを起動します。

java -jar connectivityagent.jar

正常に起動されると以下のようなメッセージが表示されます。

[root@instance-20240510-1418-oic-agent-test opc]# java -jar connectivityagent.jar 
Existing Agent installation found... Starting Agent for message processing.
Checking for already running instances of this agent. This might take up to 15 seconds ... 
Initializing the credential store ...
Agent started successfully...Now available for new messages...

OICの接続を定義

次にOICでPostgres Adapterを使って接続を定義します。
コンソールから「設計」-「接続」に遷移し、右上の「作成」をクリック→PostgreSQLを検索し、クリックします。

image.png

任意の名前を入力し、「作成」します。

image.png

詳細の画面に遷移するので、以下のように必要な項目を入力します。

入力項目
Host PostgresのEndpoint(OCI上のPostgresの詳細画面から確認可能)
Port 5432
Database Name Postgresで事前に作成したDatabase Name
セキュリティ・ポリシー Username Password Token With SSL Support
Choose Instance Type OCI Managed DB
Usename 事前に作成したユーザー名
Password 事前に作成したPassword
オプションのセキュリティ Root Certificate 事前に作成したPostgres インスタンスの証明書(OCI上のPostgresの詳細画面からダウンロード可能)
アクセス・タイプ 接続性エージェントにチェック
エージェント・グループの関連付け Connectivity Agentを起動したエージェント・グループ

参考(OCI上のPostgresの詳細画面)

image.png

入力したら「テスト」をクリックします。

image.png

成功したら以下のメッセージが表示されます。

image.png

これで接続の定義ができました。

次回はOICからどのような操作が可能か試してみたいと思います。

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?