LifeKeeper for Linux
Amazon Web Services EC2 環境での
HA クラスタ構築ガイド
第 2 版
目次
1 本ドキュメントの目的 ...3
2 本ドキュメントのサポート範囲 ...3
2.1 将来における互換性について ...3
3 Amazon Web Services の概要 ...4
3.1 VPC 上で LifeKeeper を使う上での留意点 ...4
4 Amazon Web Services の設定 ...5
4.1 構成の説明 ...5 4.2 VPC の設定 ...5 4.3 各インスタンスの設定 ...7 5 LifeKeeper による HA クラスタの構築 ...8 5.1 LifeKeeper のインストール ...8 5.2 リソース階層の作成 ...8 6 参考資料 ... 10 7 お問い合わせ ... 12 8 免責事項 ... 13
改版履歴
日付バージョン
変更履歴
2014 年 1 月 27 日第 1 版
新規作成
2016 年 11 月 15 日第 2 版
バージョン情報および住所の変更
1
本ドキュメントの目的
v8.2.0 より LifeKeeper for Linux (以下、LifeKeeper)が Amazon Web Services 上の Virtual Private Cloud 環境においてご利用いただけるようになりました。EC2 インスタンス に LifeKeeper を導入し、用途に合わせて柔軟な HA クラスタシステムを構築することができ ます。
Apache Web Server を Amazon Web Services 環境で稼動させ、クラウド環境におけるパ ブリックな HA クラスタシステムを構築する手法について、各機能の簡易な解説を交えながら ご説明します。
2
本ドキュメントのサポート範囲
本ドキュメントは、Virtual Private Cloud 内の EC2 インスタンスに LifeKeeper をインス トールし、パブリックな HA クラスタを構成するために必要な各種設定方法をご案内します。
2.1 将来における互換性について
Amazon Web Services の仕様変更により、本ドキュメントで案内している各種操作方法 に変更が生じる可能性があります。本ドキュメントは、将来における Amazon Web Services の仕様変更についてサポートするものではありません。必要に応じて最新のド キュメンテーションを参照し、適切な設定を行なってください。
3
Amazon Web Services の概要
Amazon Web Services(以下、AWS)は、Amazon.com 社が提供するクラウド・コンピュー ティング・サービス群の総称です。Virtual Private Cloud(以下、VPC)は AWS が提供す る機能の一つであり、クラウド上にカスタマイズ可能なプライベートネットワーク環境を構 築することが可能なサービスです。AWS はリージョンごとに複数の Availability Zone(以 下、AZ)で構築されており、障害は AZ を跨いで伝播することはありません。ユーザは任意 の AZ に、サーバインスタンスやデータストアをはじめとした各種リソースを配置すること ができます。 VPC 内で LifeKeeper を利用することで、リージョン内の複数の AZ からなる HA クラスタ 構成が可能となり、クラウド環境におけるアプリケーション、サービスの高可用性が実現で きます。
3.1 VPC 上で LifeKeeper を使う上での留意点
AWS 上では、一つの Elastic Block Store(以下、EBS)を複数ノードに接続することはで きません。そのため、EBS を用いて共有ディスク構成をとることはできません。
4
Amazon Web Services の設定
4.1 構成の説明
本ドキュメントでは、以下の図のようなネットワーク構成を想定して解説を行います。HA ク ラスタを構成するインスタンス 2 台はそれぞれ異なる AZ のパブリックなサブネットに配置 します。また、外部からアクセスするための Elastic IP を用意し、これを LifeKeeper によっ て制御可能なリソースとします。この構成によって Elastic IP の切り替えが実現できますの で、稼働中のアプリケーションに障害が発生し、リソースのフェイルオーバが発生した際に おいても、常に一意の IP アドレスで、アプリケーションへのアクセスが可能となります。4.2 VPC の設定
AWS Management Console で以下の操作を行います。 (1) Virtual Private Cloud(VPC)の作成
任意のリージョンに VPC を作成します。 Elastic IP
Availability Zone A Availability Zone B
Subnet 10.0.2.0/24(Private) VPC 10.0.0.0/16 サーバ 1 LifeKeeper Apache web server (Active) サーバ 2 LifeKeeper Apache Web server (Standby) Subnet 10.0.4.0/24(Private)
(2) サブネットの作成
VPC 内に複数のサブネットを作ります。このとき、クラスタを構成するインスタンス を配置するサブネットがそれぞれ異なる AZ に属していることが重要です。
(3) Elastic Network Interface(ENI)の作成
コミュニケーションパスを冗長化するため、各ノードに複数の ENI を紐付けます。ま た、それぞれの ENI は固定 Private IP を持つようにします。この操作は、インスタン ス作成ウィザードからも行うことが出来ます。
(4) Network ACL および Security Group の作成
本ドキュメントで解説する構成においては、Elastic IP の制御にあたり、次章で解説す る Recovery Kit for EC2 の内部で Amazon EC2 API Tools を利用します。Amazon EC2 API Tools を利用するためには、HTTPS でインターネットへ接続できる必要があ ります。
また、LifeKeeper のコミュニケーションパスおよび GUI 機能を利用するために、 LifeKeeper の設定に応じて特定のポートで通信が行えるよう構成する必要があります。 使用するポートの詳細については、LifeKeeper for Linux v9.1.0 スタートアップガイ ド 「Firewall の確認」項目を参照してください。
(5) EC2 インスタンスの作成
LifeKeeper をインストールし、クラスタを構成するインスタンスはそれぞれ異なる AZ に属するサブネットに配置します。また、(3)で作成した ENI を割り当てます。 (6) Elastic IP の Allocate
LifeKeeper のリソースとして制御する Elastic IP を Allocate します。この時点では、 特定のインスタンスに Associate する必要はありません。インスタンスの設定時に各 ノードに直接アクセスして操作する場合には、必要に応じて更に Elastic IP を Allocate してください。
4.3 各インスタンスの設定
(1) Amazon EC2 API Tools のインストール
VPC および EC2 の各種操作をインスタンス上から行えるようにするため、各インスタ ンスに Amazon EC2 API Tools をインストールします。インストール先は任意ですが、 本ドキュメントは/opt/aws 以下にインストールしています。
(2) 追加した ENI を認識させる
インスタンスに複数の ENI を Attach した場合、OS 上ではプライマリ・インターフェー スのみが認識されており、セカンダリ以降のインターフェースは手動で認識させる必 要があります。セカンダリインターフェース用の ifcfg ファイルを作成し、インター フェースを起動します。
(3) 疎通確認
各インスタンスから、互いの両インターフェースに対し疎通確認を行います。疎通が 取れない場合には、OS のルーティング設定または VPC の Route Table、 Network ACL、 および Security Group が適切に構成されているかどうか確認してください。
(4) SELinux を無効化する
LifeKeeper は、SELinux の permissive および enforcing モードをサポートしてい ません。/etc/sysconfig/selinux ファイルを編集し、SELinux の設定を disabled に してください。
(5) GUI 接続の準備
LifeKeeper GUI 画面を利用するためには、SSH の X フォワーディング機能を利用し ます。LifeKeeper GUI 画面を起動するクライアント上に X Window System 環境を 用意してください。
5
LifeKeeper による HA クラスタの構築
5.1 LifeKeeper のインストール
(1) イメージファイルの転送 SCP などのユーティリティを使い、LifeKeeper のインストールイメージを EC2 イン スタンス上に転送します。 (2) LifeKeeper のインストール 各インスタンスに、LifeKeeper をインストールします。インストールの手順につきま しては、LifeKeeper for Linux v9.1.0 スタートアップガイドを参照してください。 セットアップが完了しましたら、LifeKeeper を起動します。 # lkstart (3) LifeKeeper GUI 管理画面へのアクセス SSH コンソール上で以下のコマンドを実行し、クライアントコンピュータ上で LifeKeeper GUI 管理画面を開きます。 # lkGUIapp (4) コミュニケーションパスの作成 コミュニケーションパスを作成します。コミュニケーションパスは少なくとも2つ作 成してください。コミュニケーションパスの作成方法については、LifeKeeper for Linux v9.1.0 スタートアップガイド 「コミュニケーションパスの作成」項目を参照 してください。5.2 リソース階層の作成
(1) Apache リソースの作成 1. Apache リソースの作成スを作成します。リソース作成ウィザードで入力するプロパティは以下の通りです。 Select Recovery Kits Apache Web Server
Switchback Type Intelligent(手動) または Automatic(自動)
server プライマリノードを選択
Web server Binary Location httpd Apache Web Server デーモンのフルパス 名を選択(デフォルト:/user/sbin/httpd) Web server Root Directory Apache Web Server のルートディレクトリをフ
ルパスで入力
Root Tag 任意のリソースタグ名
2. Apache リソースの拡張
LifeKeeper GUI 管理画面より Create Resource Hierarchy オプションが完了すると 自動的に開始されます。リソース拡張ウィザードで入力するプロパティは以下の通り です。
Target Server セカンダリノードを選択
Switchback Type Intelligent(手動) または Automatic(自動)
Server プライマリノードを選択 Template Priority テンプレートの優先順位を選択または入力 (デフォルト:1) Target Priority ターゲットの優先順位を選択または入力 (デフォルト:10) Root Tag 任意のリソースタグ名 (2) EC2 リソースの作成 1. リソース階層の作成
LifeKeeper GUI 管理画面より Create Resource Hierarchy を選択し、EC2 リソー スを作成します。リソース作成ウィザードで入力するプロパティは以下の通りです。 Select Recovery Kits Amazon EC2
Switchback Type Intelligent(手動) または Automatic(自動)
Server プライマリノードを選択
EC2 HOME EC2_HOME ディレクトリパスを選択
(デフォルト:/opt/aws)
EC2 URL EC2_URL を選択するか、入力(EC2_URL は
の URL)
AWS Access Key AWS のアクセスキーを入力(AWS Tools が ユーザの識別に使用するアクセスキーID) AWS Security Key AWS のセキュリティキーを入力(AWS のセ
キュリティキーは秘密キー) EC2 Resource type EC2 タイプを選択
Elastic IP
Network Interface Elastic IP に関連付けるネットワークインター フェースを選択
Elastic IP
ec2-describe-addresses Ecs API を使用し て取得した Elastic IP のうち、選択した ENI にアサインするものを選ぶ
EC2 Resource Tag EC2 のタグ名を設定
(デフォルト:ec2-<resource>)
2. リソースの拡張
作成したリソース階層をスタンバイノードに拡張します。リソース拡張ウィザードで 入力するプロパティは以下の通りです。
Switchback Type Intelligent(手動) または Automatic(自動) Template Priority テンプレートの優先順位を選択または入力
(範囲:1~999)
Target Priority ターゲットの優先順位を選択または入力 (範囲:1~999)
EC2 Resource Tag EC2 のタグ名を設定
(デフォルト:ec2-<resource>)
(3) リソース間の依存関係の構築
LifeKeeper GUI 管理画面より、Create Dependency を 選択し、(1)で作成した Apache リソースと、(2)で作成し た EC2 リソースとの間に依存関係を作成します。
右 図 の よ う に 、 Parent Resource( 親 リ ソ ー ス ) が Apache リ ソ ー ス 、 Child Resource(子リソース)が EC2 リソースとなるように設定してください。この設定に より Apache リソースが起動する前に Elastic IP の切り替えが行われるようになりま す。
6
参考資料
LifeKeeper UserSite http://lk.sios.com/
LifeKeeper for Linux 9.1.0 スタートアップガイド http://lk.sios.com/?p=5403
Apache Recovery Kit 管理ガイド
http://jpdocs.us.sios.com/Linux/9.1/LK4L/Apache/index.htm Recovery Kit for EC2 管理ガイド
http://jpdocs.us.sios.com/Linux/9.1/LK4L/EC2/index.htm SIOS Technical Documentation
http://jpdocs.us.sios.com/
Amazon Elastic Compute Cloud API Reference
http://docs.aws.amazon.com/AWSEC2/latest/APIReference AWS Simple Icons