Amazon EFS のレプリケーション機能を使ってみた

この記事は公開されてから半年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

Amazon EFSのレプリケーション機能を利用して、DR構成を構築する機会がありました。構築したDR構成、注意事項、実際に運用した際のパフォーマンスを紹介します。

※ CloudFrontのオリジンフェイルオーバー機能に関する説明は割愛します。

構成

DR構成としてはマルチサイト構成としています。

※ オリジンフェイルオーバーした場合、リクエストがセカンダリオリジンに流れますが、ファイルシステムがRead-onlyであっても、サービス提供可能なコンテンツです。

注意事項

EFSレプリケーションを利用する上での注意点をまとめてみました。

  • レプリケーションはプライマリファイルシステムがRead/Write、セカンダリファイルシステムがRead-onlyとして構成される。また、役割のフェイルオーバー機能は無い。
  • セカンダリファイルシステムをRead/Writeにプロモートする場合は、レプリケーション設定の削除を実施する必要がある。
  • セカンダリファイルシステムがOneZoneストレージを利用している場合、セカンダリファイルシステムのパフォーマンスモードは汎用パフォーマンスモードが使用され変更する事ができない。
  • レプリケーションを設定した時点で、セカンダリファイルシステムの「ライフサイクル管理」と「Automatic backups」はオフになっている。個別で設定する必要有り。
  • ほとんどの変更は1分以内にレプリケートされるが、頻繁に変更されるファイルがある場合や、1億を超えるファイルまたは100 GBを超えるファイルがある場合、レプリケートされるまで15分以上かかる。

参考 : https://docs.aws.amazon.com/ja_jp/efs/latest/ug/efs-replication.html#efs-replication-costs

パフォーマンス

実際に運用中のプライマリファイルシステムに関するRead/Writeのワークロードと、セカンダリファイルシステムの同期が完了するまでの時間に関するメトリクスを公開しておきます。EFSレプリケーション導入の参考になれば幸いです。

  • DataWriteIOBytes/DataReadIOBytes (5min/Average/1week)
  • TimeSinceLastSync (5min/Average/1week)

全体のストレージ容量は300GB程度あり、レプリケーションの同期が完了するまでに5分間平均で250秒~650秒程度かかる。

参考 : https://docs.aws.amazon.com/ja_jp/efs/latest/ug/efs-metrics.html

まとめ

S3を利用しない場合のリージョン間コンテンツ同期に悩まされる日々でしたが、ここまでシンプルに構成を組めるようになった事を嬉しく思います。(大阪リージョンの拡大も早いよなぁと思いつつ)

Rsyncや、独自スクリプトで消耗している方はいませんか?是非、EFSレプリケーションをご検討・ご相談ください!