Amazon Web Services ブログ

AWS Backup で Amazon FSx for OpenZFS をバックアップおよびリストアする

このブログは 2022 年 7 月 29 日に Michael Zhang(Solutions Architect)と、葉山 伸二(Cloud Infrastructure Architect)によって執筆された内容を日本語化したものです。原文はこちらを参照してください。

2022 年 5 月 17 日に AWS BackupAmazon FSx for OpenZFS の保護を発表し、コンピューティングとストレージ、データベースにまたがる AWS サービスのサポート対象として追加されました。Amazon FSx for OpenZFS を利用しているお客様は、複数のAWSサービスにおけるデータ保護とコンプライアンスをポリシーベースで一元管理し、運用の簡素化と拡張を図ることができるようになりました。

Amazon FSx for OpenZFS のスナップショットによって、同じ AWS アカウント内の開発環境を簡単かつ迅速に作成することができます。お客様によっては、開発環境が別の AWS アカウントで構成されています。その場合は、取得したバックアップを別の AWS アカウントにコピーし、リストアする必要があります。

この記事では、AWS Backup を使用して Amazon FSx for OpenZFS ファイルシステムをバックアップし、バックアップのコピーを別のアカウントに作成し、ファイルシステムを別アカウントのローカル環境へリストアする方法を説明します。AWS Backup は、データのバックアップと、クロスアカウントのバックアップコピー、バックアップ先アカウントでのリストアを簡単に行うことができ、データを柔軟に利用しながら、データ保護要件や規制への準拠を確保することができます。

ソリューション概要

Amazon FSx for OpenZFS は、ハイパフォーマンスでコスト効率の高い共有ファイルストレージです。ネットワークファイルシステム(NFS)(v3、v4 ~ 4.2)プロトコル経由でアクセスし、数百マイクロ秒のレイテンシと、100 万の入出力オペレーション/秒(IOPS)を実現するハイパフォーマンスでコスト効率の高い共有ファイルストレージです。OpenZFS ファイルシステムの使い慣れた機能とパフォーマンス、性能を AWS のフルマネージドサービスにより、俊敏性と拡張性、簡便性を提供します。

AWS Backup は、組織のベストプラクティスや規制基準に基づき、コンピュートやストレージ、データベースと幅広い AWS サービスのデータ保護を一元化し、自動化を実現するフルマネージドのバックアップサービスです。さらに、AWS Backup Audit Manager 機能を使用することで、データ保護ポリシーのコンプライアンスを維持および実証することができます。

このソリューションでは、以下のソリューションアーキテクチャ図に記載されている 2 つの AWS アカウントを使用します。

アカウント A(送信元アカウント)には Amazon FSx for OpenZFS ファイルシステムが構成されており、ボリュームやスナップショットボリューム、クローンボリュームが構成されています。この Amazon FSx for OpenZFS ファイルシステムを AWS Backup によって定期的にバックアップします。

また、取得したバックアップデータはアカウント B(送信先アカウント)へコピーします。そして、アカウント B にコピーされた最新のバックアップデータよりリストアを実施し、リストアしたボリュームをアカウント B の Linux の Amazon EC2 インスタンスにマウントして、正常にデータにアクセスができることを確認します。

Solution-overview 1:ソリューション概要図

前提条件

  • AWS アカウント:送信元側のアカウント A と、送信先側の アカウント B を用意します
  • AWS Organizations:上記の AWS アカウントは、AWS Organizations で同じ組織に所属している必要があります。これは、クロスアカウントコピーの必須条件です。
  • VPC:これら2つの VPC 間は、通信が可能となっている必要があります
  • AWS Key Management Service(AWS KMS) のカスタマー管理型キー:アカウント A で Amazon FSx for OpenZFS ファイルシステムを暗号化するためのカスタマー管理型キーキーを作成します。アカウント B で、保存先のバックアップボールトを暗号化するためのカスタマー管理型キーを作成します。
  • Amazon FSx for OpenZFS ファイルシステム:AWS KMS のカスタマー管理型キーで暗号化されている必要があります。また、スナップショットボリュームとクローンボリュームを保有しています。
    本 Blog 公開時点では、Amazon FSx for OpenZFS ファイルシステムの暗号化キーは変更できません。Amazon Sx for OpenZFS ファイルシステムにデフォルトの AWS マネージド型キーを使用していた場合は、最新のバックアップデータからリストアを行い、リストア時に暗号化キーにカスタマー管理型キーを指定してください。

