2022年11月28日月曜日

ロード・バランサを構成しORDSの可用性を確保する(0) - 準備作業

 Oracle REST Data Servicesを実行する複数のコンピュート・インスタンスを用意し、ロード・バランサをフロントに配置することによって可用性を確保します。


前提条件


本来であればコンピュート・インスタンスはプライベート・ネットワークに配置すべきですが、プライベート・ネットワークを構成するにはアカウントをアップブレードする必要があります。アップグレードせずに構成手順を確認できるように、コンピュート・インスタンスはパブリック・ネットワークに配置します。

以下の記事に従ってCustomer Managed ORDSを構築済します。本記事に、手順として異なる部分を記載します。

Customer Managed ORDSの構成(1) - インストールと構成
また、ロード・バランサをHTTPS化するために使用するサーバー証明書は、Oracle Cloudの証明書サービスより発行します。プライベートCAの作成は、日本オラクル公式のチュートリアルを参考にしてください。

OCIチュートリアル - Oracle Cloud Infrastructureを使ってみよう
プライベート認証局と証明書の発行

Always FreeのデータベースとしてAPEXというインスタンスを作成し、Customer Managed ORDSを動作させるコンピュート・インスタンスとして、CMORDS1CMORDS2を作成済みとします。


Customer Managed ORDSの構築での変更点



Customer Managed ORDSはHTTPSではなくHTTPで接続するように構成します。そのため、CertbotのインストールやLet's Encryptを使った証明書の発行は行いません。

firewalldの構成では、ポート8080のみ接続を許可します。

firewall-cmd --add-port=8080/tcp
firewall-cmd --runtime-to-permanent
firewall-cmd --reload
firewall-cmd --list-all


[root@cmords1 ~]# firewall-cmd --add-port=8080/tcp

success

[root@cmords1 ~]# firewall-cmd --runtime-to-permanent

success

[root@cmords1 ~]# firewall-cmd --reload

success

[root@cmords1 ~]# firewall-cmd --list-all

public (active)

  target: default

  icmp-block-inversion: no

  interfaces: enp0s3

  sources: 

  services: ssh

  ports: 8080/tcp

  protocols: 

  forward: yes

  masquerade: no

  forward-ports: 

  source-ports: 

  icmp-blocks: 

  rich rules: 

[root@cmords1 ~]# 


ORDSを構成する際にはプロトコルとしてHTTPHTTPポートとしてデフォルトの8080を選択します。

  Enter a number to select the protocol

    [1] HTTP

    [2] HTTPS

  Choose [1]: 

  Enter the HTTP port [8080]: 


構成完了後に起動したORDSを停止し、/etc/ords/config/global/settings.xmlに以下の一行を追加します。

<entry key="security.httpsHeaderCheck">X-Forwarded-Proto: https</entry>

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">

<properties>

<comment>Saved on Mon Nov 28 02:15:45 UTC 2022</comment>

<entry key="database.api.enabled">false</entry>

<entry key="standalone.context.path">/ords</entry>

<entry key="standalone.doc.root">/etc/ords/config/global/doc_root</entry>

<entry key="standalone.http.port">8080</entry>

<entry key="security.httpsHeaderCheck">X-Forwarded-Proto: https</entry>

</properties>


ロード・バランサのバックエンドとなるコンピュート・インスタンスそれぞれで、同じ作業を行います。

以上で事前準備は完了です。

続く