2022年11月22日火曜日

Oracle APEXの環境作成(8) - OCIコンピュート・インスタンスの作成

更新: 2026年1月27日

今まで作成してきた仮想マシンを、Oracle Cloud Infrastructureのコンピュート・インスタンスとして動作させます。Oracle Cloudにアカウントがあり、仮想クラウド・ネットワークが構成されていることを前提としています。

今までは無料の範囲で作業ができましたが、カスタム・イメージの作成には費用がかかります。アカウントもアップグレードされている必要があります。

仮想マシンが停止している状態から作業を始めます。


仮想マシンのエクスポート



仮想マシンを停止します。

VirtualBoxマネージャーのファイル・メニューより、仮想アプライアンスのエクスポートを実行します。


エクスポートする仮想マシンを選択します。今回の作業で作成しているのはOracleAPEXです。


フォーマットの設定を開きます。

ここで指定するファイル名の拡張子として、.ovaではなく.ovfを指定します。今回はファイル名をOracleAPEX.ovfとしています。

MACアドレスのポリシーとして、すべてのネットワークアダプターのMACアドレスを削除を選択しています。今回エクスポートする仮想マシンは、OCIのカスタム・イメージとして登録します。カスタム・イメージからは常に新しいコンピュート・インスタンスが作成されるため、MACアドレスも重複しないよう新しいものが割り当てられます。そのため、元となるイメージにMACアドレスを含める必要はありません。(MACアドレスを含んでいても、コンピュート・インスタンス作成時に置き換えられているようにも見えますが、最初からMACアドレスを含まない方が安全と判断しています)。

マニュフェストファイルは不要なので、チェックを外します。

.ovaファイルが出力先ではないため、.ovfファイルと.vmdkファイルがそれぞれ作成されます。Oracle Cloudへは、仮想ディスクである.vmdkファイルのみをアップロードします。

以上を設定し完了をクリックすると、仮想マシンのエクスポートが開始します。


エクスポートが完了すると、仮想アプライアンス名-disk001.vmdkという名前で、VMDKファイルが作成されます。

今回の例では、OracleAPEX-disk001.vmdkが作成されます。ARMの仮想マシンでは.ovfに加えて.nvramファイルも作成されます。

% ls -l OracleAPEX*

-rw-r--r--  1 **********  staff  6717041664  1月 27 18:10 OracleAPEX-disk001.vmdk

-rw-r--r--  1 **********  staff      786432  1月 27 18:06 OracleAPEX.nvram

-rwx------  1 **********  staff        7311  1月 27 18:06 OracleAPEX.ovf

% 



VMDKファイルのアップロード



オブジェクト・ストレージの任意のバケットに、エクスポートされたVMDKファイルをアップロードします。一般的なファイルのアップロードで、特別な作業はありません。

バケットにアップロードするオブジェクトとして、OracleAPEX-disk001.vmdkを選択します。

に進みます。


オブジェクトのアップロードを実行します。


オブジェクトのアップロードが完了したら、ページを閉じます。


バケット内のオブジェクトのリストにVMDKファイルが現れます。



カスタム・イメージの作成



OCIコンソールよりコンピュートカスタム・イメージを開きます。

イメージのインポートを実行します。


名前は任意ですが、今回はapex-242-armとしました。オペレーティング・システムOracle Linuxを選択します。インポートする対象のVMDKファイルは、オブジェクト・ストレージ・バケットからインポートを選択し、バケットのあるコンパートメントおよびバケットを選択します。バケットに含まれるオブジェクトからオブジェクト名としてVMDKファイル(今回はOracleAPEX-disk001.vmdk)を選択します。

イメージ・タイプVMDK起動モードとして準仮想化モードを選択し、イメージのインポートを実行します。


カスタム・イメージのインポートが開始します。


このインポート処理も少々時間がかかりましたが、最終的にカスタム・イメージが使用可能になります。

ARM 64-bitのカスタム・イメージは、デフォルトでファームウェアがBIOS、互換シェイプにx86_64のシェイプが選択されます。これらは変更が必要です。


アクション詳細の編集を実行します。


互換シェイプVM.Standard.A1.FlexおよびVM.Standard.A2.Flexを含め、変更の保存をクリックします。


アクションイメージ機能の編集を実行します。


ファームウェア使用可能なオプションからBIOSを外し優先ファームウェアUEFI_64であることを確認します。変更の保存をクリックします。


カスタム・イメージの準備ができたので、インスタンスの作成を開始します。



