チュートリアル一覧に戻る : Oracle Cloud Infrastructure チュートリアル

Oracle Cloud Infrastructure ロードバランサー・サービスを利用することにより、仮想クラウド・ネットワーク(VCN)内の複数のサーバーに対して一つのエントリーポイントからのネットワーク・トラフィックを分散させることができます。ロードバランサー・サービスは、パブリックIPアドレスの分散を行うパブリック・ロードバランサーと、プライベートIPアドレスの分散を行うプライベート・ロードバランサーの2種類が提供されます。双方のタイプのロードバランサーとも、一定の帯域(100MB/s~8000MB/s)の保証と、高可用性がデフォルトで提供されます。またパブリック・ロードバランサーについてはVCN内の2つの異なるサブネットに跨って構成されるため、アベイラビリティ・ドメイン全体の障害に対する耐障害性が提供されます。

この章では、シンプルなパブリック・ロードバランサーを構成し、VNC内の2台のWebサーバーに対する負荷分散を構成する手順について学習します。

所要時間 : 約50分

前提条件 :

  1. その2 - クラウドに仮想ネットワーク(VCN)を作る を通じて仮想クラウド・ネットワーク(VCN)の作成が完了していること
  2. 2048bit 以上のRSA鍵ペアを作成していること

注意 : チュートリアル内の画面ショットについては Oracle Cloud Infrastructure の現在のコンソール画面と異なっている場合があります

目次 :

  1. 仮想クラウド・ネットワークとサブネットの作成
  2. 2つのインスタンスの作成とWebサーバーの起動
  3. ロードバランサー用のサブネットの作成
  4. ロードバランサーの構成
  5. ロードバランサーへのhttp通信許可の設定
  6. ロードバランサーの動作の確認
  7. Webサーバーの保護



1. 仮想クラウド・ネットワークとサブネットの作成

その2 - クラウドに仮想ネットワーク(VCN)を作る を完了していない場合、チュートリアルに従って仮想クラウド・ネットワーク(VCN)および付随するネットワーク・コンポーネントを作成してください。VCNウィザードで提供される インターネット接続性を持つVCNの作成オプションで、今回のチュートリアルに必要なVCNおよび付随コンポーネントを簡単に作成することができます。

この章では、Tokyoリージョン (可用性ドメインが1つの構成) を例として、最終的に下記のような構成を作成します。

img1.png


2. 2つのインスタンスの作成とWebサーバーの起動

その3 - インスタンスを作成する を参考に、パブリック・サブネットに2つの仮想マシン・インスタンスを作成してください。その際、パブリックIPアドレスの割当て を必ず選択し、パブリックIPアドレスを割当ててください。 2つのインスタンスが起動したら、以下の手順に従ってそれぞれにWebサーバーを起動します。

  1. sshで2つのインスタンスにアクセスします インスタンスへのsshでのアクセス方法が不明な場合は、 その3 - インスタンスを作成する を参考にしてください。

以下の手順は、2つのインスタンスに対してそれぞれSSHセッションを起動することで、同時に作業を実行して時間を短縮することができます

  1. Apache HTTPサーバーをインストールします

     sudo yum -y install httpd
    
  2. TCPの80番(http)および443番(https)ポートをオープンします

     sudo firewall-cmd --permanent --add-port=80/tcp
     sudo firewall-cmd --permanent --add-port=443/tcp
    
  3. ファイアウォールを再ロードします

     sudo firewall-cmd --reload
    
  4. Webサーバーを起動します

     sudo systemctl start httpd
    
  5. index.html ファイルを作成し、それぞれにどちらのWebサーバーかを示す文字列を記述します。

    1台目のWebサーバーで以下を実行します。

     sudo sh -c 'echo "Web Server 1 (host:`hostname`)" > /var/www/html/index.html'
    

    次に2台めのWebサーバーで以下を実行します。

     sudo sh -c 'echo "Web Server 2 (host:`hostname`)" > /var/www/html/index.html'
    

ここまでで、下記のような構成になっています。

img2.png


3. ロードバランサー用のサブネットの作成

ロードバランサーは、先ほど作成したWebサーバーと同じサブネットに配置することも可能ですが、別のサブネットに配置することでWebサーバーをプライベート・サブネット上に配置して外部から直接アクセスされることを防ぐことができるようになります。

今回は、Webサーバーが配置されているサブネットとは別のパブリック・サブネットをリージョナル・サブネットとして作成し、そこにロードバランサーを配置していきます。

3-1. ロードバランサー用のセキュリティ・リストの追加

  1. コンソールメニューから ネットワーキング → 仮想・クラウドネットワーク を選択し、リストから今回Webサーバーが存在するVCN名のリンクをクリックします

  2. 画面左下部の リソース メニューにある セキュリティ・リスト を選択し、セキュリティ・リストの作成 ボタンを押します

  3. 立ち上がった セキュリティ・リストの作成 ウィンドウに以下の項目を入力し、 セキュリティ・リストの作成 ボタンを押します

    • 名前 - 任意 (図では LB_Security_List として入力しています)
    • コンパートメントに作成 - デフォルトで現在のコンパートメントが選択されています。もし別のコンパートメントに作成したい場合は変更します
    • Ingress RuleEgress Rule のエントリーをすべて削除

      Note

      この時点ではセキュリティリストにはルールを付与しないでください。後の作業ステップにおいてロードバランサーを作成した際に、適切なルールが自動的に付与されます

    img3-1-3.png


