背景
- 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日ほど放置すれば取り急ぎ安定してデータ取得できるようになる傾向がある。
参考