AWSファイルストレージのレジリエンスを高める設計の勘所 #reinvent2024

こんにちは。ヌーラボでソフトウェアエンジニアとして働いている@vvvatanabeです。

先日、AWS re:Invent 2024に現地参加しました。極度の飛行機恐怖症の私を福岡からラスベガス間の重圧から救ってくれたのは、Ankerのノイキャン付きBTイヤホンでした。あまりの静けさに飛行中だということを忘れさせてくれる彼は、今年購入して良かったものナンバーワンです。

さて、近年サイバー攻撃や自然災害といったさまざまなリスクに備えるため、データをより信頼性の高い方法で管理するニーズがますます高まっています。

私が聴講したセッションの一つ「STG333 | Architecting file storage for increased resilience」というチョークトークでは、Amazon EFSやAmazon FSxファミリーを中心に、AWSが提供するファイルストレージサービスのレプリケーション、スナップショット、暗号化、バックアップ機能を活用したデータ保護の手法が詳しく解説されました。

このレポートでは、このセッションの内容をもとに、エンタープライズ向けのクラウドファイルストレージでレジリエンスを高めるためのポイントを整理し、自分なりの考察を交えてご紹介します。

目次

主なファイルストレージサービス

AWSが提供するファイルストレージサービスには、主にAmazon EFSとAmazon FSxファミリーがあります。それぞれの特徴を簡単にご紹介します。

Amazon EFS (Elastic File System)

フルマネージド型のサービスで、特別な管理や設定がいりません。リージョン間やAZ間でのデータレプリケーション機能も備わっており、データ保護にも対応しています。管理の手間を減らしつつ、手軽に利用できるので、運用コストも抑えられます。

Amazon FSx for Windows File Server

Windows向けのファイルストレージです。Windows環境のファイルシステムが前提となる要件に適しています。

Amazon FSx for NetApp ONTAP

NetApp ONTAPをAWSで使えるようにしたフルマネージド型のサービスです。レプリケーション、データ圧縮・重複排除(deduplication)などの機能が充実しています。さらに、複数のプロトコルに対応しているので、柔軟なデータ管理が可能です。オンプレミスでNetApp ONTAPを使っている場合も、スムーズに移行できます。

Amazon FSx for OpenZFS

AWSが提供するファイルストレージサービスの中でも、特に低レイテンシーが特徴です。高速なファイル操作が必要なワークロードに適しています。

Amazon FSx for Lustre

ハイパフォーマンスコンピューティング(HPC)向けのサービスです。機械学習やシミュレーション、ビッグデータ解析など、高い計算能力が求められる用途に最適です。処理が終わったデータはS3に移動してコストを抑える、といった使い方もできます。

組み込みのデータ保護機能

AWSのファイルストレージサービスには、データ保護のための便利な機能がいくつも備わっています。ここでは、主な機能であるレプリケーション、バックアップ、暗号化、アクセス制御、監査について紹介します。

レプリケーション

データを複製する仕組みです。用途に応じて、以下の3種類があります。

シングルAZ:

単一のアベイラビリティゾーン(AZ)内でデータを複製します。同じAZ内にデータコピーが保存されるので、復旧がとても速いのが特徴です。コストを抑えたいワークロードや、AZ内で完結する用途に向いています。

マルチAZ:

データが複数のAZ間で複製される仕組みです。たとえば、EFSのリージョナルファイルシステムでは、データが最低3つのAZに分散して保存されます。そのため、高い可用性を実現でき、1つのAZで障害が発生してもシステム全体への影響を最小限に抑えられます。ミッションクリティカルなアプリケーションや、AZ障害のリスクを避けたい場合に最適です。

マルチリージョン:

データを複数のリージョン間で複製します。リージョン全体の障害や大規模なインターネット障害へのディザスタリカバリ(DR)対策として役立ちます。

バックアップ

AWSのファイルストレージサービスは、どれも自動または組み込みのバックアップ機能を提供しています。定期的にバックアップを取得することで、誤操作やシステム障害によるデータ損失を防ぐことができます。AWS Backupを使えば、複数のバックアップを一元管理することも簡単です。

暗号化

データの保存時と転送時の両方で暗号化を利用できます。

保存時(At Rest)の暗号化:

データが保存される際に暗号化を行います。サービスによって暗号化方法は異なりますが、AWS Key Management Service (KMS) を使うことで暗号化キーを一元管理できます。

転送時(In Transit)の暗号化:

データが転送される際には、TLS(Transport Layer Security)などのプロトコルを使って暗号化されます。これにより、ネットワーク経由でのデータの安全性が保たれます。

アクセス制御

AWS IAM(Identity and Access Management)を活用することで、誰が何にアクセスできるかといった細かいアクセス権限の設定が可能です。

