手順書作成の手助けに、NATフェイルオーバ構築手順をまとめました。
OSはCentos6.5.1で、利用したAMIはsuz-lab_centos-core-6.5.1になります。
参考URL:
①.natサーバを構築する。
①-1 IAM roleを作成しLaunch時に付与する(route tableをFO時に経路変更する用)
注意:IAM roleを作成してEC2に付与する際に以下のIAM権限を付けて行いました。
(policy templateのPower User Accessのみでは作成・付与出来ません)
AddRoleToInstanceProfileCreateInstanceProfileCreateRoleDeleteInstanceProfileDeleteRoleDeleteRolePolicyGetInstanceProfileGetRoleGetRolePolicyListInstanceProfilesForRoleListRolePoliciesListRolesPassRolePutRolePolicyRemoveRoleFromInstanceProfile
①-1-1 IAM role作成
①-1-2 IAM roleをEC2に付与する。launch時にしか付与出来ないので注意が必要です。
①-2 natサーバを構築する
以下ブログの手順そのままでバッチリ構築出来ます。
②corosyncとpacemakerをyumインストール
# yum -y install corosync
# yum -y install pacemaker
|
③crmコマンドをyumインストール。リポジトリが無いので取得してからになります。
cd /etc/yum.repos.d/
curl -L -o ha-clustering.repo “http://download.opensuse.org/repositories/network:/ha-clustering:/Stable/CentOS_CentOS-6/network:ha-clustering:Stable.repo”
yum install crmsh.x86_64
|
④corosyncのコンフィグファイルを編集する。
赤文字・青文字は環境に合わせて変更します。”bindnetaddr”には自身のIPアドレスを設定します。
# vi /etc/corosync/corosync.conf
|
⑤AWS SDK PHP ver.1の実行環境をインストールする(php,pear,AWS SDK PHP ver.1)。
natフェイルオーバの過去実績の高いphpスクリプトを活用する為にver.2では無くver.1をインストールします。インストールにpearが必要になるので、pearもインストールします。
⑤-1 yum -y install phpを実行するとyumでエラーが発生するので、まず
# yum clean all
# yum update atomic-release
|
を実行します。
⑤-2 yum update atomic-release実行するとさらにエラーが発生するので、さらに
# yum remove atomic-release.noarch
# rpm -ivh http://www6.atomicorp.com/channels/atomic/centos/6/i386/RPMS/atomic-release-1.0-19.el6.art.noarch.rpm
|
を実行します。
⑤-3 php,pearをインストールします。
# yum -y install php
# yum -y install php-pear
|
⑤-4 AWS SDK PHP ver.1をインストールします。
# cd /opt
# curl -s http://getcomposer.org/installer | php
# vi composer.json
# php composer.phar install # pear channel-discover pear.amazonwebservices.com
# pear install aws/sdk-1.6.2
|
⑤-5 AWS SDK PHP ver.1を分かりやすい場所に移動します。
# mkdir /opt/aws/php
# mv /usr/share/pear/AWSSDKforPHP /opt/aws/php/default
|
⑥フェールオーバ処理スクリプトを作成する。
⑥-1 フェイルオーバ用のサービスを作成・登録する(実行権限付与、サービス登録も忘れずに)。赤文字のreplace-natは次の手順で作成します。
# vi /etc/init.d/igw
# chmod 755 /etc/init.d/igw # chkconfig –add igw
# chkconfig igw on
|
⑥-2 FO時にルートテーブルのエントリを書き換えて経路変更させるスクリプを作成する(前述/etc/init.d/igwからコールされます)。実行権限の付与も忘れずに。AWSアクセスキー、シークレットアクセスキーは今回IAM roleを使用しますのでコーディング不要になります。
# mkdir /opt/aws
# mkdir /opt/aws/bin
# vi /opt/aws/bin/replace-nat
# chmod 755 /opt/aws/bin/replace-nat
|
⑦corosyncを起動させる(自動起動もONにしておきます)。
/etc/init.d/corosync restart
chkconfig corosync on
|
⑧crmコマンドでフェイルオーバ設定
crm configure property no-quorum-policy=”ignore” stonith-enabled=”false”
crm configure rsc_defaults resource-stickiness=”INFINITY” migration-threshold=”1″
crm configure primitive iptables lsb:iptables op start interval=”0s” timeout=”60s” op monitor interval=”10s” timeout=”30s” op stop interval=”0s” timeout=”60s”
crm configure primitive igw lsb:igw
crm configure group igw-group igw iptables
|
⑨AMIコピーを取得し、そこからIAMroleを付与して2系をlaunchして/etc/corosync/corosync.confのIPアドレスを自身のIPアドレスに換えれて使用すれば完成です。
元記事は、こちら