Oracle Cloud Infrastructure Classic上にロードバランサーを実装してみた

こんにちは。Oracle Cloud Infrastructure(OCI)特集 編集部です。

今回はOracle Cloud Infrastructure Classic(OCI-C)上にロードバランサーを実装します。
2018/11/20の時点では、OCI-Cの日本リージョンには、ロードバランサーのサービスがありません。
そのため、nginxを使用してロードバランサーを実装してみたいと思います。

以下の図のようなWebサーバー2台をロードバランシングする環境を構築していきます。


OSなどの環境情報は、以下の通りです。
■Webサーバー#1
OS       :Windows Server 2016 SE
Webサーバーソフト :IIS
■Webサーバー#2
OS       :Windows Server 2016 SE
Webサーバーソフト :IIS
■nginxサーバー
OS       :Oracle Linux Server 7.2
nginxバージョン   :1.14.1

※上記ではOCI-C上のすべてのサーバーがインターネットに接続されています。
この構成は、あまりセキュアとはいえません。
OCI-CのIPネットワークの仕組みを理解すると、nginxサーバーのみをインターネットに接続する、
下図のような、よりセキュアな構成とすることができます。
共有ネットワークとIPネットワークについては、別の機会にご紹介いたします。

それでは早速、環境構築を始めていきましょう。

1.Webサーバーの作成
Windowsサーバーの作成方法については、「Oracle Cloud Infrastructure Classicでサーバを建ててみた」でご紹介させていただきましたので、そちらをご参照ください。
ここではWindowsサーバーを作成した後の流れについて記載します。
以下が予め準備したWindowsサーバー2台となります。

まずはWindowsサーバーにIISをインストールします。
※今回は特に設定などを行わずにインストールだけとなります。
構築経験のある方は退屈かもしれませんがお付き合いくださいm(_ _)m

サーバマネージャーより「役割と機能の追加」をクリックします。

ウィザード画面が表示されたら「次へ」をクリックします。

インストールの種類の選択画面では、「役割ベースまたは機能ベースのインストール」を選択し、
「次へ」をクリックします。

対象サーバの選択画面では、インストール場所を選択し、「次へ」をクリックします。

サーバの役割の選択画面では「Webサーバー(IIS)」をクリックします。

「Webサーバー(IIS)」をクリックすると、機能追加を確認する画面が表示されますので、
「機能の追加」をクリックします。

「Webサーバー(IIS)」が選択されていることを確認し、「次へ」をクリックします。

機能の選択画面が表示されたら「次へ」をクリックします。

Webサーバーの役割(IIS)が表示されたら、「次へ」をクリックします。

役割サービスの選択画面が表示されたら、「次へ」をクリックします。

インストールオプションの確認画面が表示されたら、「インストール」をクリックします。

しばらく待つとインストールが完了します。
インストールが完了しましたら、「閉じる」をクリックします。
これで、IISのインストールは完了です。

インストールが問題なく行われたかを確認するためにブラウザアクセスを試します。
Windowsサーバーに標準で備わっているInternet Exploerを起動し、以下のアドレスを入力します。

http://localhost

正しくインストールが完了していればデフォルトで登録されているサイトが表示されます。

それでは2号機も同じようにインストールしてみます。
※同じ手順になりますので画面キャプチャは割愛します。

※1号機と2号機の区別を付けるためにTOP画面を少し修正しました。
1号機

2号機

これで、Webサーバーの用意ができました。

2.nginxのインストール&設定
次に、ロードバランスの設定を行います。今回利用するOracle Linux環境は以下になります。
※インスタンスの作成方法についてはこちらを参照ください。
Oracle Cloud Infrastructure Classicでサーバを建ててみた

  • ダウンロード先アドレス確認
    今回はyumを利用してnginxをインストールします。
    インストール作業を進める前に、まずはダウンロード先のアドレスを確認します。
    今回はこちらのアドレスを利用します。
    http://nginx.org/packages/rhel/7/

※ここから先の手順はteratermなどを使ってOracle Linux環境にSSH接続を行ってください。

  • nginxインストール事前準備
    nginxをインストールする前にレポジトリファイルを作成します。
    【コマンド】
    # vi /etc/yum.repos.d/nginx.repo
    ~~~~~~~~~~~~~~~~~~~~~~~~~
    [nginx]
    name=nginx repo
    baseurl=http://nginx.org/packages/rhel/7/$basearch/
    gpgcheck=0
    enabled=1
    ~~~~~~~~~~~~~~~~~~~~~~~~~
    赤字の箇所は環境に応じて変更します。

 

  • nginxのインストール
    nginxをyumコマンドを利用してインストールします。
    【コマンド】
    # yum install nginx

 

  • nginxの自動起動設定
    サーバ起動時に自動的にnginxが起動するよう設定します。
    【コマンド】
    # systemctl enable nginx

 

  • nginx起動
    nginxを起動します。
    【コマンド】
    # systemctl start nginx

 

  • 動作確認
    nginxが起動しましたらデフォルトで用意されているウェブページへアクセスし、
    問題なく動いていることを確認します。ブラウザよりサーバのIPアドレスへアクセスします。
    http://<サーバIPアドレス>

  • nginxのconfファイルを修正
    「/etc/nginx/nginx.conf」ファイルにロードバランスの設定を加えます。
    【コマンド】
    # vi /etc/nginx/nginx.conf
    ~~~~~~~~~~~~~~~~~~~~~~~~~
    省略
    http {
    upstream oci-c.nginx.com {
    server oci-c.web1.com;
    server oci-c.web2.com;
    }
    server {
    listen 80;
    location / {
    proxy_pass http://oci-c.nginx.com;
    }
    }
    }
    省略
    ~~~~~~~~~~~~~~~~~~~~~~~~~
    ※下記3つについては名前解決できるようにhostsに登録済みとなっています。
    1.oci-c.web1.com
    2.oci-c.web2.com
    3.oci-c.nginx.com

 

  • サービス再起動
    nginxのconfファイル修正が完了したらnginxサービスの再起動を行います。
    【コマンド】
    # service nginx restart

これで、ロードバランサーの準備もできました。

3.動作検証
nginxが起動しましたら、Webサーバー内で設定しているサイトが表示できるかを確認してみましょう。
確認方法としては、ブラウザより下記URLへアクセスします。
ロードバランス構成となっていますので、何回かアクセスすると、1号機の画面が表示されたり、
2号機の画面が表示されたりすることが確認できます。
http://oci-c.nginx.com/


 

以上で、OCI-C上へのロードバランサーの実装が完了しました。

いかがでしたでしょうか?

OCI-Cに構築するといっても、特別なことは行わずに、簡単に設定出来ました。

ちょっと試してみようかな?と思った方は、最大3,500時間のトライアルもありますので、
下記URLからアクセスして、是非お試しください!

https://cloud.oracle.com/ja_JP/tryit?intcmp=ocom-cloud