ウォークスルー

以下にウォークスルーの手順概要を記載します。

1. バックアップリソースの作成および構成

a. 送信先アカウント側のバックアップボールトを作成
b. クロスアカウントバックアップの有効化
c. Amazon FSx for OpenZFS のバックアップをオプトイン
d. カスタマー管理型キーのアセクス権限を送信先アカウントへ付与
e. 送信元アカウント側のバックアップボールトを作成
f. バックアッププランを作成
g. リソースの割り当てを作成

2. バックアップとコピージョブのステータス確認

a. バックアップジョブのステータスを確認する
b. コピージョブのステータスを確認する

3. リストア実施

a. Amazon FSx for OpenZFS 用のセキュリティグループを作成する
b. リストア実施
c. リストアジョブのステータスを確認

4. Amazon FSx for OpenZFS ファイルシステムを Linux にマウント

a. ボリュームをマウントする

1.バックアップリソースの作成および構成

アカウント B の AWS マネジメントコンソールを開いてください。AWS Backup を検索し、AWS Backup マネジメントコンソールに移動します。マネジメントコンソールでは、Amazon FSx for OpenZFS のバックアップを保存するバックアップボールトを作成します。

a. アカウント B にバックアップボールトを作成する

Amazon FSx for OpenZFS ファイルシステムのバックアップデータコピーを保存するための Backup vault を作成します。

  1. AWS Backup コンソールより「バックアップボールト」を選択してください。「バックアップボールトを作成」を選択します。

Backup vaults selection

図2:バックアップボールト選択

  1. バックアップボールト名」に、Amazon FSx for OpenZFS ファイルシステムのバックアップデータコピーを格納するバックアップボールトの名前を記入します。「暗号化キー」に、AWS KMS のカスタマー管理型キーを選択してください。そして「バックアップボールトを作成」を選択してください。

Backup vault creation

図 3:バックアップボールト作成

  1. 作成したバックアップボールトを開き、「バックアップボールト ARN」をコピーします。この ARN は後の手順で必要となります。

Backup vault ARN confirmation

図4:バックアップボールト ARN の確認

  1. アクセスポリシー」セクションの「編集する」を選択します。

Edit access policy

図5:アクセスポリシーの編集

  1. 以下の JSON のようなポリシーを記述して下さい。<Source account ID> は自身の送信元側(アカウント A)の AWS アカウント ID に修正してください。記入後、「ポリシーを保存」をクリックします。
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Allow account to copy into backup vault",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::<Source account ID>:root"
            },
            "Action": "backup:CopyIntoBackupVault",
            "Resource": "*"
        }
    ]
}

このアクセスポリシーにより、AWS Backup がアカウント A からアカウント B のバックアップボールトに対して、バックアップデータをコピーできるようになります。

b.クロスアカウントバックアップの有効化

アカウント A にログインしてください。AWS Backup コンソールより「設定」を選択してください。図 6の「クロスアカウントバックアップ」にて「有効にする」を選択して有効化します。

この手順は、AWS Organizations の管理アカウントで実行する必要があります。本環境では、アカウントAが管理アカウントとなります。

Cross-account backup activation

図 6:クロスアカウントバックアップの有効化

c. Amazon FSx for OpenZFS のバックアップをオプトイン

図7の「FSx」サービスが有効になっているか確認します。有効になっていない場合はバックアップを実施するためにオプトインしてください。

Opt-in FSx service

図7:FSx サービスのオプトイン

d. カスタマー管理型キーのアセクス権限を送信先アカウントへ付与

続いて、送信先アカウントにカスタマー管理型キーのアクセス権限を付与します。AWS KMS コンソールで「カスタマー管理型キー」を選択し、Amazon FSx for OpenZFS ファイルシステムを暗号化したカスタマー管理型キーを選択します。「別の AWS アカウント」セクションで「別の AWS アカウントを追加」を選択し、アカウント B の ID を記入します。そして「変更の保存」を選択してください。

Grant CMK access permission to destination account

図8:カスタマー管理型キーのアクセス権限を送信先アカウントへ付与

e. 送信元アカウント側のバックアップボールトを作成

