Japan
サイト内の現在位置を表示しています。
AWSのAMIによるリージョンを跨いだHAクラスターのバックアップ・リストア方法~バックアップ編~
CLUSTERPRO オフィシャルブログ ~クラブロ~はじめに
AWSのリソースをバックアップする手段としては、AWSが提供している機能やサードパーティ製のツール・サービスなど様々なものがありますが、今回はAWSが提供している機能のみを使用するようにしています。
バックアップ・リストア全体の手順のうち、この記事ではバックアップの手順について説明しています。リストアに関する説明は リストア編を参照してください。
この記事の内容
1.EC2インスタンスのバックアップ方法
EBSスナップショット
EC2インスタンスのデータが格納されているEBSボリュームのスナップショットを作成するバックアップ方法で、Amazon S3に保存されます。EBSスナップショットから新しいEBSボリュームを作成(復元)し、既存のEC2インスタンスにアタッチされているボリュームと付け替えることで、EC2インスタンスのデータをスナップショット取得時点のデータにリストアすることができます。
EBSスナップショットにはEC2インスタンスの起動に必要な構成情報は含まれていません。そのため、EBSスナップショットから新しいEC2インスタンスを作成したい場合は、まずルートボリュームのスナップショットから新しいイメージ(AMI)を作成し、次にそのイメージから新規EC2インスタンスを作成するという複数のステップが必要となります。さらに、EC2インスタンスに複数のEBSボリュームがアタッチされていた場合は、"スナップショットから新しいボリュームを作成して新規EC2インスタンスにアタッチする"という作業をボリューム毎に実施する必要があります。
AMI
EBSスナップショットに加えて、EC2インスタンスの起動に必要な構成情報も含まれるバックアップ方法です。EC2インスタンスに複数のEBSボリュームがアタッチされている場合、全ボリュームのスナップショットが1つのAMIに含まれます。AMIのデータは、EBSスナップショットと同様にAmazon S3に保存されます。AMIから新しいEC2インスタンスを作成(復元)することで、AMIを作成した時点のデータを持ったインスタンスをリストアすることができます。
本ブログではバックアップしたEC2インスタンスのデータを使ってリストア先のリージョンで新しいサーバーを作るという想定であるため、EC2インスタンスを容易に作成できるAMIをバックアップ方法として採用しています。
2. HAクラスター構成
AWSリージョン | 東京(ap-northeast-1)および大阪(ap-northeast-3) |
サーバーOS および CLUSTERPRO X のバージョン | Windows ・CLUSTERPRO X 4.1 + Windows Server 2019 ・CLUSTERPRO X 4.2 + Windows Server 2016 ・CLUSTERPRO X 4.3 + Windows Server 2019 ・CLUSTERPRO X 5.0 + Windows Server 2022 Linux ・CLUSTERPRO X 4.1 + Red Hat Enterprise Linux 7.5 ・CLUSTERPRO X 4.2 + Red Hat Enterprise Linux 7.5 ・CLUSTERPRO X 4.3 + Red Hat Enterprise Linux 8.4 ・CLUSTERPRO X 5.0 + Red Hat Enterprise Linux 8.4 |
server01とserver02の2ノードActive-Standbyクラスター構成で、Active側のミラーディスクに書き込まれたアプリケーションデータをStandby側のEBSボリュームにミラーリングしています。VIP(仮想IPアドレス)や仮想ホスト名(Route 53のDNSレコード)の向いている側(クライアントがアクセスするサーバー)が現用系サーバーとなり、他方は待機系サーバーとなります。
あくまでミラーディスクを利用したCLUSTERPROによる一般的な冗長構成の例示であるため、EC2インスタンスのバックアップ・リストアを行う上でネットワーク構成などが同じである必要はありません。適宜ご利用の環境に合わせて読み替えてください。
サーバー用インスタンスにアタッチされているブロックデバイスの個数は、インスタンス作成時に最初から用意されているルートボリュームのEBS1つと、ミラーディスク用に追加したEBS2つで、合計3つとなります。
ミラーディスク用のEBSにおいてクラスターパーティションおよびデータパーティション用の領域を作成する際、以下の設定を推奨します。
・Windows環境:パーティション形式としてGPTを指定する
・Linux環境:LVM(Logical Volume Manager)を使用してパーティションを作成する
AWS環境では、インスタンスにアタッチされているEBSのデバイス名がリストアの前後で一致しない可能性があります。リストア後のデバイス名がリストア前と異なると、CLUSTERPROのミラーディスクリソースの設定を変更して対応する必要が生じます。そのため、前述の設定を行うことにより、リストア後の CLUSTERPROの設定変更は不要になるように対策しています。
-サーバーのストレージ内訳(server01/server02共通)
デバイス名(例) | 用途 | ドライブ名(Windows)またはデバイスファイル名(Linux) |
/dev/sda1 | OSのシステム領域 | C: または /dev/sda1 |
xvdf または /dev/sdf | ミラーディスク(md1) - クラスターパーティション - データパーティション |
D: または /dev/clp_md1/cp E: または /dev/clp_md1/dp |
xvdg または /dev/sdg | ミラーディスク(md2) - クラスターパーティション - データパーティション |
F: または /dev/clp_md2/cp G: または /dev/clp_md2/dp |
-CLUSTERPROのリソース設定
- フェールオーバーグループ(failover)
- ■ミラーディスクリソース1(md1)
- ・クラスターパーティション: D: または /dev/clp_md1/cp
- ・データパーティション: E: または /dev/clp_md1/dp
- ■ミラーディスクリソース2(md2)
- ・クラスターパーティション: F: または /dev/clp_md2/cp
- ・データパーティション: G: または /dev/clp_md2/dp
- ■AWS 仮想IPリソース(awsvip)
- ・仮想IPアドレス: 172.16.0.1 (大阪リージョンでリストアする際に変更)
- ■AWS DNSリソース(awsdns)
- ・リソースレコードセット名: tokyo.clusterpro.local. (大阪リージョンでリストアする際に変更)
- モニタリソース
- ※上記のグループリソース追加により自動的に登録されるため割愛
-その他の注意点
- EC2インスタンス作成時からホスト名を変更していない場合、AMIからリストアした各サーバーのホスト名はバックアップ元のホスト名と異なったものに変化します。ホスト名が変化すると、リストア手順におけるCLUSTERPROの構成情報更新の作業量が増加します。そのため、今回はホスト名が固定化されるように事前に設定しています。
- 今回説明する内容は、再利用可能なAMI(ゴールデンイメージ)の作成を目的としたものではありません。そのため、AMI作成前にWindows環境のインスタンスからインスタンスセキュリティ識別子(SID)やコンピュータ名などを削除するSysprepを実行していません。
- 大阪リージョン側にリストアされるサーバーにログインするための認証情報が必要です。サーバーがLinux環境であれば、東京リージョンにある既存のキーペアを大阪リージョンにインポートしておきます。サーバーがWindows環境であれば、サーバーのログインパスワードを忘れないように控えておきます。
3. バックアップ手順
3.1 バックアップ取得の事前処理
server01もしくはserver02で以下のコマンドを実行します。
(以降の各コマンドについては、管理者権限を持つユーザーで実行します。)
Mirror Status: Normal
md1 server01 server02
------------------------------------------------------------
Mirror Color GREEN GREEN
(以下 省略)
同期状態の確認後、フェールオーバーグループを停止します。フェールオーバーグループが起動している現用系サーバーで以下のコマンドを実行します。
Command succeeded.
手順はCLUSTERPRO Xのバージョンによって異なります。
clpbackupコマンドを実行します。コマンドの処理が完了するとサーバーが自動的にシャットダウンします。
clpbackup.bat : Beginning backup-mode.
Command succeeded.
clpbackup.bat : Changing the setting of cluster services to Manual Startup.
clpbackup.bat : Shutting down...
Command succeeded.
clpbackup.bat : Command succeeded.
clpbackup.sh : Beginning backup-mode.
All backup flags have set to <ON>.
clpbackup.sh : Changing the setting of cluster services to Manual Startup.
clpbackup.sh : Shutting down...
Command succeeded.
clpbackup.sh : Command succeeded.
clpsvcctrlコマンドを使用して所定のCLUSTERPROサービスを手動起動に変更します。その後サーバーをシャットダウンします。
> clpdown
# clpdown
OSが提供するコマンドを使用して所定のCLUSTERPROサービスを手動起動に変更します。その後サーバーをシャットダウンします。
[SC] ChangeServiceConfig SUCCESS
> clpdown
Removed /etc/systemd/system/multi-user.target.wants/clusterpro.service.
# systemctl disable clusterpro_md
Removed /etc/systemd/system/multi-user.target.wants/clusterpro_md.service.
# clpdown
3.2 バックアップの取得
AWS マネジメントコンソールでserver01、server02のEC2インスタンスをそれぞれ選択し、[イメージを作成]を選択します。
3.3 バックアップ取得の事後処理
インスタンスの起動後、server01、server02の両方で以下の手順を実行し、HAクラスターとして稼働可能な状態にします。
手順はCLUSTERPRO Xのバージョンによって異なります。
clpbackupコマンドを実行します。コマンドの処理が完了するとサーバーが自動的に再起動します。
clpbackup.bat : Ending backup-mode.
Command succeeded.
clpbackup.bat : Changing the setting of cluster services to Auto Startup.
clpbackup.bat : Rebooting...
clpbackup.sh : Starting Mirror Agent.
Command succeeded.
clpbackup.sh : Ending backup-mode.
All backup flags have set to <OFF>.
clpbackup.sh : Changing the setting of cluster services to Auto Startup.
clpbackup.sh : Stopping Mirror Agent.
Command succeeded.
clpbackup.sh : Rebooting...
clpsvcctrlコマンドを使用して所定のCLUSTERPROサービスを自動起動に変更します。その後サーバーを再起動します。
> clpdown -r
# clpdown -r
OSが提供するコマンドを使用して所定のCLUSTERPROサービスを自動起動に変更します。その後サーバーを再起動します。
[SC] ChangeServiceConfig SUCCESS
> shutdown -r -t 0
Created symlink /etc/systemd/system/multi-user.target.wants/clusterpro.service → /usr/lib/systemd/system/clusterpro.service.
# systemctl enable clusterpro_md
Created symlink /etc/systemd/system/multi-user.target.wants/clusterpro_md.service → /usr/lib/systemd/system/clusterpro_md.service.
# reboot
3.4 イメージのコピー
AWS マネジメントコンソールのAmazon マシンイメージ(AMI)一覧で対象のイメージを選択し、[AMIをコピー]を選びます。
まとめ
お問い合わせ