方針、戦略(と、途中での紆余曲折)†
- そもそも AWS のリザーブドインスタンス(3年契約)の有効期限なので更新を計画
- なので Ubuntu 16.04(現状)→ 18.04 への更新、EBS サイズ(現状 128G) の縮小などは今回は実施しない当初方針
- EC2 の仕様を比較すると、3年前の t2.small は現在の t2.micro と性能的に同じだった
- 新規に3年前払いで t2.micro インスタンスを購入し、既存サーバーの置き換え作業を開始
- ところが リザーブドインスタンスというのはインスタンスの使用権であってインスタンス自体とは別 である事が判明
- 実行中の インスタンスと同じリザーブドインスタンスがある場合 費用がそちらに振り返られる仕組み
- なのでリザーブドインスタンスを購入しても、起動可能なインスタンスのリストには出てこない
- リザーブドインスタンスには有効期限があり該当インスタンスを実行していなくても権利は時間と共に減っていく仕組み
- なのでリザーブドインスタンスと同じタイプ(グレード)のインスタンスを実行しないと全くの無駄になる
- 未使用のリザーブドインスタンスを売ることができるが、米国内銀行に口座を持っていないと返金を受け取れない
- 今回先走って追加購入(次項)したインスタンスには既存サーバーを移行する事は出来ないと判明(トライした経緯は下記)
- 現状環境の継続利用には、t2.small リザーブドインスタンスを別に購入する必要がある ・・・・ が、流石にそれは馬鹿だろう
新戦略†
- まず、急ぐ必要はない(リザーブドインスタンスが切れても、インスタンスは止まらない)が
- t2.micro のリザーブドインスタンスの購入(済)
- t2.micrro インスタンス(本番サーバー置き換え用)を作成
- メールサーバー環境の構築(仮 IP、仮 証明書)
- 旧サーバーインスタンスを停止
- データ移行用インスタンスを起動
- EBS新旧を移行用サーバーにマウントしメールサーバーのデータをオフライン移行
- ELASTIC IP 付け替え、証明書移行 to 新サーバーインスタンス
- 新サーバー稼働、テスト
- 移行用サーバーインスタンスの停止
- 経過観察後、問題なければ旧サーバーインスタンスの停止
AWS 側の設定†
リザーブドインスタンスのダウングレード購入†
リザーブドインスタンス ID = 1f08ed93-6d03-45c0-8408-130000a5135a
- t2.micro (前回は t2.small だったが、性能的には同等なので実質値下げ)
- t2.micro (@2020) = 1コア vCPU (最大 3.3 GHz)、1 GiB メモリ RAM、ストレージは EBS のみ
- t2.small (@2017) = 1コア vCPU (最大 3.3 GHz)、1 GiB メモリ RAM、128GB ストレージ
- 36ヶ月、全額前払い、スタンダード(コンバーティブルでない) で購入
- $172 (前回は $395 だった)

t2.micro インスタンスの新規作成†
インスタンスへの接続(暫定 Elastic IP ベース)†
サーバー設定†
メールサーバー環境(virtual mailbox 対応)の構築†
- Postfix: sends and receives mail via the SMTP protocol.
- Dovecot: a POP/IMAP server. It also handles user authentication.
- Postgrey: greylists incoming mail ← これは使わない(遅延が問題になる)
- amavisd-new: a manager for organizing various antivirus and spam checking content filters.
- Clam AntiVirus: a virus detection suite.
- SpamAssassin: for sniffing out spam in emails.
- Postfix Admin: a web front end for administering mail users and domains.
- Roundcube: a webmail interface for users.
- mysql
- root pass = mysql_admin
- mail pass = mail_password
- pass = h77mailpass
- config.local.php の編集でハマった。ファイルの場所は /var/www/html に予めある。/var/www/html/postfixadmin に作ってはダメ。
- 管理者
- DomainKeys Identified Mail (DKIM) 設定
- 後で DNS に登録する dkim.txt レコード (改行なし、但し登録時の文字数制限があり、途中で "" で分割している、途中にスペースは入れない)
- localに(= 仮設の mail2.hmuna.com サーバー内で)メール転送を行ったところ clamAV に接続出来ないというエラー
Sep 18 07:55:42 ip-172-31-22-209 amavis[1625]: (01625-01) (!)connect to /var/run/clamav/clamd.ctl failed, attempt #1: Can't connect to a UNIX socket /var/run/clamav/clamd.ctl: No such file or directory
Sep 18 07:55:42 ip-172-31-22-209 amavis[1625]: (01625-01) (!)ClamAV-clamd: All attempts (1) failed connecting to /var/run/clamav/clamd.ctl, retrying (2)
Sep 18 07:55:48 ip-172-31-22-209 amavis[1625]: (01625-01) (!)connect to /var/run/clamav/clamd.ctl failed, attempt #1: Can't connect to a UNIX socket /var/run/clamav/clamd.ctl: No such file or directory
Sep 18 07:55:48 ip-172-31-22-209 amavis[1625]: (01625-01) (!)ClamAV-clamd av-scanner FAILED: run_av error: Too many retries to talk to /var/run/clamav/clamd.ctl (All attempts (1) failed connecting to /var/run/clamav/clamd.ctl) at (eval 113) line 659.\n
Sep 18 07:55:48 ip-172-31-22-209 amavis[1625]: (01625-01) (!)WARN: all primary virus scanners failed, considering backups
Sep 18 07:56:13 ip-172-31-22-209 amavis[1625]: (01625-01) (!)ClamAV-clamscan av-scanner FAILED: /usr/bin/clamscan KILLED, signal 9 (0009) at (eval 113) line 950.
Sep 18 07:56:13 ip-172-31-22-209 amavis[1625]: (01625-01) (!!)AV: ALL VIRUS SCANNERS FAILED
clamav がメモリーを喰い潰す問題(は、程度の差こそあれ t2.small でも発生)†
- 一日に一回程度 メモリー枯渇でシステムが死にそうになっている事が判明 → 重大欠点なので対策要
メール振り分け処理 (procmail → dovecot-sieve に実装を変更)†