監査

ファイル操作の履歴を記録し、特定のユーザーや操作内容を追跡することができます。これにより、セキュリティコンプライアンスを遵守や、不正行為の発見に役立ちます。

データ復元とRPO/RTO

データを復元する方法は、利用するファイルシステムによって異なりますが、「RPO(Recovery Point Objective)」と「RTO(Recovery Time Objective)」という2つの指標を意識すると分かりやすいです。

RPO(Recovery Point Objective)

RPOは「復元可能な最新の時点」を意味します。これが短ければ短いほど、データ損失のリスクを小さく抑えられます。

たとえば、Amazon EFSやAmazon FSxでは自動バックアップ機能を使って定期的にスナップショットを取得できます。1時間ごとにバックアップを設定していれば、そのRPOは1時間になります。

RTO(Recovery Time Objective)

RTOは「障害が発生してから復旧するまでの許容時間」を指します。この時間が短いほど、システムダウンによる影響を最小限に抑えることができます。

RPOとRTOのバランスを考える

RPOとRTOを適切に設定することで、コストと可用性のバランスをうまく取ることができます。たとえば、頻繁なバックアップ(短いRPO)やマルチAZ構成(短いRTO)を選択すると、レジリエンスが強化されますが、その分コストが増えます。そのため、自社の要件や予算に合ったバランスを見極めることが重要です。

代表的なデータ保護機能

データ保護の代表的な機能として、スナップショット/シャドウコピー、クロスファイルシステムレプリケーション、バックアップの3つが挙げられます。

スナップショット/シャドウコピー

主な用途:誤って削除や変更してしまったファイルの即時復旧

最小RPO(レプリケーションレート):1分単位での保護が可能

RTO(復旧時間):ほぼ瞬時に復旧

クロスファイルシステムレプリケーション

主な用途:ファイルシステムが利用不能な場合の災害対策

最小RPO(レプリケーションレート):5分間隔での同期が可能

RTO(復旧時間):10分以内で復旧可能

バックアップ

主な用途:オフラインでのセカンダリコピー確保や長期的なデータ保持

最小RPO(レプリケーションレート):15分程度の間隔で取得

RTO(復旧時間):数分から数時間ほど

バックアップは以下のような特徴があり、手軽さと高い耐久性が魅力です。

  • 自動でバックアップが行われ、設定も簡単
  • 高い耐久性(99.999999999%)を誇り、安心感抜群
  • 管理コンソールから簡単に操作が可能
  • 差分バックアップでコストや時間を節約
  • 複数アカウントや別リージョンへのコピーに対応して災害対策を強化
  • EFSの「コールド」バックアップでさらに低コストな保護も実現

誤削除リスクへの対策

誤ってデータを削除してしまうリスクを防ぐためには、レプリケーションだけでは十分ではありません。そこで、スナップショットやアクセス制限を活用した対策が効果的です。

レプリケーションは誤削除を防げない

レプリケーションは、ソースとコピーのデータを同期させる仕組みです。そのため、ソース側でデータを削除すると、コピーのデータも自動的に削除されてしまいます。

スナップショットを活用する

スナップショットは、特定の時点でのデータ状態を保存する機能です。これを活用すれば、誤ってデータを削除してしまった場合でも、その時点の状態に簡単に戻すことができます。定期的にスナップショットを取得するスケジュールを設定しておくと、いざというときの復旧がスムーズになります。

アクセス制限でリスクを減らす

アクセス権限を適切に管理することで、誤削除のリスクを大幅に減らすことができます。具体的には以下の方法が挙げられます。

  • オリジナルデータとそのコピーを別々に保存し、削除権限を分けて管理する。
  • IAMポリシーを使って、削除権限を持つユーザーを限定する。
  • 削除権限を必要最小限に絞り、不要な権限は与えないようにする。
  • 削除操作の実行ログを有効にして、誰が何を削除したのか追跡可能にする。

フェイルオーバー

AWSが提供するEFSやFSxといった冗長化されたファイルストレージサービスは、フェイルオーバーの仕組みによって高い可用性を実現しています。それぞれの特徴と、フェイルオーバー時にどのような影響があるのか解説します。

​​EFSの場合

EFSは、DNS名形式のエンドポイントを使ってアクセスします。クライアントは、AWSが提供するツールを通じて、単一のファイルシステム名を指定するだけで、適切なエンドポイントに自動的に接続できます。

各アベイラビリティゾーン(AZ)には、ローカル接続用にマウントターゲットが作成されるため、クライアントは自動的に近くのエンドポイントに接続します。この仕組みにより、障害が発生した場合でも接続が途切れることはほとんどありません。

