背景
- AWS上でのストレージ管理にEFS(Elastic File Storage)を使うことがしばしばある
- EFSは通常は
burstingモードであり、不自由ない速度でファイルのR/Wが可能であるが、高頻度でR/Wするとburstクレジットなるものが消費され、一定の閾値を超えると途端にR/Wの速度が遅くなる - 上記に陥った際はEFSを
elasticモードにして(多少費用は掛かるものの)R/Wの速度を不自由ない速度にしたいときがよくある
EFSのモードの切替え方(モード:bursting → elastic、elastic → bursting)
EFSに対してしかるべきリクエストを送ればOK
具体的には、javascriptの場合は'aws-sdk'のEFSの更新リクエスト用メソッドにしかるべき設定(bursting or elastic)をしてコールすればOK(以下のような記事参照)
https://www.seeds-std.co.jp/blog/creators/2019-08-26-132438/
クレジットが減るとプロビジョニングになり、クレジットが充足するとバーストモードになる形です
https://dev.classmethod.jp/articles/how-to-change-from-amazon-efs-bursting-to-elastic-using-aws-cli/
"ThroughputMode": "bursting",
"ThroughputMode": "elastic",
以下は注意点メモ
- 該当記事では、
lambdaにてnode.jsを使用する際のプロファイルはnode.js 14.xを想定している(node.js 20等をそのまま使うとsdk等のimport方法が変わっている場合がある) - EFSアクセスの際は
lambdaのIAMロールにefs:fileupdate権限を付与する必要がある(同じサブネットの場合はセキュリティグループの設定はなくてもアクセスできた) -
CloudWatchでWatch対象の``について、開始直後はInsufficient Dataになることがしばしばある。1日ほど放置すれば取り急ぎ安定してデータ取得できるようになる傾向がある。
参考