CLUSTERPRO DでElastic IPを用いたHAクラスタを組んでみる

記事タイトルとURLをコピーする

こんにちは、技術2課の紅林です。

突然ですが、トランプは全部で52枚あります。なぜトランプが52枚なのか、ご存知でしょうか。

実は1年間が52週あることから、トランプが全部で52枚になっています。さらに、トランプは1つのマークで数字が1から13あり、これが4種類あります。この数字を全て足すと364になり、これのジョーカーを加えた365が1年の日数を示しているのです。そしてもう1枚のジョーカー(エキストラジョーカー)はうるう年に対応しています。以上、豆知識です。

さて、今回はCLUSTERPRO Dで、Elastic IP(以下、EIP)を用いたクラスタを組む手順をご紹介します。

はじめに

以前に記事でもご紹介したように、CLUSTERPRO DではRoute 53を用いたクラスタを組む方法が標準で提供されています。しかし、現時点(2016年3月)では、CLUSTERPRO DからはAWS上でクラスタを構築する際のリソースとしては、Route 53を用いた方法のみしか提供されておらず、Route 53を使用することが出来ない環境等でクラスタを提供するには、別の方法を採用する必要があります。

今回は、EIPを用いてクラスタを組む方法をご紹介します。

CLUSTERPRO DにおけるEIPを用いたクラスタについて

簡単なイメージ図を以下に示します。アクティブになるノードでEIPをアタッチするような処理を行います。

CLUSTERPRO-EIP

 

さて、前述した通り、CLUSTERPRO Dでは現時点でEIPを扱うリソースが提供されていないため、今回はCLUSTERPRO Dの汎用リソースを用います。汎用リソースとはノードがアクティブ/スタンバイになるタイミング等で任意のスクリプトを実行できるリソースです。

スクリプトの形式としては、Windowsではバッチファイルのみ対応しています。このスクリプト内でノードがアクティブになる際にEIPをアタッチする処理を記載することで、EIPによるクラスタを実現します。

手順

前提条件

  • CLUSTERPRO Dによるクラスタが構築出来ていること(本記事参照。Route 53によるリソースは作成されている必要は無い)
  • クラスタへのアクセスに用いるEIPを割り当て済であること
  • クラスタを構成するノード(EC2インスタンス)にIAMInstanceProfileが付与されていること(割り当てられていない場合、後述のスクリプト内でクレデンシャルを読み込む処理を記載すること)

IAMロールのサンプル

{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt145734xxxxxxx",
"Effect": "Allow",
"Action": [
"ec2:AssociateAddress"
],
"Resource": [
"*"
]
}
]
}

手順

1.EIPを関連付けるスクリプトを準備する

クラスタが切り替わった際にアクティブになるノードにEIPを関連付けるスクリプトを準備します。両方のノードに以下のスクリプトを準備します。

C:test.ps1

$instance_id = Invoke-RestMethod -uri http://169.254.169.254/latest/meta-data/instance-id/
$eniid = "eipalloc-xxxxx"


aws ec2 associate-address --region=ap-northeast-1 --instance-id $instance_id --allocation-id $eniid

2.汎用リソースを作成する

CLUSTERPRO DのWebマネージャにアクセスし、TOP画面で「リソースグループを作成する」を押下します。

 

SnapCrab_NoName_2016-3-6_20-36-44_No-00

 

「リソースを追加」ボタンを押下し、「汎用リソース」を選択し、「次へ」を押下します。

 

SnapCrab_NoName_2016-3-6_20-45-10_No-00

 

「リソース固有設定」タブを選択し、「開始スクリプト」タブを選択し、テキストエリア内のスクリプトを編集し、「次へ」を押下します。

追記した部分を青字で示します。

@echo off powershell C:test.ps1 exit /b 0

SnapCrab_NoName_2016-3-6_20-45-50_No-00

 

「リソースグループ名」に適当な名前を入力し、「完了」を押下します。以上で、汎用リソースの作成は完了です。

 

SnapCrab_NoName_2016-3-6_20-46-7_No-00

3.手動フェイルオーバによる動作確認

作成した汎用リソースで、クラスタが切り替わることを確認します。マネジメントコンソールで確認すると、現在、「1」のノードにEIPが関連付けられています。

 

SnapCrab_NoName_2016-3-6_20-49-46_No-00 - コピー2

 

CLUSTERPROのTOP画面から、「運用管理」画面に進み、作成したリソースグループを選択し、「移動」からスタンバイ側のノードを押下します。

 

SnapCrab_NoName_2016-3-6_20-49-8_No-00

 

再び、マネコメントコンソールで確認すると、EIPが「2」に関連付け直されていることが分かります。

 

SnapCrab_NoName_2016-3-6_20-50-4_No-00 - コピー2

 

おわりに

今回、CLUSTERPRO DでEIPを用いたクラスタを構成する手順をご紹介しました。

AWS上でのHA構成については、CLUSTERPRO Solution Awardを受賞しているサーバーワークスに是非お問合せください!