Amazon Web Services ブログ

Amazon EFS と AWS Backup を使用した自動バックアップのスケジューリング

 

概要

共有ファイルシステムの使用は、多くのコンピューティングインフラストラクチャにとって重要なコンポーネントです。Linux システムの場合は通常、ネットワークファイルシステム (NFS) を使用して、Linux ホストからマウントされます。ユーザーはホームディレクトリにデータを保存でき、ファイルシステム全体で他のユーザーとデータを共有できます。Amazon Elastic File System (Amazon EFS) は、Linux ホストの場合にこの用途を利用できるクラウドネイティブサービスです。

Amazon EFS は、お使いのファイルに可用性と耐久性の高いバッキングストアをもたらしますが、ファイルが誤って削除された場合やファイルの以前のバージョンを復元する必要がある場合に備えて、ファイルシステムのバックアップを作成するのも役立ちます。AWS Backup を使用すれば、Amazon EFS ファイルシステムのバックアップを一元的に管理、自動化でき、リカバリポイントを復元できます。

この記事では、CloudFormation スタックを起動し、Amazon EFS ファイルシステムと AWS Backup のボールトを作成して Amazon EFS バックアップを安全に保存する方法を説明します。その後、EFS ファイルシステムのバックアップについて取り上げ、特定の復旧ポイントからバックアップを復元する方法についても説明します。

Amazon EFS

Amazon EFS は、オンプレミスリソースだけでなく AWS でも実行できるシンプルでスケーラブルでフルマネージド型の伸縮自在な NFS ファイルシステムを提供します。オンデマンドでエクサバイト単位にまで伸縮自在に拡張できるように構築されており、ファイルを追加、削除すると自動的に拡大および縮小するため、成長に対応するために容量をプロビジョンしたり管理したりする必要はありません。

EFS は、幅広いユースケースに対応しています。可能な範囲で最高のスループットが求められる、高度に並列化されスケールアウトされたワークロードから、シングルスレッドで低レイテンシ―が必要なワークロードまで、広範囲にわたります。

以下の Amazon EFS のユースケースを検討してください。

  • リフトアンドシフト方式のエンタープライズアプリケーション
  • ビッグデータ分析
  • ウェブ配信とコンテンツ管理
  • アプリケーションの開発とテスト
  • メディアとエンターテインメントのワークフロー
  • データベースのバックアップ
  • コンテナストレージ

AWS Backup

AWS Backup はフルマネージド型のバックアップサービスで、クラウド上やオンプレミスで、AWS Storage Gateway を使用して AWS のサービスをまたぐデータ保護の一元化および自動化が簡単にできるようになります。AWS Backup を使用すると、Amazon EBS ボリューム、Amazon RDS データベース、Amazon DynamoDB テーブル、Amazon EFS ファイルシステム、AWS Storage Gateway ボリュームなどの AWS リソースのバックアップポリシーを一元的に設定し、バックアップアクティビティを監視することができます。AWS Backup は、以前はサービスごとに実行されていたバックアップタスクを自動化および統合するため、カスタムスクリプトや手動プロセスを作成する必要がなくなります。

ソリューション

Linux ユーザーは多くの場合、オンプレミスまたはクラウドで共通のファイルシステムを共有しています。サードパーティーのソリューションもありますが、通常は単一のファイルサーバーまたはファイルサーバーのインフラストラクチャに依存しており、これらには管理や保守が必要です。この代わりとして、フルマネージド型のサービスを同じ用途に使用すれば、課金対象は実際に使用したストレージに対してのみになります。

このソリューションでは、指定した AWS リージョン内に暗号化された Amazon EFS ファイルシステムを作成します。Amazon EFS マウントは、既存の Virtual Private Cloud (VPC) の各サブネットに作成されます。EC2 インスタンスは、アベイラビリティーゾーン内の Amazon EFS マウントポイントにアクセスします。これにより、インスタンスとファイルシステム間の待ち時間が短縮されます。また、ファイルシステムには、指定された期間 (7 日間から 90 日間) にファイルがアクセスされなかった場合に、期間超過後にファイルを低コストのストレージ層に移行させるライフサイクルルールもあります。ファイルシステムがプロビジョンされた後は、EC2 インスタンスからマウントできるようになります。

