サイト内の現在位置を表示しています。

Amazon Time Sync Serviceを利用したHAクラスターの構築を試してみました (Windows/Linux)

CLUSTERPRO オフィシャルブログ ~クラブロ~

はじめに

Amazon Web Services(以降、AWS)において、Amazon Time Sync Serviceを利用したHAクラスターの構築を試してみました。
Amazon Time Sync Serviceとは2017年11月に新しくリリースされたサービスの一つで、非常に正確で信頼性の高い時間同期サービスです。
本サービスを使用することでインターネットのアクセスや自前でNTPサーバーの用意をすることなく時刻参照ができるといったメリットがあります。

今回はAmazon Time Sync Serviceを利用して、HAクラスター内のインスタンス(サーバー)の時刻を同期させたHAクラスターを構築します。

この記事の内容

1. Amazon Time Sync Service

Amazon Time Sync Service は、非常に正確で信頼性の高い時間同期サービスです。
VPC構成を変更することなく設定が可能で、また利用には追加料金がかかりません。

これまでVPC内のインスタンスがNTPサーバーを参照する場合、インターネットを経由して外部のNTPサーバーを参照する方法やVPNやDirect ConnectでVPCとオンプレミス環境を接続し、オンプレミス環境に用意した自前のNTPサーバーを参照する方法がありました。

Amazon Time Sync Serviceを利用すると下記のようにインターネットを経由しない、また自前のNTPサーバーを用意しないでインスタンスの時刻を同期させることができます。

Amazon Time Sync Serviceを参照する構成

Amazon Time Sync Serviceの利用構成

2. HAクラスター構成

HAクラスター構成は2ノードのミラーディスク型で、AWS仮想IPリソースを用いた「VIP制御によるHAクラスター」です。

HAクラスター構成

上記の構成では、AWS内のAmazon Time Sync Service(リンクローカルアドレス:169.254.169.123)をNTPの参照先に指定して、インスタンスの時刻を同期させます。
以降、インスタンスにはAWS CLIのインストール、リージョンの設定、セキュリティキーの設定、ネットワークの設定が完了していることを前提とします。

3. HAクラスター構築手順

3.1 HAクラスター構築の事前準備

事前にVPCを作成します。VPCの構成は以下のとおりです。

  • VPC(VPC ID:vpc-1234abcd)
  • CIDR:10.0.0.0/16
  • Subnets
  • Subnet-1a (サブネット ID:sub-1111aaaa):10.0.10.0/24
  • Subnet-2a (サブネット ID:sub-2222aaaa):10.0.110.0/24
  • Subnet-1c (サブネット ID:sub-1111cccc):10.0.20.0/24
  • Subnet-2c (サブネット ID:sub-2222cccc):10.0.120.0/24

  • RouteTables
  • Main (ルートテーブル ID:rtb-00000001)
  • >10.0.0.0/16 → local
  • >0.0.0.0/0 → igw-1234abcd (Internet Gateway)
  • >20.0.0.100/32 → eni-1234abcd (ENI ID)
  • Route-A (ルートテーブル ID:rtb-0000000a)
  • >10.0.0.0/16 → local
  • >0.0.0.0/0 → nat-1234abcd(NAT1)
  • >20.0.0.100/32 → eni-1234abcd (ENI ID)
  • Route-C (ルートテーブル ID:rtb-0000000c)
  • >10.0.0.0/16 → local
  • >0.0.0.0/0 → nat-5678efgh(NAT2)
  • >20.0.0.100/32 → eni-1234abcd (ENI ID)

VPC

3.2 Amazon Time Sync Serviceの設定

各インスタンスに対してAmazon Time Sync Serviceを利用する設定を行います。
Amazon Time Sync Serviceを設定するコマンドはWindowsとLinuxで異なります。

Windows/Linuxそれぞれで検証実績がありますが、今回はLinuxの手順を記載します。
Windowsの手順については以下を参考にしてください。

上記、AWSのガイドでは、Amazon Time Sync Serviceを利用した時刻同期にchronyを使用します。
ガイドに従って、NTPサービスをアンインストールして、chronyパッケージをインストールします。

3.2.1 NTPサービスのアンインストール

下記のコマンドを実行して、NTPサービスをアンインストールします。

# yum erase ntp*

3.2.2 chronyのインストール

chronyをインストールします。

# yum install chrony

3.2.3 /etc/chrony.conf ファイルの編集

下記のコマンドを実行して、/etc/chrony.conf ファイルに「server 169.254.169.123 prefer iburst」という行が記載されていることを確認します。
記載がない場合は、「server 169.254.169.123 prefer iburst」を他のserver or poolステートメントの後に追記し保存します。
今回はAmazon Time Sync Serviceを利用していることを明確にするため、追記後、他のserver または poolステートメントをコメントアウト(または削除)します。

# vi /etc/chrony.conf

3.2.4 chronyの開始

下記のコマンドを実行して、chronyを開始します。

# service chronyd start

3.2.5 時刻同期の確認

下記のコマンドを実行して、「169.254.169.123」を利用して時刻を同期しているかを確認します。

# chronyc sources -v
210 Number of sources = 1 .

-- Source mode '^' = server, '=' = peer, '#' = local clock.
/ .- Source state '*' = current synced, '+' = combined , '-' = not combined,
| /  '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
||                                                .- xxxx [ yyyy ] +/- zzzz
||   Reachability register (octal) -.             | xxxx = adjusted offset,
||   Log2(Polling interval) --.      |            | yyyy = measured offset,
||                             \     |            | zzzz = estimated error.
||                              |    |             \
MS Name/IP address      Stratum Poll Reach LastRx  Last sample
===============================================================================
^* 169.254.169.123            3    7   377     72  -20us[ -28us] +/- 1066us

3.3 VIP制御によるHAクラスターの作成

「VIP制御によるHAクラスター」を作成します。CLUSTERPROの構成は以下のとおりです。CLUSTERPROのフェールオーバーグループには「AWS仮想IPリソース」と「ミラーディスクリソース」のみを登録します。
以下はHAクラスターを構成するインスタンスにLinuxを用いた場合のCLUSTERPROの構成例です。

  • CLUSTERPRO
  • フェールオーバーグループ (failover)
  • AWS仮想IPリソース
  • >IPアドレス:20.0.0.100
  • ミラーディスクリソース
  • >データパーティション:/dev/xvdb2
  • >クラスターパーティション:/dev/xvdb1

【参考】

4. 動作確認

WebManagerを使用して、フェールオーバーグループが正常に起動できることを確認します。 アラートビューを確認し、フェールオーバーグループの起動時刻が同期した時刻になっていることを確認します。

さいごに

今回はAmazon Time Sync Serviceを利用して、各インスタンスの時刻を同期させたHAクラスターの構築手順をご紹介しました。
Amazon Time Sync Serviceを利用することで、VPC内のインスタンスの時刻同期においてインターネットへのアクセスや自前のNTPサーバーの用意が不要なHAクラスターが構築可能となることを確認できました。
HAクラスターの構築に関する疑問点や気になる点などがございましたら後述の窓口までお問い合わせください。

お問い合わせ

本記事に関するお問い合わせは、popupお問い合わせ窓口までお問い合わせください。