Facebook Twitter
お問い合わせ
TOPICS
更新情報
ホーム > ブログ > Oracle Cloud > 【Oracle Cloud】トラフィック管理ステアリング・ポリシーによるクラウド間WEBサイトフェイルオーバー構成

【Oracle Cloud】トラフィック管理ステアリング・ポリシーによるクラウド間WEBサイトフェイルオーバー構成

ブログ
Oracle Cloud
2021.12.29

本記事はOracle Cloud Infrastructure Advent Calendar 2021  カレンダー2の Day 18として書いています。

こんにちは。s-oomoriです!Advent Calendarで空いてる日があったので、今年も書いてみました。

今回はOCIのDNSサービスである「トラフィック管理ステアリング・ポリシー」を使って、WEBサイトをOCIからAWSにフェイルオーバーする設定を紹介します。

OCIjp#23のLTでDEMO発表させていただいた内容となります。

トラフィック管理ステアリング・ポリシーとは?

Qiita等に説明等を記載していただいてますので、機能についてはこちらを参照ください。

参考:@cocotaro0202さん「リージョンをまたいでトラフィックのフェイルオーバーを試してみた

環境

今回、以図のようにOCIにWEBサイト用サーバ、AWSにSorryページ用サーバ環境を用意しました。

DNSは自分のドメインを用意しOCIのDNSに登録:demo.shinpy.info

OCI DNS トラフィック管理ステアリングを設定し、OCIのWEBサーバをプライマリとし、AWSのWEBサーバ(Sorryページ)をセカンダリに設定し、プライマリ障害を検知した場合、セカンダリに切り替わるように設定します。

準備

DNS環境の準備をします。

1.対象DNSゾーンを作成します:demo.shinpy.info

 ゾーンの作成→ソーン名を入力し作成します。

 ※shinpy.infoのゾーンにdemo.shinpy.infoのNSレコードが自動で追加されます。

2.WEBサイトは下記のように表示されるよう準備しておきます。

 今回はわかりやすく確認できるように、青色=OCIのWEBサイト、赤色=AWSのWEBサイトにしました。

(1)OCI:WEBサイト(LTの時のまま。。。)

(2)AWS:WEBサイト(Sorryページ)

トラフィック管理ステアリング・ポリシーの作成

トラフィック管理ステアリング・ポリシーを作成してフェイルオーバーの設定を行います。

 

1.トラフィック管理ステアリング・ポリシーの作成→下記の通り設定します。

・ポリシー・タイプ:フェイルオーバー

・ポリシー名:WEB-Failover(任意の名前)

・ポリシーTTL:10秒(本番は60秒以上が良いと思います。今回はデモなので短めに設定。)

・最大回答数:1(設定変更不可)

 

2.回答プールを作成します。

(1)回答プール1:プライマリWEBサイトの情報をAレコードとして登録します。

・回答プール名:Primary-WEB(任意の名前)

・回答:名前=oci(任意の名前) 、 タイプ=A 、 RDATA=138.3.211.90

(2)回答プール2:セカンダリWEBサイト(Sorryページ)の情報をAレコードとして登録します。

・回答プール名:Secondary-WEB(任意の名前)

・回答:名前=aws(任意の名前) 、 タイプ=A 、 RDATA=35.76.65.179

3.プールの優先度を設定します。

 下図のように、Primary-WEBがメインなので、優先度を設定します。プール1が障害となると、プール2にフェイルオーバーします。

4.ヘルス・チェックのアタッチを設定します。

・ヘルス・チェック設定はまだ未設定でしたので、今回は「新規追加」を選択します。

・ヘルスチェック名:WEB-HC(任意の名前)

・間隔:10秒(TTLと同じく今回はデモなので短めに設定)

・プロトコル:HTTP

 ※環境によっては、拡張オプションを開いて詳細に設定可能です。

5.アタッチ済ドメイン(オプション)を設定します。

 WEBサイトのFQDNを設定します。今回は「demo.shinpy.info」をWEBサイトのFQDNにしたいと思います。

 ※「http://demo.shinpy.info」とする。

・サブドメイン:空欄(もしサブドメインを設定したい場合は記載する)

 ※例:「www」と入力した場合、「www.demo.shinpy.info」となる。

・コンパートメント:DNSゾーンが作成してあるコンパートメントを指定

・ゾーン:demo.shinpy.info(準備で作成したドメインを選択)

6.ポリシーの作成をします。

 最後にタグ付け設定がなければ、そのまま「ポリシーの作成」を選択します。

 数十秒で「アクティブ」になりますので、これで作成完了です。

7.サイト閲覧可能か確認してみます。

・URL=http://demo.shinpy.info

問題なく見れてます。

OCIのDNSレコードを確認してみると、Aレコードは記載されてません。マネージド側で管理されるようです。