このソリューションでは、AWS Backup を使用してバックアップボールトも作成します。バックアップボールトは、Amazon EFS バックアップのリポジトリとして機能します。ボールトには、(バックアップを含む) ボールト自体が不注意などの原因で削除されないようにするリソースポリシーが含まれています。AWS Identity and Access Management (IAM) ポリシーと同様に、リソースポリシーを使用すると、ボールトを削除できるユーザーを定義することができます。ソリューションにはバックアッププランをスケジュールできる、以下のようなものもあります。

  • 日次のバックアップ (保持期間は 35 日間)
  • 週次のバックアップ (保持期間は 90 日間)
  • 月次のバックアップ (保持期間は 5 年間)

月次のバックアップはコールドストレージに移行し、低価格で利用できます。(リージョンごとの料金情報については、こちらのドキュメントをご覧ください。)

CloudFormation テンプレートの FileSystemBackupPlan セクションを変更することにより、お客様のニーズに合わせてこの値を変更できます。

このバックアッププランのスケジューリングはファイルシステム全体に適用されますが、CloudFormation テンプレートの FileSystemBackupSelection セクションを変更することで、ファイルシステムバックアップの対象を変更できます。

前提条件

ソリューションを起動する前に、Amazon EFS ファイルシステムを作成してターゲット (バックアップボールト、バックアッププラン、バックアップ選択) および EC2 セキュリティグループをマウントするのに必要なアクセス許可を取得するため、AWS アカウント を用意する必要があります (こちらのドキュメントを参照してください)。ソリューションをテストするには、Amazon EFS のマウントターゲットをアタッチするための EC2 インスタンスも必要です。

ソリューションの起動

ソリューションをデプロイするには、次の [Launch Stack ] ボタンをクリックしてスタックを起動します。ボタンをクリックしたら、AWS マネジメントコンソールにサインインする必要があります (サインインが終わっていない場合)。使用している環境に合ったパラメータを入力します。

 

パラメータ

デフォルト

目的

VpcId ファイルシステムが置かれる予定の VPC。
IngressCidrBlock 10.0.0.0/16 Amazon EFS Ingress セキュリティグループルール向けのソースリソースの Ingress IP アドレス CIDR。これをお使いのインスタンスの IP アドレス範囲にあてはまるように適用できます。
VPC 内のプライベートサブネット数 2 この値によって、作成するマウントポイントが決定されますが、値は「プライベートサブネット」パラメータ内のプライベートサブネット数に一致する必要があります。
プライベートサブネット (アベイラビリティーゾーンあたり 1 つのみ) マウントターゲットを置く予定のプライベートサブネットのリスト。各サブネットは、アベイラビリティーゾーンが別である必要があります。

スタックの作成が完了したら、結果を表示する EFS コンソールに移動します。

スタック作成後 - 結果を表示する EFS コンソールに移動

同じように、AWS Backup コンソールに移動すると、新規にプロビジョンされたボールトのプロパティが表示されます。

AWS Backup コンソール - 新規にプロビジョニングされたボールトのプロパティを表示

特に、アクセスポリシーにご注意ください。管理者としては、バックアップボールトの削除はアクセス権限を持つユーザーだけに限定しておく必要があります。

ファイルシステムをマウントする

ファイルシステムの用意ができたら、EC2 Linux インスタンスからアクセスしてみましょう。これには SSH も使用できますが、ここでは AWS Systems Manager Session Manager でインスタンスにリモートアクセスします。

1.Amazon Linux EC2 インスタンスを使用されている場合は、以下のコマンドを実行して、EFS マウントヘルパーをインストールします (Amazon Linux を使用されていない場合はインストラクションを参照してください)。