さらに、EFSのフェイルオーバーは完全にシームレスに行われます。そのため、クライアント側では障害が発生したことを意識することなく、普段通り利用を続けられる設計になっています。

FSxの場合

FSxファミリーでは、アクティブ側のAZとスタンバイ側のAZを指定できます。クライアントは単一のDNS名を通じてストレージにアクセスするため、フェイルオーバーが発生しても、同じDNS名を使い続けることができます。

ただし、フェイルオーバー中には一時的にデータへアクセスできない時間が発生する場合があります。また、管理者がフェイルオーバーの動作をテストするために、手動でトリガーを実行できる機能も用意されています。

FSx NetApp ONTAPにおけるDRとWORM

FSx for NetApp ONTAPが提供するデータ保護機能のうち、災害対策(DR)やデータの不変性を確保するための強力な機能として、SnapMirrorとSnapLockという機能について紹介します。

SnapMirrorを使った災害対策(DR)

SnapMirrorが提供するレプリケーション機能は、オンプレミスからAWSにレプリケーションするような災害対策(DR)を構成する環境でも、高速なデータ転送を実現できます。

SnapLockで実現するデータの不変性(WORM)

SnapLockは、特定のボリュームに対して「書き込みは一度きり、読み取りは何度でも(Write Once, Read Many, WORM)」というデータの不変性を保証する機能です。この機能には2つのモードがあり、用途に応じて選択できます。

コンプライアンスモード:

このモードは、SEC 17a-4やFINRA、CFTCなどの厳しい規制要件を満たす必要がある場合に適しています。データ保護ポリシーを一度設定すると、管理者であっても変更することはできません。そのため、金融業界や医療分野など、法的に厳しい規制が課される環境での利用に最適です。

エンタープライズモード:

こちらは、柔軟性を重視した企業向けのモードです。たとえば、特定のユーザーだけにファイル削除の権限を与えるなど、運用ニーズに応じた設定が可能です。このモードは、データ保護を強化しつつ、運用効率を高めたい場合に適しています。

EFSレプリケーションにおけるコスト削減

EFSでレプリケーションしつつ、コストを抑えるためにできる工夫として、適切なストレージクラスの選択やライフサイクルポリシーの活用方法について解説します。

適切なストレージクラスの活用

ソース側:

米国東部(us-east-1)では、データを高性能・低遅延のEFS Standardに保存します。このクラスは、ミッションクリティカルなデータや頻繁にアクセスされるデータに最適です。

コピー側:

米国西部(us-west-2)にコピーを作成します。こちらではEFS One Zone – Infrequent Accessを選択します。このストレージクラスは単一AZに保存される低コストなオプションで、毎日アクセスされないファイルの保存に向いています。

通常、レプリケーションではストレージコストが2倍になりますが、アクセス頻度に応じて低コストのストレージクラス(One Zone、Infrequent Access、Archive)を活用することで、コストを大幅に削減できます。

ライフサイクルポリシーの活用

データの利用頻度に応じて、自動的にコスト効率の良いストレージクラスに移行するライフサイクルポリシーも有効です。

たとえば、Standard → Infrequent Access → Archive のように段階的な移行が可能です。

質問: レプリケーションデータをアーカイブへ保存できますか?

レプリケーション後、コピー側のポリシーを設定すれば、最短最後のアクセスから1日でアーカイブストレージに移行できます。アーカイブモードはアクセス頻度が極めて低いデータ向けで、非常にコスト効率が高いです。必要に応じてアーカイブされたデータをスタンダードクラスに移行することもできます。移行は、データのアクセスや書き込みが発生した際に自動でトリガーされ、要件に合わせて移行するかどうか設定が可能です。

FSx NetApp ONTAPのDRストレージコスト削減

ONTAPのデータ階層化やデータ圧縮などの機能を活用することで、コストを効率的に抑えることができます。

データ階層化によるコスト最適化

ONTAPでは、データの使用頻度に応じて自動的にストレージ階層を管理できます。

SSD階層(ホットデータ):

頻繁にアクセスされるデータは、高速でアクセス可能なSSDストレージに保存されます。これにより、高いパフォーマンスが求められるデータへのアクセスがスムーズに行えます。

容量階層(コールドデータ):

使用頻度が低くなったデータは、低コストで保存できる容量階層(コールド階層)に移動します。この移動は完全に自動化されており、たとえば20日間アクセスされていないデータをコールド階層に切り替えるといった動作も可能です。

データ圧縮と重複排除によるコスト最適化

ONTAPは、データ圧縮と重複排除の機能も備えています。この機能により、同じデータの重複を排除し、ストレージ消費量を最小限に抑えることができます。

たとえば、同じデータが複数回保存されている場合、それを一つのデータとして扱うことで容量を節約できます。