コンピュート・インスタンスの作成



カスタム・イメージの画面からインスタンスの作成を実行すると、コンピュート・インスタンスの作成画面が開きます。

作成するインスタンスの名前apex-armとします。イメージには、先ほどインポートしたカスタム・イメージapex-242-armが選択されています。


シェイプVM.Standard.A1.Flexです。2コアOCPU12GBメモリーを割り当てます。


シェイプの変更をクリックして、シェイプとしてVM.Stanard.A1.Flexを選択し、OCPUの数2メモリー量(GB)12に設定します。

VM.Standard.A1.FlexのAlways Freeの範囲内で、Oracle AI Database 26ai FreeとOracle APEXを実行することができます。


へ進みます。


セキュリティはデフォルトから変更しません。へ進みます。


ネットワーキングについては、パブリックIPv4アドレスの自動割り当てが行われるように設定します。学習や研修の用途を想定しているので、インスタンスを作成してすぐにネットワーク経由で接続できるようにします。


SSHキーの追加として、キー・ペアを自動で生成を選択します。秘密キーの保存をクリックし、秘密キーをダウンロードしておきます。

へ進みます。


ブート・ボリュームおよびブロック・ボリュームはデフォルトから変更しません。

へ進みます。


作成をクリックします。


インスタンスの作成が開始します。最終的には実行中のステータスに変わります。パブリックIPアドレスが割り当たるので、そのIPアドレスを宛先にしてSSHによる接続ができます。


初回起動時はステータスが実行中になっても、SSH接続が可能になるまで少々時間がかかります。


OS管理コンソール接続よりCloud Shell接続の起動をクリックし、コンソールに接続して起動状況を確認することができます。


SSHとAPEXに接続できることを確認します。そのために、ポート22および80への通信を許可するイングレス・ルールを、あらかじめ設定しておきます。

コンピュート・インスタンスに割り当てられたパブリックIPを確認し、SSHで接続します。

ssh -i 秘密キー・ファイル opc@IPアドレス

% ssh -i ssh-key-2026-01-27.key opc@***.***.***.***

The authenticity of host '***.***.***.*** (***.***.***.***)' can't be established.

ED25519 key fingerprint is SHA256:jA+X7A/7FNcd+fsdMtQrPRnM0kgK4moUeUvryKKHAaM.

This key is not known by any other names.

Are you sure you want to continue connecting (yes/no/[fingerprint])? yes

Warning: Permanently added '***.***.***.***' (ED25519) to the list of known hosts.

Web console: https://apex-arm:9090/ or https://10.0.0.193:9090/


[opc@apex-arm ~]$ 


次にブラウザより、APEXに接続します。

http://パブリックIP/ords/apex_admin

firewalldによって、ポート80宛の接続はORDSが待ち受けている8080へ転送されます。また、データベースおよびORDSは自動起動するように設定されています。

そのため、コンピュート・インスタンスを起動するだけでAPEXに接続できるようになっています。


以上でVirtualBoxの仮想マシンを元にした、Oracle Cloud Infrastructureのコンピュート・インスタンスの作成および実行ができました。


Oracle Cloud Agentのインストール



必須の作業ではありませんが、オラクルの以下のドキュメントの記載に沿ってOracle Cloud Agentをインストールしてみます。
https://docs.oracle.com/ja-jp/iaas/Content/Compute/Tasks/manage-plugins.htm

パブリックなYumリポジトリ(yum.oracle.com)の代わりに、Oracle Cloudのリージョンにあるリポジトリを参照するように設定を変更します。

/etc/yum/vars以下のociregionに、インスタンスが存在するリージョンを書き込みます。先頭に"-"を付加します。ファイルocidomainの内容はoracle.comなので、変更は不要です。

今回の作業では北米のAshburnリージョンにインスタンスを作成しているため、以下を記述しました。

-us-ashburn-1

[opc@apex-arm ~]$ cd /etc/yum/vars

[opc@apex-arm vars]$ cat ocidomain

oracle.com

[opc@apex-arm vars]$ cat ociregion


[opc@apex-arm vars]$ sudo -s

[root@apex-arm vars]# echo "-us-ashburn-1" > ociregion

[root@apex-arm vars]# exit

exit

[opc@apex-arm vars]$ cat ociregion

-us-ashburn-1

[opc@apex-arm vars]$ 


Oracle Cloud Agentをインストールするために、yumリポジトリを登録します。

