みなさん、こんにちは。東の西下です。
さて、今回はAWS(Amazon EC2)上にHAクラスターを構築する方法についてご紹介します。
当社が提供するHAクラスターソフト『LifeKeeper』を使用した場合を例にあげて解説していきます。
HAクラスターソフトの制御で重要かつ難しいのは?
ハートビートによるノード監視や、制御スクリプト(ARK)によるリソース監視も、もちろん重要で難しいのですが、一般にはクライアントが迷子にならずにActiveノードにアクセスできる「ルーティング」の制御がHAクラスターソフトの制御で最も重要かつ難しいと言われています。
HAクラスター構成の大半を占めるLAN環境であれば、LifeKeeperは標準機能の「仮想IPアドレス」を常にActiveノードに紐付かせることで、クライアントはその仮想IPアドレスを指しさえすれば、確実にActiveノードへアクセスできます。
同一サブネット内での仮想IPアドレスによるルーティングのイメージ
しかし上記の仮想IPアドレスによるルーティングの制御は、そのままだとサブネットを跨いだ構成では使えません。何かしら「手を加える」必要があります。
サブネットを跨いだ構成での仮想IPアドレスによるルーティングのイメージ(切り替え前)
サブネットを跨いだ構成での仮想IPアドレスによるルーティングのイメージ(切り替え後)
LifeKeeperでは、AWS環境においては可用性の観点から、Active/StandbyのクラスターノードがAZ(Availability Zone)を跨いだ構成を標準としています。
AZを跨ぐということはサブネットも跨ぐということになるので、本来なら何かしらAWSのCLIを実行するスクリプトを設計して・開発して・テストして、自己責任で運用する対応が必要です。
このようなAWS上でAZを跨いだ堅牢なHAクラスター構成を、製品の標準機能を使ってGUIのウイザード上で簡単に設定して構築できます。この点が他のHAクラスターソフトには無いLifeKeeperの強みです。
Amazon EC2向けルーティング機能ラインナップ
LifeKeeperでは、Amazon EC2のHAクラスター要件で登場する構成要件を網羅しています。下記のラインナップをご覧ください。
LifeKeeperが製品の標準機能で対応しているAmazon EC2向けルーティング機能ラインナップ(※AZの概念図は省略しています)
ルートテーブルシナリオによる制御について解説
上記ラインナップの中の「Recovery Kit for EC2」で提供される「ルートテーブルシナリオ」について解説します。
「ルートテーブルシナリオ」は、クラスターノードと同じVPC内のクライアントからActiveノードへアクセスする時に使います。AZを跨ぐとサブネットも跨ぐので、本来なら仮想IPアドレスは使えませんが、当シナリオではAmazon EC2のルートテーブルを利用することで対応が可能になります。
ルートテーブルシナリオによる制御の概念図
具体的には、意図的にVPCのサブネットのレンジ外の「ダミーの仮想IPアドレス」を設定し、クライアントはそのダミーの仮想IPアドレスにアクセスさせます。
するとその通信はルートテーブルを参照し、ルートテーブルではダミーの仮想IPアドレスはActiveノードの実IPアドレスを指しています。これによりクライアントはスムーズにActiveノードにアクセスできます。
LifeKeeperが切り替わった場合は、Recovery Kit for EC2からAWSのCLIが自動的に実行されてルートテーブルが書き換えられます。ダミーの仮想IPアドレスはStandbyノードの実IPアドレスを指します。これによりクライアントはStandbyノードにアクセスできます。
Amazon EC2環境でのHAクラスター構築 Step by Step ガイド【ルートテーブルシナリオ編】
このAWSに順応した非常にスマートなルーティング方式の構築手順について、Step By Step形式の詳細な手順書が公開されています。
VPCを作るところからの全手順がもれなく記載されていますので、どなたでも迷子にならずに同じ構成を構築できる大変人気の高い技術資料のシリーズです。今回ご紹介した資料のほかにもAmazon EC2上でSQL Serverを冗長化する手順書など、技術資料を多数用意しております。ぜひ下記からご入手くださいませ。
お問い合わせ
「ブログについてもっと詳しい話を聞いてみたい。」「自分の持っている案件は対応できそうか?」などございましたら下記よりお問い合わせください。