Amazon FSx for OpenZFS ファイルシステムのバックアップデータを格納するバックアップボールトを作成します。AWS Backup コンソールで「バックアップボールト」 を選択します。そして「バックアップボールトを作成」を選択します。

Backup vaults selection

図9:バックアップボールトの選択

バックアップボールト名」 に、Amazon FSx for OpenZFS ファイルシステムのバックアップデータを格納するバックアップボールトの名前を記入します。新規に作成しなくても、既存バックアップボールトを使用しても構いません。「暗号化キー」に、AWS KMS のデフォルトの AWS マネージド型キー(aws/backup)またはカスタマー管理型キーのどちらかを選択してください。この記事では、カスタマー管理型キーを選択しています。そして「バックアップボールトを作成」を選択して、バックアップボールトを作成します。

Backup vault creation

図 10:バックアップボールト作成

f.バックアッププランを作成

Amazon FSx for OpenZFS ファイルシステムのバックアッププランを作成します。AWS Backup コンソールより「バックアッププラン」を選択します。そして「バックアップ計画を作成する」を選択してください。

Backup plan selection

図 11:バックアッププラン選択

新しいプランを立てる」を選択し、「バックアッププラン名」にバックアッププランの名前を入力してください。

Backup plan creation 1

図12:バックアッププラン作成1

バックアップルール名」にバックアップルールの名前を記入し、前の手順で作成したバックアップボールトを選択してください。本手順では 12 時間周期でバックアップを実行するように構成しています。バックアップウィンドウは UTC 時間の午前 5 時に開始し、バックアップ ウィンドウが開いてから 1 時間以内にバックアップジョブを開始するよう設定しています。

このデモでは、バックアップジョブが 4 時間を超えた場合に実行されないように、ジョブを「完了」状態か、強制的に「期限切れ」状態になるよう「次の時間以内に完了」を 4 時間に設定しています。

また、バックアップ完了後にバックアップデータを 1 ヶ月間保存するために、「保持期間」を 1 ケ月に設定しています。

Backup Plan Creation 2

図13:バックアッププラン作成2

次の時間以内に完了」はデフォルトで 7 日に設定されています。大きなファイル システムの場合(特に最初のフル バックアップを実行する場合)は、必要に応じて「次の時間以内に完了」を最大の 30 日に設定することもできます。

コピー先にコピー」には、送信元アカウント A と同じリージョンを指定してください。「別のアカウントのボールトにコピー」を有効にし、「外部ボールト ARN」フィールドに、前の手順でアカウント B 用に作成したバックアップボールトの ARN を記入してください。それ以外の設定は任意です。すべての項目を設定したら、「プランを作成」を選択してバックアップ プランを作成します。

Backup Plan Creation 3

図 14:バックアッププラン作成3

g. リソースの割り当てを作成

作成したバックアッププランを開き「リソースの割り当て」にある「リソースを割り当てる」を選択してください。

Figure 15: Assign resources selection

図15:リソースの割り当てを選択

リソース割り当て名」に名前を記入します。残りは任意で設定してください。本手順では、バックアップを実行する IAM ロールに「デフォルトのロール」を選択しています。「リソースを割り当てる」セクションで、「特定のリソースタイプを含める」を選択し、リソースタイプとして「FSx」を指定します。「ファイルシステムおよびボリューム ID」ドロップダウンメニューから、バックアップ対象である Amazon FSx for OpenZFS ファイルシステムの ID を選択しています。そして「リソースを割り当てる」を選択して、バックアップリソースの構成を完了します。

Assign resources setting

図16:リソースの割り当て設定

以上でバックアッププランの作成は完了しました。これによって設定した時間帯にバックアップが実行されるようになりました。バックアップジョブが正常に完了すると、バックアップデータのコピーが送信先アカウントに指定したバックアップボールトに複製されます。

2.バックアップとコピージョブのステータス確認

Amazon FSx for OpenZFS ファイルシステムのバックアップとコピージョブが正常に実行されたことを確認します。

a. バックアップジョブのステータスを確認する

アカウント A で、AWS Backup コンソールから「ジョブ」を選択し、「バックアップジョブ」タブを選択します。リソースタイプが「FSx]で、リソース ID が指定した Amazon FSx for OpenZFS ファイルシステム ID のバックアップジョブにて、AWS Backup ジョブのステータスが「完了」となっていることを確認してください。