digコマンド等で引いてみると、Aレコードが引けます。

※demo.shinpy.info:A:138.3.211.90 となってるので、今はOCIにあるWEBサーバIPなのが分かります。

$ dig -t ANY demo.shinpy.info
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22156
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1480
;; QUESTION SECTION:
;demo.shinpy.info.              IN      ANY

;; ANSWER SECTION:
demo.shinpy.info.       10      IN      A       138.3.211.90
demo.shinpy.info.       300     IN      SOA     ns1.p68.dns.oraclecloud.net. hostmaster.demo.shinpy.info. 4 3600 600 604800 1800
demo.shinpy.info.       86400   IN      NS      ns4.p68.dns.oraclecloud.net.
demo.shinpy.info.       86400   IN      NS      ns1.p68.dns.oraclecloud.net.
demo.shinpy.info.       86400   IN      NS      ns2.p68.dns.oraclecloud.net.
demo.shinpy.info.       86400   IN      NS      ns3.p68.dns.oraclecloud.net.

フェイルオーバー確認

実際の障害を想定して、フェイルオーバー確認してみます。

今回は、WEBサービス停止しても良かったのですが、わかりやすくサーバを停止し、Sorryページに切り替わるか確認します。

1.事前にGoogleのDNSで「demo.shinpy.info」をnslookupしておき、OCIのWEBサーバを停止します。

$ nslookup
> server 8.8.8.8
Default server: 8.8.8.8
Address: 8.8.8.8#53
>
> demo.shinpy.info
Server:		8.8.8.8
Address:	8.8.8.8#53

Non-authoritative answer:
Name:	demo.shinpy.info
Address: 138.3.211.90
>

2.ステアリング・ポリシーの詳細画面で、Primary-WEBのヘルス・ステータスが正常→異常に更新されます。

ヘルス・チェックを確認してみると、「138.3.211.90(OCIのWEBサーバ)」は「使用不可」となっていることが確認できます。

nslookupの結果を見ると、AWSのWEBサーバIPに更新されているのを確認できます。

$ nslookup
> server 8.8.8.8
Default server: 8.8.8.8
Address: 8.8.8.8#53
>
> demo.shinpy.info
Server:		8.8.8.8
Address:	8.8.8.8#53

Non-authoritative answer:
Name:	demo.shinpy.info
Address: 138.3.211.90
>
> demo.shinpy.info
Server:		8.8.8.8
Address:	8.8.8.8#53

Non-authoritative answer:
Name:	demo.shinpy.info
Address: 35.76.65.179
>

3.ブラウザで確認してみると、Sorryページに切り替わっているのが分かります。

問題なくフェイルオーバーされていることが確認できました。

4.OCIのWEBサーバを起動して、フェイルバックしてみます。

・サーバ起動

・ポリシーのヘルス・ステータス確認:正常に更新

・ヘルス・チェック確認:どちらも使用可能を確認

・nslookupで確認:OCIのWEBサーバIPに更新されていることを確認

$ nslookup
> server 8.8.8.8
Default server: 8.8.8.8
Address: 8.8.8.8#53
>
> demo.shinpy.info
Server:		8.8.8.8
Address:	8.8.8.8#53

Non-authoritative answer:
Name:	demo.shinpy.info
Address: 138.3.211.90
>
> demo.shinpy.info
Server:		8.8.8.8
Address:	8.8.8.8#53

Non-authoritative answer:
Name:	demo.shinpy.info
Address: 35.76.65.179
>
Server:		8.8.8.8
Address:	8.8.8.8#53

> demo.shinpy.info
Server:		8.8.8.8
Address:	8.8.8.8#53

Non-authoritative answer:
Name:	demo.shinpy.info
Address: 138.3.211.90
>

・ブラウザで確認:OCIのWEBサイトが閲覧できることを確認

※問題無くフェイルバックしてます。

まとめ

今回ご紹介したサービスは、OCIだけでなく他のサービスも登録できるため、とても便利な機能だと思います。

フェイルオーバーだけでなく、他にもポリシー・タイプが豊富ですので、活用してみたいです。

この記事が2021年Cloudiiブログ最後の記事になる(はず)と思います。

 

最後に今年1年の投稿数を数えてみました。

・投稿数:41(ニュースリリースで少し稼いでますが。。。)

・私が投稿した記事数:この記事のみ。。。orz(それだけメンバー増&書いてくれてる!!)

来年(2022年)もCloudiiをどうぞよろしくお願いいたしますm(_ _)m


この記事が気に入ったら
「いいね!」

この記事を書いた人


関連コンテンツ

CONTACT お問い合わせ

Cloudiiのサービスやプロダクトについて
興味をお持ちの方は、
お気軽にお問い合わせください。