3-2. ロードバランサー用のルート表の追加

  1. 画面左下部の リソース メニューにある ルート表 を選択し、ルート表の作成 ボタンを押します

  2. 立ち上がった ルート表の作成 ウィンドウに以下の項目を入力し、ルート表の作成 ボタンを押します

    • 名前 - 任意 (図は LB_Route_Table として入力しています)
    • コンパートメントに作成 - デフォルトで現在のコンパートメントが選択されています。もし別のコンパートメントに作成したい場合は変更します
    • 宛先CIDRブロック - 0.0.0.0/0
    • ターゲット・タイプ - インターネット・ゲートウェイ を選択
    • コンパートメント - デフォルトで現在のコンパートメントが選択されています。もし別のコンパートメントに作成したい場合は変更します
    • ターゲット・インターネット・ゲートウェイ - VCNのインターネット・ゲートウェイを選択

    img3-2-2.png


3-3. ロードバランサー用のサブネットの追加

  1. 画面左下部の リソース メニューにある サブネット を選択し、サブネットの作成 ボタンを押します

  2. 立ち上がった サブネットの作成 ウィンドウに以下の項目を入力し、サブネットの作成 ボタンを押します

    • 名前 - 任意 (図では LB_Subnet と入力しています)
    • サブネット・タイプ - リージョナル(推奨)を選択
    • CIDR ブロック - 10.0.3.0/24
    • ルート表 - ステップ3-2で作成したルート・テーブルを選択 (図では LB_Route_Table を選択しています)
    • サブネット・アクセス - パブリック・サブネット を選択
    • DNS 解決 - チェックを外す
    • DHCPオプション - 入力なしのまま
    • セキュリティ・リスト - ステップ3-1で作成したセキュリティ・リストを選択 (図では LB_Security_List を選択しています)

    img3-3-2-1.png

ここまでの操作で、下記のような構成になりました。

img3-3-2-2.png


4. ロードバランサーの構成

ロードバランサーを作成します。作成の際にロードバランサーに必要なシェイプ(帯域)とともに、配置先として先ほど作成したリージョナル・サブネットを選択します。

  1. コンソールメニューから ネットワーキング → ロード・バランサ を選択し、ロード・バランサの作成 ボタンを押します

  2. ロード・バランサ・タイプの選択 画面では ロード・バランサ を選択し、ロード・バランサの作成 ボタンを押します

  3. 立ち上がった ロード・バランサの作成 画面で以下の項目を入力していきます。ロード・バランサの作成は、全部で4画面に分かれています。

    • 詳細の追加 画面で下記項目を入力し、次の手順 ボタンをクリック
      • 名前 - 任意 (図では Tutorial_LB と入力しています)
      • 可視性タイプの選択 - パブリックを選択
      • パブリックIPアドレスの割当て - エフェメラルIPアドレスを選択
      • シェイプ - 最小帯域幅:10 Mbps、最大帯域幅:50 Mbps と入力
      • 仮想クラウド・ネットワーク - サブネットを作成したVCNを選択 (図では TutorialVCN を選択しています)
      • サブネット - ステップ3-3 で作成したリージョナル・サブネットを選択 (図では LB_Subnet を選択しています)

      img_adding_detail.png


    • バックエンドの選択 画面で以下の項目を入力し、次の手順 をクリック
      • ロード・バランシング・ポリシーの指定 - 重み付けラウンド・ロビン を選択
      • バックエンド・サーバーの選択 - バックエンドの追加 ボタンを押して、インスタンスの指定画面を表示。あらかじめ作成した2つのインスタンスを選択し、選択したバックエンドの追加 ボタンを押す

      img4-2-2.png


    • ヘルス・チェック・ポリシーの指定 - すべてデフォルトのまま
      • プロトコル - HTTP (デフォルト)
      • ポート - 80 (デフォルト)
      • 間隔(ミリ秒) - 100000 (デフォルト)
      • タイムアウト(ミリ秒) - 3000 (デフォルト)
      • 再試回数 - 3 (デフォルト)
      • ステータス・コード - 200 (デフォルト)
      • URLパス - / (デフォルト)
      • レスポンス本文の正規表現 - 空欄 (デフォルト)

      img_adding_backends.png


    • リスナーの構成 画面で以下の項目を入力し、すべての項目が入力できたら、画面下部の ロード・バランサの作成 ボタンを押す。
      • リスナー名 - 任意 (ここでは LB_Listener としています)
      • リスナーで処理するトラフィックのタイプを指定します - HTTP を選択
      • リスナーでイングレス・トラフィックをモニターするポートを指定します - 80 (デフォルト)

      img_listener_config.png


    • ロギングの管理 画面で以下のように項目を設定し、送信ボタンを押す。
      • エラー・ログ -「無効」
      • アクセス・ログ -「無効」(デフォルト)

      img_log_config.png


  4. ロードバランサーの作成が開始されます。作成はバックエンドで行われ、完了するとステータスが AVAILABLE になります img4-3.png


  5. この時点で、ロードバランサーにグローバルIPアドレスが1つ付与されています。 ロードバランサーの概要で IP アドレス: xxx.xxx.xxx.xxx (Public) と表示されているものを確認し、手元に値をメモしておいてください。このIPアドレスは後のステップで使用します。

  6. 作成が完了すると、ロードバランサからバックエンドのWebサーバー・インスタンスへのセキュリティ・ルールが自動的に追加されています。作成されたルールを確認するには、 ネットワーキング → 仮想クラウド・ネットワーク → <VCN名> → セキュリティ・リスト → <セキュリティ・リスト名> で確認することができます。

    • ロードバランサーのサブネットに設定されたセキュリティ・ルール(Egress)

    img4-5-1.png

    • Webサーバーのサブネットに設定されたセキュリティ・ルール(Ingress)

    img4-5-2.png
    ※赤枠の部分が追加されたルールです