sudo yum install -y amazon-efs-utils

2.EC2 インスタンスに「efs」のようなディレクトリを新規作成します。

sudo mkdir efs

3.TLS マウントオプションを使用してファイルシステムをマウントし、送信中のデータを暗号化します。

sudo mount -t efs -o tls fs-XXXXXXXX:/ efs

fs-XXXXXXXX は、使用しているファイルシステム ID に置き換えます。これは、CloudFormation スタックのアウトプットか EFS コンソールに表示されています。

別の VPC (Transit Gateway または VPC ピアリングによる) からファイルシステムをマウントする場合は、以下のように各アベイラビリティーゾーンのターゲットのうちマウントターゲットの IP アドレスを指定する必要があることにご注意ください。

sudo mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,n
oresvport X.X.X.X:/ efs

別の VPC からファイルシステムをマウントする詳細については、こちらのドキュメントをご覧ください。

4.efs ディレクトリに変更して、テスト用のファイルをいくつか書き込みます。このテストファイルは、ファイルシステムがアンマウントされるまで存続します。これを検証するには、ファイルシステムをアンマウントして再度マウントするか、別の EC2 インスタンスからファイルシステムをマウントします。

ファイルシステムは前もって指定したスケジュールによってバックアップされます。また、ファイルシステムはそのスケジュールに関係なく、いつでもオンデマンドでバックアップ可能です。これには、AWS Backup コンソールに移動して、[Protected Resources] を選択します。[Create on-demand backup] ボタンをクリックして、使用している EFS ファイルシステムのオプションを選択します。

5.バックアップをリストアするには、AWS Backup コンソールに移動して、[Protected Resources] を選択し、ファイルシステム ID を見つけてクリックします。この時点で何らかのバックアップがある場合は (作成がオンデマンドであってもスケジュールによるものであっても) 、ここに挙げた各リカバリポイントが表示されます。そのどれか 1 つ (指定日など) を選択して、[Restore] ボタンをクリックします。

バックアップのリストア先は、既存のファイルシステムでも新規のファイルシステムでも選択可能です。既存のファイルシステムにリストアすると、ファイルシステムルート内にディレクトリがディレクトリ名と同じリカバリポイント ID とともに作成されます。

クリーンアップ

このソリューションをクリーンアップするには、次のステップを実行します。

  1. CloudFormation コンソールに移動し、スタックを削除します。バックアップが誤って削除されないようにするため、バックアップボールトを除いてすべてが削除されます。ボールトを削除するには、AWS Backup コンソールに移動して、[Backup Vaults] のリンクをクリックして、削除するボールトを選択します。
  2. [Access policy] パネルで [Delete Policy] をクリックします。
  3. [Delete] ボタンをクリックして、すべてのバックアップを含むボールト全体を削除します。

まとめ

この記事では、ファイルシステムの複数のバックアップを作成する Amazon EFS を AWS Backup で補完できる方法をご説明しました。このソリューションで活用できるコスト最適化面の特徴は以下のとおりです。

  • Amazon EFS ライフサイクルルールによって、30 日経過するとデータは低コストストレージ層に移動される
  • AWS Backup ライフサイクルルールによって、35 日経過すると 1 日単位のバックアップは削除される
  • AWS Backup ライフサイクルルールによって、90 日経過すると週単位のバックアップは削除される
  • AWS Backup ライフサイクルルールによって、90 日経過すると 1 か月単位のバックアップは低コストストレージ層に移動され、5 年経過すると削除される

本ブログ記事を最後までお読みいただき Amazon EFS および AWS Backup の詳細をご覧いただきありがとうございました。コメントやご質問は、以下のボタンからお寄せください。

その他のリソース

AWS Backup に関心をお持ちの方は、AWS Storage Blog の Protecting your data with AWS Backup も合わせてご覧ください。