AWS上にマルチAZのNLBを用意し、
FTPサーバ(パッシブモード)をNLBで冗長化できるか検証してみました。
クロスゾーン負荷分散を有効にしたときと無効にしたときの挙動を確認します。
クライアントからのアクセスは今回NLBのipあてに行います。
https://dev.classmethod.jp/articles/cross-zone-load-balancing-for-nlb/
■構成
サーバ:EC2(Amazon Linux2)×2台
FTPソフト:vsftpd
■構成図
1号機ip:10.1.1.225
2号機ip:10.1.1.70
NLB ip:10.1.1.242
■1.vsftpdの設定と起動
1,2号機にて以下コマンドでvsftpdを起動までする。
yum install vsftpd
cd /etc/vsftpd/
cp -ip vsftpd.conf vsftpd.conf_$(date +%Y%m%d)
vi vsftpd.conf ★参考にしてください。 https://it.fan-ria.com/2024-07-30-418/
touch /etc/vsftpd/chroot_list
chown root:root /etc/vsftpd/chroot_list
chmod 644 /etc/vsftpd/chroot_list
useradd user001
passwd user001
systemctl start vsftpd
■2.NLBの設定(クロスゾーン負荷分散無効)
最初はクロスゾーン負荷分散を無効にして動作確認してみます。
■3.クライアントの設定
touch test.txt
yum install lftp
■4.クライアントからftpで送信
以下コマンドを繰り返し/home/user001/にtest.txtがftpされていることを確認する。
lftp -u user001 ftp://10.1.1.242
put test.txt
bye
■5.片系を停止してクライアントからftpで送信
NLBが属している側のEC2を停止。
以下コマンドを実行し/home/user001/にtest.txtがftpされていることを確認する。
lftp -u user001 ftp://10.1.1.242
put test.txt
bye
ftpにてip指定だと送れないことが確認できた。
ftpにてDNS名指定だと送れることが確認できた。(当然すね)
■6.NLBの設定(クロスゾーン負荷分散有効)
クロスゾーン負荷分散を有効にしました。
以下コマンドを実行し/home/user001/にtest.txtがftpされていることを確認する。
lftp -u user001 ftp://10.1.1.242
put test.txt
bye
クロスゾーンを有効にすると、
EC2が停止しているAZのNLBのip指定でも、
もう片方のAZのEC2にFTPで送れることが確認できた。
■まとめ
クロスゾーン負荷分散を有効にすることで、
NLBの片側AZのipを指定しても、うしろのEC2に負荷分散されることができた。
逆に、クロスゾーン負荷分散無効だと、NLBが属するAZにいるEC2が停止したら、
もう片方のAZにいるEC2には通信がいかない。
以上。