Oracle Linux 8の場合は、/etc/yum.repos.d/以下にol8-included-ol8.repoを作成します。以下の内容を記述します。
[ol8_oci_included]
name=Oracle Software for OCI users on Oracle Linux $releasever ($basearch)
baseurl=https://yum$ociregion.$ocidomain/repo/OracleLinux/OL8/oci/included/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1

[root@apex-arm yum.repos.d]# cat ol8-included-ol8.repo

[ol8_oci_included]

name=Oracle Software for OCI users on Oracle Linux $releasever ($basearch)

baseurl=https://yum$ociregion.$ocidomain/repo/OracleLinux/OL8/oci/included/$basearch/

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle

gpgcheck=1

[root@apex-arm yum.repos.d]# 


Oracle Linux 9の場合は、ol9-included-ol9.repoを作成します。以下の内容を記述します。
[ol9_oci_included]
name=Oracle Software for OCI users on Oracle Linux $releasever ($basearch)
baseurl=https://yum$ociregion.$ocidomain/repo/OracleLinux/OL9/oci/included/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=1

[root@apex-242-intel yum.repos.d]# cat ol9-included-ol9.repo 

[ol9_oci_included]

name=Oracle Software for OCI users on Oracle Linux $releasever ($basearch)

baseurl=https://yum$ociregion.$ocidomain/repo/OracleLinux/OL9/oci/included/$basearch/

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle

gpgcheck=1

enabled=1

[root@apex-242-intel yum.repos.d]# 


Oracle Cloud Agentをインストールします。

dnf -y install oracle-cloud-agent

[root@apex-arm yum.repos.d]# dnf -y install oracle-cloud-agent

Failed to set locale, defaulting to C.UTF-8

Oracle Software for OCI users on Oracle Linux 8  41 MB/s | 249 MB     00:06    

Oracle Linux 8 BaseOS Latest (aarch64)           58 MB/s | 154 MB     00:02    

Oracle Linux 8 Application Stream (aarch64)      59 MB/s |  69 MB     00:01    

Latest Unbreakable Enterprise Kernel Release 7   69 MB/s |  85 MB     00:01    

Last metadata expiration check: 0:00:01 ago on Tue Jan 27 22:19:33 2026.

Dependencies resolved.

================================================================================

 Package               Arch       Version             Repository           Size

================================================================================

Installing:

 oracle-cloud-agent    aarch64    1.55.6-13.el8       ol8_oci_included    148 M


Transaction Summary

================================================================================

Install  1 Package


Total download size: 148 M

Installed size: 451 M

Downloading Packages:

oracle-cloud-agent-1.55.6-13.el8.aarch64.rpm     40 MB/s | 148 MB     00:03    

--------------------------------------------------------------------------------

Total                                            40 MB/s | 148 MB     00:03     

Running transaction check

Transaction check succeeded.

Running transaction test

Transaction test succeeded.

Running transaction

  Preparing        :                                                        1/1 

  Running scriptlet: oracle-cloud-agent-1.55.6-13.el8.aarch64               1/1 

Adding group: oracle-cloud-agent

Adding user: oracle-cloud-agent

Adding user: oracle-cloud-agent-updater

Adding user: ocarun


  Installing       : oracle-cloud-agent-1.55.6-13.el8.aarch64               1/1 

  Running scriptlet: oracle-cloud-agent-1.55.6-13.el8.aarch64               1/1 

Changing ownership of agent.yml* files to oracle-cloud-agent:oracle-cloud-agent

Changing ownership of updater.yml* files to oracle-cloud-agent-updater:adm

Changing ownership of /var/log/oracle-cloud-agent/updater.log to oracle-cloud-agent-updater:adm

Setting capabilities on bastions plugin

2026/01/27 22:20:02 Capability set on filePath: /usr/libexec/oracle-cloud-agent/plugins/bastions = [1 0 0 10 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]

2026/01/27 22:20:02 Capability set on filePath: 20 = [1 0 0 10 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]

2026/01/27 22:20:02 Capability set properly : [1 0 0 10 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]

post install: starting services


  Verifying        : oracle-cloud-agent-1.55.6-13.el8.aarch64               1/1 


Installed:

  oracle-cloud-agent-1.55.6-13.el8.aarch64                                      


Complete!

[root@apex-arm yum.repos.d]# 


Oracle Cloud Agentがインストールできました。

コンピュート・インスタンスのモニタリングが開始され、メトリックに値が表示されるようになります。


続く