share facebook facebook2 twitter menu hatena pocket slack

2015.06.23 TUE

Serfで実装するHigh Availability NAT (EIP付け替えパターン)

佐藤 裕行

WRITTEN BY佐藤 裕行

Serfによる冗長化

前に実装したSerf冗長化ですが、EIPを付け替える要望がありましたので、
スクリプトを実装しました。

Serfで実装するHigh Availability NAT

構成図

ha-nat-eip

実装

実装方法は前と替りませんが、スクリプトが変更になります。

https://github.com/SatoHiroyuki/ha-nat-script/blob/master/ha-nat-eip

実行方法

ha-nat-eip -R [変更するRouteTableのTagName] -E [Allocation-id] -N 0.0.0.0/0 -r ap-northeast-1

Serf.confもハンドラーのスクリプトを変更する

{
  "node_name": "nat1",
  "enable_syslog": true,
  "tags": {
    "role": "nat"
  },
  "reconnect_interval": "4s",←疎通間隔は4秒
  "reconnect_timeout": "12s",←タイムアウト検知12秒
  "tombstone_timeout": "12s",←タイムアウト検知12秒
  "event_handlers": [
    "member-join=ha-nat-eip -R [変更するRouteTableのTagName] -E [Allocation-id] -N 0.0.0.0/0 -r ap-northeast-1 >> /var/log/ha-nat.log 2>&1"
  ]
}

障害試験

Active側に障害が発生した場合は、約12秒で切り替わりが行われます。

元記事はこちら

Serfで実装するHigh Availability NAT (EIP付け替えパターン)

佐藤 裕行

佐藤 裕行

元NIerの通称砂糖です。AWSのネットワークまわりには詳しいです。現在は構築チームに所属し、多忙な日々を過ごしています。