Backup jobs status check

図17:バックアップジョブのステータス確認

b. コピージョブのステータスを確認する

コピージョブ」を選択すると、コピージョブの一覧が表示されます。リソースタイプが「FSx]で、送信先バックアップボールトがアカウント B のバックアップボールトあることを確認し、ステータスが「完了」となっていることを確認してください。

送信元の設定は、コピーの有効期限設定よりも優先されます。送信元と異なる有効期限のコピーを保持したい場合は、コピー作成後に必要に応じて有効期限を変更することもできます。

Copy jobs status check

図18:コピージョブのステータス確認

3.リストア実施

アカウント B にコピーしたバックアップデータを使用して、Amazon FSx for OpenZFS ファイルシステムをリストアします。

a. Amazon FSx for OpenZFS 用のセキュリティグループを作成する

アカウント B で、Amazon FSx for OpenZFS ファイルシステム用の Elastic Network Interface に対するセキュリティグループを作成します。(本記事ではセキュリティグループの設定手順は省略します。詳細は「Creating a VPC security group」を参照してください)。Amazon FSx for Open ZFS が存在する同じ VPC にセキュリティグループが作成されていることを確認します。

Amazon FSx for OpenZFS ファイルシステムをマウントするためには、NFS サーバ関連の TCPUDP のポート 1112049 20001 20003 のインバウンドルールの許可が必要です。アクセスコントロールをより強力にする場合は、対象の送信元 IP アドレス範囲を制限することも検討してださい。

Security Group for FSx for OpenZFS

図19:Amazon FSx for OpenZFS のセキュリティグループ

b. リストア実施

保護されたリソース」を選択してください。リソースタイプが「FSx」で、リソース ID が指定した Amazon FSx for OpenZFS ファイルシステム ID のリソースを開いてください。

Protected resources

図20:保護されたリソース

リストアしたい復元ポイント ID を選択し、「復元」を選択します。

Restore Target Selection

図21:復旧ポイント ID の選択

復元オプションで、「標準の復元」を選択します。標準の復元では、Amazon FSx for OpenZFS ファイルシステムをどの VPC とサブネットにリストアするかを柔軟に指定することができます。前の手順で作成した VPC セキュリティグループを関連付け、新しいファイルシステムの暗号化キーとしてカスタマー管理型キーを指定し、AWS Backup がリストアに使用する IAM ロールとして「デフォルトのロール」を選択しました。リストア設定が完了したら、「バックアップを復元」を選択して、リストアジョブを起動します。

Restore Execution

図22:バックアップを復元

c. リストアジョブのステータスを確認

AWS Backup コンソールから「ジョブ」を選択してください。「ジョブを復元」 タブを選択し、実行されたリストアジョブを一覧表示します。リソースタイプが「FSx」で、リソース ID が指定した Amazon FSx for Open ZFS ファイルシステム ID のリストアジョブのステータスが「完了」となっていることを確認してください。

Confirmation of restore results

図23:リストアジョブのステータス確認

Amazon FSx コンソールに移動し、「ファイルシステム」を選択してください。ファイルシステムのタイプが「OpenZFS」で、ファイルシステム ID が指定した Amazon FSx for OpenZFS ファイルシステム ID のステータスが「利用可能」となっていることを確認してください。

FSx for OpenZFS file system confirmation

図24:Amazon FSx for OpenZFS ファイルシステムの確認

ボリューム」を選択してください。バックアップしたボリュームおよびクローンボリュームが表示されており、ステータスが「利用可能」となっていることを確認してください。

FSx for OpenZFS volume confirmation

図25:Amazon FSx for OpenZFS ボリュームの確認

スナップショット」を選択してください。バックアップしたスナップショットボリュームが表示されており、ステータスが「利用可能」となっていることを確認してください。

FSx for OpenZFS snapshot volume confirmation

図26:Amazon FSx for OpenZFS スナップショットボリュームの確認

Amazon FSx for OpenZFS のボリュームとクローンボリューム、Snapshot ボリュームが正常にリストアできていることが確認できました。

4.Amazon FSx for OpenZFS ファイルシステムを Linux にマウント

アカウント B で稼働している Linux EC2 インスタンスへ、リストアした Amazon FSx for OpenZFS ファイルシステムのボリュームをマウントします。

a. ボリュームのマウント