5. ロードバランサーへのhttp通信許可の設定

ここまでで、ロードバランサーの設定は完了しています。最後にロードバランサーに対してインターネットからのHTTP通信を許可する設定を行い、トラフィックの転送を完成させます。

  1. コンソールメニューから ネットワーキング → 仮想クラウド・ネットワーク を選択し、本チュートリアルで使用しているVCN名のリンクをクリックします

  2. 左下メニューから セキュリティ・リスト を選択し、ステップ3-1で追加したロードバランサー用のセキュリティリスト名のリンクをクリックします

  3. イングレス・ルールの追加 ボタンを押します

  4. 入力フィールドが開くので、以下の情報を入力し、下部の イングレス・ルールの追加 ボタンを押します

    • ステートレス - いいえ (デフォルト)
    • ソースCIDR - 0.0.0.0/0
    • IPプロトコル - TCP を選択
    • ソース・ポート範囲 - ALL
    • 宛先ポート範囲 - 80

    img5-4.png


6. ロードバランサーの動作の確認

ブラウザからアクセスし、ロードバランサーが正しく動作していることを確認します。

  1. ステップ 4-5 でメモした、ロードバランサーのグローバルIPアドレスを確認します

  2. ブラウザの新しいタブを開き、IPアドレスを入力して ENTER キーを押します。Web Server 1 または Web Server 2 と表示されることを確認します

    img6-2.png

  3. ブラウザのウィンドウにフォーカスした状態で、F5キーを何度か押します。 すると、ウィンドウがリロードされ、Web Server 1 という表示と Web Server 2 という表示が切り替わることを確認します。 うまく切り替わるようであれば、無事にロードバランサーの構成が成功しています

    img6-3.png


7. Webサーバーの保護

最後に、Webサーバーのサブネットに設定されたルート・テーブルとセキュリティ・リストを更新し、Webサーバーを保護します。

  1. コンソールメニューから ネットワーキング → 仮想クラウド・ネットワーク を選択し、本チュートリアルで使用しているVCN名のリンクをクリックします

  2. 画面左下部の リソース メニューの ルート表 をクリックして表示された表から、本チュートリアルで使用しているVCNのデフォルト・ルート・テーブル名のリンクを選択してクリックします ( Default Route Table for TutorialVCN のような名前になっているはずです)

  3. ルート・ルール に表示されている、宛先0.0.0.0/0ターゲット がVCNに紐づいたインターネット・ゲートウェイ(図では インターネット・ゲートウェイ-TutorialVCN )に該当するルールを、右側のimage-vertical_triple_dotsメニューから 削除を選択して削除します

    img7-3.png

  4. VCNのリソース メニューにある セキュリティ・リスト のリンクをクリックして表示された表から、本チュートリアルで使用しているVCNのデフォルト・セキュリティ・リスト名のリンクを選択してクリックします ( Default Security List for TutorialVCN のような名前になっているはずです)

  5. イングレス・ルール をクリックし、以下のルールをステップ3と同様に削除します

    SOURCE CIDR IP Protocol Destination Port Range
    0.0.0.0/0 TCP 22
    0.0.0.0/0 ICMP 3, 4
    10.0.0.0/16 ICMP 3


    これで、Webサーバーのネットワークは保護され、インターネットとの間で直接通信はできなくなりました。引き続きロードバランサー経由でのHTTPアクセスは許可されており、Webページは閲覧することができます。 管理用途に外部からの通信が必要な場合は、必要に応じてルート・テーブルおよびセキュリティ・リストの設定を変更してください。


以上でこの章は終了です。


チュートリアル一覧に戻る : Oracle Cloud Infrastructure チュートリアル