0
0

More than 1 year has passed since last update.

DataSpider Servista を AWS 上で冗長化してみた

Last updated at Posted at 2023-09-10

はじめに

DataSpider Servista(以降 DataSpider) を AWS 上で冗長化(クラスタを構築)する手順を紹介します。
クラスタソフトを利用した構築方法もありますが、今回はお手軽に AWS の機能を利用して自前で構築してみました。
クラスタソフトの動作検証レポートなどは(株)セゾン情報システムの HP より取得可能です。
https://www.hulft.com/partner/collaboration/lk_for_linux_report

また、DataSpider のクラスタ構成ガイド(※)では下記のパターンを案内しています。

  • 共有ディスクに DataSpider をインストールする
  • 各ノードに DataSpider をインストールし、設定情報を同期する

今回は、共有ディスクにインストールするパターンで構築を行います。

※クラスタ構成ガイドは myHULFTでダウンロードできます。

構成

構成図
image.png

今回は、EFS を使って DataSpider をインストールする共有ディスクを実装し、NLB を使って稼働系のインスタンスへのルーティングを実現しています。
リポジトリ DB の冗長化は RDS のマルチ AZ を利用しました。

※今回の実装では、コストを下げるため、NAT gateway を片方の AZ のみ作成、RDS もマルチ AZ にはしませんでした。

やってみた

VPC、サブネットの作成

VPC の作成から、作成するリソースで「VPC など」を指定するから以下の内容で作成

任意の名前タグを入力
アベイラビリティゾーン (AZ) の数:2
パブリックサブネットの数:2
プライベートサブネットの数:2
NAT ゲートウェイ:1 AZ 内

プレビューはこんな感じです。

image.png

各種リソース作成

EFS 作成

EFS でファイルシステムを作成から以下の内容(全般、パフォーマンスともにデフォルト設定)で作成
image.png

image.png

セキュリティグループはEFSように新規作成。(インバウンドルールは後ほど設定)
ファイルシステムポリシーはデフォルト設定。

インスタンス(node1)を作成

OS:Amazon Linux 2
インスタンスタイプ:t3.small (DataSpider の最小構成がメモリ 2G のため)
キーペア:

ネットワークの設定で
 VPC:今回作成した VPC
 サブネット:今回作成したプライベートサブネットの 1a
 セキュリティグループ:今回作成したプライベートサブネット 1a 用のセキュリティグループ

ストレージを設定でEFSの接続を追加
image.png

高度なオプションで
 IAM インスタンスプロフィールでフリートマネージャで接続できるようにするためのロールを追加
 ※こちら のステップ1を参照して下さい。

RDS 作成

データベースを作成から以下の設定で作成(それ以外はデフォルト)
 エンジンは PostgreSQL
 エンジンバージョンはリポジトリ DB に対応している 13 を指定
 テンプレートは「無料利用枠」
 マスターパスワードを入力

 接続の設定は以下の通り
image.png

 

DataSpider のインストール

必要なリソースがそろったので、クラスタノードの片方を作成します。

セッションマネージャでインスタンスに接続し、インストール先である EFS がマウントできているか確認します。
image.png

インストーラとライセンスファイルは myHULFT で評価版をダウンロードすることが可能です。
また、インストールの際にリポジトリ DB の設定も行うため、jdbc ドライバーもダウンロードしておきます。
(ダウンロードした各種ファイルは S3 経由でインスタンスにコピーしました。)

インストール実施
リポジトリDBの設定やライセンスファイルの指定を行い
image.png
無事インストール完了

DataSpider の起動に fontconfig が必要なため、
yum install fontconfig
を実施して、インスタンスの再起動を行います。
image.png
無事 DataSpider の起動に成功!

ロードバランサー作成

しかし、まだ DataSpider のクライアントツールで接続することができません。
DataSpider が稼働しているプライベートなサブネットにアクセスするため、NLB を作成します。

ロードバランサーの作成から Network Load Balancer を作成
ロードバランサー名を入力
スキームはインターネット向け

ネットワークマッピングは以下を指定
 VPC は今回作成した VPC
 マッピングでは各 AZ のパブリックサブネットを指定

セキュリティグループは新規作成して指定
 マイIPからのHTTP通信のインバウンドを許可
image.png

リスナーとルーティング
 プロトコル TCP ポート 80

また、ターゲットグループを以下の通り新規作成します。
image.png

今回作成したインスタンスを指定して、ターゲットに含めてターゲットグループを作成
image.png

新規作成したターゲットグループを指定して、NLBを作成
image.png

最後に、作成したNLBからのTCP7700 のインバウンドを許可するため、インスタンスのセキュリティグループを編集します。
image.png

これで、NLB の DNS にアクセスすると、インスタンスに接続することができました。
image.png

クラスタ構築

DataSpider 自動起動の設定

DataSpider を起動してクライアントツールでアクセスすることができましたが、このままでは、ノードを切り替えるたびに DataSpider の起動を行わなくてはならず、手間と時間がかかってしまいます。
インスタンス起動で自動で DataSpider が起動するように設定を行います。
https://qiita.com/fk_2000/items/da60be70dcd3c2bc1319
こちらを参考にして登録。
DataSpider の起動を、マウントを待ってから実施する必要があるので以下の通り設定を修正しています。

# DataSpider Server

[Unit]
Description=DataSpider Server
RequiresMountsFor=/usr/local/dataspider

[Service]
ExecStart=/usr/local/dataspider/server/bin/DataSpiderServer
ExecStop=/usr/local/dataspider/server/bin/Shutdown

[Install]
WantedBy=multi-user.target

インスタンス(node2)を作成

node1 が完成したので、待機系の node2 を作成していきます。
node1 のインスタンスのイメージを取得し、その AMI からインスタンスを起動します。
インスタンスタイプは node1 と同じです。
作成するさいは node1 を停止して作成します。

ネットワーク設定は以下の通り。
image.png
image.png

注意点としては
・node1 と異なるサブネット(1c)に配置
・セキュリティグループは RDS 接続用、EFS 接続用のセキュリティグループを追加
・NLB からのアクセスを許容するセキュリティグループを新規で作成してい追加

node2 側でも DataSpider の起動成功
image.png

ターゲットグループに node2 を追加

node2 をターゲットグループに追加
image.png
これで NLB の DNS にアクセスすると、node2 に接続することができました。
image.png
(node1 で作成していたプロジェクトも確認できました)

動作確認

現在 node2 が起動している状態です。
image.png

node2 を停止して node1 を起動します。
image.png

ロードバランサーにアクセスすることで node1 に接続できました。
image.png

おわりに

今回は AWS のサービスを使ってお手軽に、共有ディスクに DataSpider をインストールする方式のクラスター構成を実装してみました。

次のステップとしては、ターゲットグループのヘルスチェックの結果をもとに、自動でフェイルオーバーする仕組みを で実装してみたいと思います。

各ノードに DataSpider をインストールし、設定情報を同期する構成については、お手軽実装は難しいと思います。ディスク同期のためにクラスタ構成のためのクラスタソフトが必要となります。
LifeKeeper を使用した動作検証レポートも提供されていますので、そちらもご確認いただければと思います。
https://www.hulft.com/partner/collaboration/lk_for_linux_report

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0