AWS BackupとさまざまなAWSサービスの連携

AWS Backupは、多くのAWSサービスと連携することで、バックアップの信頼性や効率性を高めることができます。ここでは、いくつかの代表的な連携例をご紹介します。

バックアップの自動化 〜 バックアップポリシー 〜

AWS Backupでは、バックアップポリシーを設定することで、対象のリソースを自動でバックアップできます。これにより、手動でバックアップを行う手間を省き、バックアップの取りこぼしも防げます。

データを守る仕組み 〜 ボールトロック、エアギャップボルト 〜

バックアップボルトのボールトロック:

「ボールトロック」を使うと、バックアップボールトを変更できない状態に固定できます。これにより、データの削除や改ざんを防ぎ、「Write Once, Read Many(WORM)」モデルを実現します。

論理的エアギャップボールト(Logical Air-Gapped Vault):

バックアップデータを論理的に隔離(エアギャップ)することで、ランサムウェア攻撃や内部不正のリスクを低減できます。また、複数のアカウント間でバックアップデータを共有することで、災害発生時の復旧をよりスムーズに行えます。

監視・監査 〜 CloudTrail、CloudWatch、Backup Audit Manager 〜

CloudTrailによる監査:

CloudTrailを使えば、AWS Backupの操作ログを記録できます。たとえば、バックアップ作成や削除などのイベントを追跡し、不正操作の検出やコンプライアンス対応に役立てられます。

CloudWatchでリアルタイム監視:

CloudWatchはバックアップジョブや復元ジョブの状態をリアルタイムで監視し、異常が発生した場合にアラートを送信します。また、ストレージ使用量やバックアップ頻度を追跡することで、コストの最適化にも活用できます。

Backup Audit Manager:

Backup Audit Managerは、バックアップのコンプライアンス状況を簡単に監査・管理できるツールです。レポート生成やリアルタイム通知機能が用意されており、内部ポリシーへの準拠を自動で確認できます。

クロスアカウント・クロスリージョンバックアップ

以下は、バックアッププランを定義する際の主な選択肢です。

ローカルバックアップ:

同じリージョン内でバックアップデータを保存する、一般的な方法です。

クロスアカウントバックアップ:

バックアップデータを別のAWSアカウントにコピーすることで、ソースとなるAWSアカウントへの不正アクセス、ランサムウェアによる汚染といった脅威から、バックアップデータを保護します。

クロスリージョンバックアップ:

バックアップデータを別リージョンに保存する方法で、災害復旧(DR)に適しています。

クロスアカウントでバックアップを保持することで、コストを抑えつつ信頼性を向上させることが可能です。クロスアカウントバックアップは、ソースとなるAWSアカウントと分離して保存されるため、セキュリティの観点からも推奨されます。

IAMを利用したアクセス制御

バックアップの管理では、IAMを活用してアクセス制御を徹底することが重要です。

アクセスの最小化:
必要最低限のアクセス権限のみ付与します。

STS(セキュリティトークンサービス)の利用:
一時的なロールを使用して、長期間の権限付与を避けます。

リストア用ロールの限定:
復元操作を許可するユーザーを限定します。

3-2-1-1-0 バックアップルールの適用

バックアップの信頼性を高めるための、有用なデータ保護アプローチとして、3-2-1-1-0 バックアップルールが挙げられます。

3つのデータコピー:
ソース1つとバックアップ2つを確保します。

2つの異なるメディア:
データを2種類の異なるストレージに保存します。

1つはオフサイト:
データコピーの1つを災害リスクの少ない場所に保管します。

1つはオフラインまたはエアギャップ:
データコピーをネットワークから切り離して保存します。

0エラー:
定期的にテストして、復元可能であることを確認します。

まとめ

ファイルストレージのレジリエンスを高めるには、単にデータを多く保存するだけでは不十分で、災害対策(DR)やサイバー攻撃への備え、コストの最適化、法規制への対応といったさまざまな視点で総合的に考える必要があります。

AWSのファイルストレージサービスやツールには、スナップショット、フェイルオーバー、マルチAZやマルチリージョンレプリケーション、暗号化、不変性、論理エアギャップなど、多様な機能が用意されています。これらをうまく組み合わせることで、RPOやRTOの要件にも柔軟に対応できる環境を構築できます。

さらに、ストレージクラスやライフサイクルポリシーを活用すれば、可用性を保ちながらコストを大幅に削減することも可能です。

AWSの技術を活用することで、セキュリティと耐久性を強化しつつ、ビジネス継続性をしっかりと支える堅牢なストレージ環境を構築できると、改めて感じました。

開発メンバー募集中

より良いチームワークを生み出す

チームの創造力を高めるコラボレーションツール

製品をみる