はじめに
これは、Oracleが提供しているterraformによるスクリプトでOCI上のComputeのインスタンスにORDSをstandaloneもしくはtomcat上にデプロイする構成を作成し、APEXを既存のDBサーバ上にインストールする手順です。いくつかの設定を行うことでAPEXの環境を構築することができます。

 
このブログでは

  • Computeのインスタンス上にORDSをstandaloneでデプロイします。
  • APEXのWEBアクセスはpublic IPアドレスでアクセスします。DNSの設定は行いません。
  • Publicのサブネットで構成します。

 

以下の手順書を元に作成しています。
https://cloud.oracle.com/iaas/whitepapers/oracle_apex_on_oci_database.pdf

前提
1.ユーザ、コンパートメントが作成済みであること。

terraformを実行する際にそれぞれのOCIDが必要になるのでコピーしておきます。

2.terraformを実行するlinuxのインスタンスが作成済みであること。
3.データベースインスタンスが作成済みであること。

OCIの使い方(データベース編)

4.オブジェクトストレージのバケットが作成済みであること。

 

手順では以下のバージョンを使用してインストールしています。
terraform 0.11.11
Oracle Database 18.6.0.0.0
ords 19.2.0.199.1647
APEX 19.1

 

1.ネットワークの設定
VNC、パブリックサブネット、インターネットゲートウェイ、セキュリティリストを作成します。
インストールのため、セキュリティリストにインスタンスを作成するリージョンのIPアドレスレンジのポート22と1521をイングレスルールに追加します。
ここでは東京リージョンを使用しているので、東京リージョンのIPアドレスレンジを3つ追加します。
各リージョンのIPアドレスレンジはここで確認できます。
No. 1 2 3 4 5 6
ソースタイプ CIDR
ソースCIDR 132.145.112.0/20 140.238.32.0/20 140.238.48.0/20
IPプロトコル TCP
ソースポート範囲 すべて
宛先ポート範囲 22 1521 22 1521 22 1521

APEXをインストールするため、0.0.0.0/0のエグレスルールを追加します。

ソースタイプ CIDR
ソースCIDR 0.0.0.0/0
IPプロトコル TCP
ソースポート範囲 すべて
宛先ポート範囲 すべて

 

2.Terraformのインストール

terraform実行インスタンスにログインし、Terraformのバージョン管理をするためtfenvをインストールします。
※コマンドの実行はすべて「opc」ユーザで行っています。

gitがインストールされていない場合は、先にyumでgitをインストールします。

terraformをインストールします。
最新は0.12.Xですが、手順書で使われているterraformのファイルが0.11.Xの仕様に基づいて作成されているため、今回は0.11系をインストールします。

 

3.Webサーバ用の鍵の作成
Webサーバ用の鍵を作成します。作成した鍵のフルパスを「6.環境変数の設定」で指定します。
6.環境変数の設定
Enter path to your SSH public key []: /home/opc/.ssh/id_rsa.pub
Enter path to your SSH private key []: /home/opc/.ssh/id_rsa
 

4.APIキーの作成と登録
資格証明を格納する.ociディレクトリを作成します。
opensslコマンドで秘密鍵を生成しパーミッションを変更します。次に、秘密鍵から公開鍵を生成します。

公開鍵を表示しコピーします。


アイデンティティ-> ユーザ -> ユーザ名をクリックし、「公開キーの追加」ボタンを押して公開キーを作成します。

秘密鍵のフルパスを「6.環境変数の設定」で指定します。
公開鍵を追加するとフィンガープリントが表示されるので、コピーしておきます。

6.環境変数の設定
Enter your fingerprint []: 公開鍵を追加すると表示されるフィンガープリントを指定します
Enter path to your API private key []: /home/opc/.oci/oci_api_key.pem
 

5.オブジェクトストレージへのアップロード
Oracle REST Data ServicesとOracle APEXの最新バージョンをダウンロードし、Object Storage bucketにアップロードします。

Oracle REST Data Services
Oracle APEX
ダウンロードしたords-19.2.0.199.1647.zipは解凍し、ords.warを取り出します。
「コンピュータからファイルを選択」のところに、ダウンロードした「ords.war」と「apex_19.1.zip」ファイルをドロップします。

作成したオブジェクトの「アクション」アイコン(3ドット)から、「事前認証リクエストの作成」を実行します。

名前と有効期限を設定し、「事前認証リクエストの作成」ボタンをクリックします。

事前認証リクエストのURLは「6.環境変数の設定」で使用するので、どこかにコピーしておきます。
※ウィンドウを閉じてしまうと、再度表示することはできません。

6.環境変数の設定
Enter the URL for ORDS.war file []: ords.warの事前認証リクエストのURL
Enter the URL for APEX zip file []: apex_19.1.zipの事前認証リクエストのURL

 

6.環境変数の設定
terraform scriptからterraformのtemplateと環境設定のscriptをダウンロードします。
ORDS-APEX_Comp.zipを解凍し、中に入っているsetup.shを実行します。対話式になっているので、入力を求められている値をいれていきます。


env-varsファイルが作成されます。

 

7.Terraformの実行

 
terraform init
ワークスペースの初期化を行います。provider ociのダウンロードなどが行われます。

 
terraform plan
設定ファイルのチェックを行います。

 
terraform apply
リソースを作成します。

 

8.APEXにログイン
セキュリティリストからインストール用に入れた設定を削除します。
次に、APEXにログインするためイングレスルールに自分の環境のグローバルIPアドレスとポート8888を追加します。
グローバルIPアドレスは確認くんなどで調べることができます。

 
terraform applyを実行後に表示されるURLにアクセスします。
https://<IPアドレス>:8888/ords/pdb01/

Workspace
「internal」を入れます。
Username
「admin」を入れます。
Password
DBのパスワードを入れます。


パスワード変更画面に遷移します。
パスワードを変更すると、APEXにログインすることができます。

 

9.再実行する場合

ordsが動いているWEBサーバをターミネイトします。

次に、DBサーバにインストールしたAPEXを削除するため、apex.zipをダウンロードし解凍します。

 
セッションが残っているとAPEX関連のスキーマが削除されないので、PDBを再起動します。

 
APEXを削除します。

 
既存のORDS-APEX_Compのディレクトリを削除するかリネームし、ORDS-APEX_Comp.zipを解凍してsetupをやり直します。