Linux の EC2 にログインし、NFS マウントを実施して、マウントが正常に行えること、リストアしたデータが認識できることを確認してください。マウント方法の詳細については、Amazon FSx for OpenZFS User Guide のここを参照してください。

NFS mount verification

図27:ボリュームを NFS マウント

クリーンアップ

ウォークスルーが完了した後に、設定したバックアップやリストアした Amazon FSx for OpenZFS ファイルシステムが不要な場合は、更なる課金を防ぐために、リソースを削除してください。

アカウント B

  1. アカウント B にリストアした Amazon FSx for OpenZFS ファイルシステムを削除します。

Amazon FSx コンソールより「ファイルシステム」を選択し、右ペインより削除するファイルシステムを選択し、アクションより「ファイルシステムを削除」を選択してください。

ファイルシステムを削除するかにチェックを入れ、「ファイルシステム ID」を入力して「ファイルシステムを削除」を選択してください。

Deleting FSx for OpenZFS file system

図28:Amazon FSx for OpenZFS ファイルシステムの削除

  1. AWS Backup の復旧ポイントを削除します。

AWS Backup コンソールに移動し、「バックアップボールト」を選択します。バックアップデータのコピーが格納されているバックアップボールトを開いてください。

Backup vault selection

図 29:バックアップボールトの選択

バックアップより全ての復旧ポイントを選択し、「アクション」より「削除」を選択します。「リカバリポイント を完全に削除しますか ?」に「delete」を入力し、「復旧ポイントを削除」を選択してください。その後、上部の「削除」を選択し、「バックアップボールトを削除」を選択して、バックアップボールトを削除してください。

Backup vault selection

図30:バックアップボールトの削除

アカウント A

  1. AWS Backup コンソールに移動し、「バックアップボールト」を選択します。バックアップデータが格納されているバックアップボールトを開いてください。上記の手順と同じ作業を実施してバックアップデータおよびバックアップボールトを削除してください。
  1. バックアッププラン」を選択し、本ウォークスルーで作成したバックアッププランを開いてください。

Backup plan selection

図31:バックアッププランの選択

  1. 上部の「削除」を選択してください。バックアッププラン名を記入し、「プランを削除」を選択します。

Backup plan deleted

図32:バックアッププランの削除

以上でクリーンアップ作業は完了です。

まとめ

この記事では、AWS Backup を使用して Amazon FSX for OpenZFS ファイルシステムのバックアップとリストア、クロスアカウントコピーの有効化、バックアップジョブのステータス確認を実施する方法について紹介しました。また、送信先側のアカウントにて、リストアしたファイルシステムを Linux の Amazon EC2 インスタンスにマウントして、リストアしたファイルシステムの検証を行いました。

AWS Backup のクロスアカウントバックアップ機能により、Amazon FSx for OpenZFS ファイルシステムを別のアカウントに簡単にリストアすることができます。これにより、本番環境から開発環境へのバックアップデータの再利用が迅速かつ容易になり、データ保護要件や規制を遵守しながらデータを活用することができます。

追加のガイダンスとして、Amazon FSx for OpenZFS と AWS Backup を使い始めるための以下のリソースを要ししていますので、参照してください。

この記事を読んでいただきありがとうございました。翻訳は AWS プロフェッショナルサービス本部の葉山が担当しました。

著者紹介

Michael Zhang

Michael Zhang

Michael Zhang は AWS の Solutions Architect で、オーストラリアのシドニーに拠点を置いています。彼は、様々な業界のお客様と一緒に、ビジネスニーズに対応したソリューションを構築しています。AWS 以前は、14 年以上のソリューション設計と実装の経験があり、高可用性、災害復旧、データ保護の領域でリードコンサルタントを務めていました。仕事以外では、Michael は剣術の黒帯 4 段のヘッドインストラクターです。

Shinji Hayama

葉山 伸二

葉山 伸二(Shinji Hayama)は AWS プロフェッショナルサービス本部所属の Cloud Infrastructure Architect コンサルタントです。金融系のお客様を中心に設計支援や標準化ガイドライン策定支援を行い、お客様のクラウドジャーニーを支援しています。彼は 30 年以上のインフラストラクチャのアーキテクチャ設計と構築の経験を持ち、特にストレージとバックアップに関して強みがあります。最近は Amazon FSx シリーズが好きなようです。