Mountpoint for Amazon S3 の共有キャッシュ利用時に S3 Express One Zone 障害の挙動を検証してみた

Mountpoint for Amazon S3 の共有キャッシュ利用時に S3 Express One Zone 障害の挙動を検証してみた

2025.09.12

AWS FIS が S3 Express One Zone の障害注入に対応しました。Mountpoint for S3 の共有キャッシュ機能で S3 Express One Zone を利用した場合、AZ 障害時にどのような挙動になるか検証しました。

FIS-Mountpoint-share-cache (1).png

はじめに

本記事は、以下 2 つの記事の続編です。

今回は FIS を使って S3 Express One Zone に障害を注入し、Mountpoint for S3 の挙動を確認します。

検証環境の準備

検証環境の構成

本検証では以下の環境を使用しました。

項目 内容
EC2 インスタンス t3a.micro(Ubuntu 24.04 LTS)
リージョン ap-northeast-1(東京)
S3 Standard バケット オリジナルデータ格納用
S3 Express One Zone 共有キャッシュ用(apne1-az4)
Mountpoint for S3 v1.19.0(共有キャッシュ機能を有効化)

共有キャッシュ設定した Mountpoint for Amazon S3 の設定手順は以下の記事で紹介しています。

https://dev.classmethod.jp/articles/small-file-fast-mountpoint-s3-shared-cache/

Mountpoint for S3 のマウント状況

まず、Mountpoint for S3 で S3 バケットをマウントしました。共有キャッシュに S3 Express One Zone を使用しています。

			
			$ df -h | grep mountpoint
mountpoint-s3    8.0E     0  8.0E   0% /mnt/s3

		

検証用ファイルの確認

S3 バケットには 500KB のファイルが約 10,000 個保存されています。これらのファイルを使ってキャッシュの動作を検証します。

			
			$ ls -lh /mnt/s3/small-files-s5cmd-test1 | head -n 5
total 4.8G
-rw-r--r-- 1 ubuntu ubuntu 500K Jul 20 08:35 small_file_1.dat
-rw-r--r-- 1 ubuntu ubuntu 500K Jul 20 08:35 small_file_10.dat
-rw-r--r-- 1 ubuntu ubuntu 500K Jul 20 08:35 small_file_100.dat
-rw-r--r-- 1 ubuntu ubuntu 500K Jul 20 08:35 small_file_1000.dat

		

正常時のキャッシュ動作を確認

初回アクセス時の動作

Mountpoint 経由でファイルをローカルにコピーします。初回アクセスのため、S3 からデータを取得します。

			
			$ time cp /mnt/s3/small-files-s5cmd-test1/small_file_1.dat /tmp

real	0m0.141s
user	0m0.000s
sys	0m0.005s

		

S3 Express One Zone にキャッシュが作成される

S3 Express One Zone を確認すると、500KB のキャッシュファイルが作成されました。

			
			$ aws s3 ls --recursive s3://mountpoint-for-s3--apne1-az4--x-s3
2025-09-09 13:54:11     512000 1bbbd542c00166a104ef03fc8f84befd45681ed973e14b590236245b11b326bc/3e84d4ada0ace0599823bc595bb70c9c5c4ff734aefbebe2969872926db5f611/0000000000
2025-09-09 13:48:16         60 1bbbd542c00166a104ef03fc8f84befd45681ed973e14b590236245b11b326bc/_mountpoint_cache_metadata

		

キャッシュヒット時の高速化

同じファイルに再度アクセスすると、約 10 倍高速になりました。ただし、複数回テストすると初回アクセスとほぼ同じ 0.135 秒かかることもありました。

			
			$ time cp /mnt/s3/small-files-s5cmd-test1/small_file_1.dat /tmp

real	0m0.012s
user	0m0.002s
sys	0m0.004s

		

AWS FIS で S3 Express One Zone に障害を注入

AWS FIS を使用して S3 Express One Zone に障害を注入します。詳しい手順は以下の記事で紹介しています。

https://dev.classmethod.jp/articles/aws-fis-s3-express-one-zone-resilience-testing/

今回は AZ 障害をシミュレートし、S3 Express One Zone へのアクセスを遮断しました。

障害注入後の挙動を確認

AWS_FIS___ap-northeast-1.png

Running 状態が障害をシミュレート中です。この間にファイルコピーを試します。

AWS_FIS___ap-northeast-1-2.png

大幅な遅延が起きるけどアクセスはできる

S3 Express One Zone にアクセスできない状態でファイルをコピーしてみました。

Mountpoint for S3 は以下の動作をしました。

  1. S3 Express One Zone のキャッシュを確認(タイムアウトしたと思われる)
  2. タイムアウト後、通常の S3 バケットから直接取得

最初のファイルは 1 分 31 秒かかりました。

			
			$ time cp /mnt/s3/small-files-s5cmd-test1/small_file_1.dat /tmp
real	1m31.763s
user	0m0.000s
sys	0m0.005s

		

アクセス時間にばらつきがある

複数のファイルをコピーすると、22 秒から 1 分 42 秒と大きなばらつきがありました。

			
			$ time cp /mnt/s3/small-files-s5cmd-test1/small_file_20.dat /tmp
real	0m22.914s
user	0m0.000s
sys	0m0.005s

$ time cp /mnt/s3/small-files-s5cmd-test1/small_file_21.dat /tmp
real	0m34.558s
user	0m0.000s
sys	0m0.005s

$ time cp /mnt/s3/small-files-s5cmd-test1/small_file_1.dat /tmp
real	1m42.647s
user	0m0.000s
sys	0m0.007s

		

データの整合性は保たれる

時間はかかりましたが、ファイルは正常にコピーされました

			
			$ ls -l /tmp | grep small
-rw-r--r-- 1 ubuntu ubuntu 512000 Sep 12 05:15 small_file_1.dat
-rw-r--r-- 1 ubuntu ubuntu 512000 Sep 12 05:07 small_file_20.dat
-rw-r--r-- 1 ubuntu ubuntu 512000 Sep 12 05:08 small_file_21.dat

		

まとめ

Mountpoint for S3 の共有キャッシュで S3 Express One Zone を利用した場合の障害時の挙動を検証しました。

検証結果

  • 可用性は維持される
    S3 Express One Zone が利用不可でも、S3 から直接データを取得できました

  • パフォーマンスは大幅に低下する
    正常時 0.012 秒 → 障害時 最大 1 分 42 秒

おわりに

AWS ParallelCluster でコンピュートノードはインスタンスストア付きのインスタンスタイプでの利用時に、大規模ストレージとして S3 を Mountpoint for Amazon S3 でマウントして利用しています。ヘッドノードがシングル AZ 構成のため、ヘッドノードと AZ を合わせる形で S3 Express One Zone を利用して共有キャッシュを有効化しておくのは良さそうな印象でした。

キャッシュ設定もいろいろ増えていたのでまたの機会に深堀りして良い感じの設定を探っていきます。

https://github.com/awslabs/mountpoint-s3/blob/main/doc/CONFIGURATION.md#caching-configuration

この記事をシェアする

FacebookHatena blogX

関連記事