Lambda 関数のファイルシステムアクセスの設定
Amazon Elastic File System (Amazon EFS) ファイルシステムをローカルディレクトリにマウントするように関数を設定できます。Amazon EFS を使用すると、関数コードは共有リソースに安全かつ高い同時実行数でアクセスして変更できます。
実行ロールとユーザーアクセス許可
ファイルシステムにユーザー設定の AWS Identity and Access Management (IAM) ポリシーがない場合、EFS は、ファイルシステムマウントターゲットを使用してファイルシステムに接続できるすべてのクライアントへのフルアクセスを許可するデフォルトのポリシーを使用します。ファイルシステムにユーザー設定の IAM ポリシーがある場合、関数の実行ロールには正しい elasticfilesystem
許可が必要です。
実行ロールのアクセス許可
-
elasticfilesystem:ClientMount
-
elasticfilesystem:ClientWrite (読み取り専用接続には不要)
これらのアクセス許可は、AmazonElasticFileSystemClientReadWriteAccess 管理ポリシーに含まれています。さらに、実行ロールは、ファイルシステムの VPC に接続するために必要な許可を備えている必要があります。
ファイルシステムを設定する場合、Lambda はアクセス許可を使用してマウントターゲットを検証します。ファイルシステムに接続するように関数を設定するには、ユーザーに以下のアクセス許可が必要です。
ユーザーアクセス許可
-
elasticfilesystem:DescribeMountTargets
ファイルシステムとアクセスポイントの設定
関数が接続するすべてのアベイラビリティーゾーンにマウントターゲットを持つファイルシステムを Amazon EFS に作成します。パフォーマンスと耐障害性のために、少なくとも 2 つのアベイラビリティーゾーンを使用します。たとえば、シンプルな設定では、別々のアベイラビリティーゾーンに 2 つのプライベートサブネットを持つ VPC を作成できます。この関数は両方のサブネットに接続し、それぞれのサブネットでマウントターゲットを使用できます。NFS トラフィック (ポート 2049) が、関数およびマウントターゲットで使用されるセキュリティグループによって許可されていることを確認します。
注記
ファイルシステムを作成するときは、後で変更できないパフォーマンスモードを選択します。汎用 モードではレイテンシーが低く、最大 I/O モードではより高い最大スループットと IOPS がサポートされます。選択のヘルプについては、Amazon Elastic File System ユーザーガイドの「Amazon EFS のパフォーマンス」を参照してください。
アクセスポイントは、関数の各インスタンスを、接続先のアベイラビリティーゾーンの適切なマウントターゲットに接続します。最大のパフォーマンスを得るには、ルート以外のパスを持つアクセスポイントを作成し、各ディレクトリに作成するファイル数を制限します。次の例では、ファイルシステムに my-function
という名前のディレクトリを作成し、標準ディレクトリ許可 (755) で所有者 ID を 1001 に設定します。
例 アクセスポイントの設定
-
名前 -
files
-
ユーザー ID -
1001
-
グループ ID -
1001
-
パス -
/my-function
-
アクセス許可 -
755
-
所有者ユーザー ID -
1001
-
グループユーザー ID -
1001
関数がアクセスポイントを使用する場合、ユーザー ID 1001 とディレクトリへのフルアクセス許可が与えられます。
詳細については、Amazon Elastic File System ユーザーガイドの次のトピックを参照してください。
ファイルシステムへの接続 (コンソール)
関数は、VPC 内のローカルネットワークを介してファイルシステムに接続します。関数が接続するサブネットは、ファイルシステムのマウントポイントを含む同じサブネットでも、NFS トラフィック (ポート 2049) をファイルシステムにルーティングできる同じアベイラビリティーゾーン内のサブネットでもかまいません。
注記
関数が VPC にまだ接続されていない場合は、「」を参照してくださいLambda 関数に Amazon VPC 内のリソースへのアクセスを許可する
ファイルシステムアクセスを設定するには
Lambda コンソールの [関数ページ]
を開きます。 -
関数を選択します。
-
[設定]、[ ファイルシステム ] の順にクリックします。
-
[ファイルシステム] で、[ファイルシステムの追加] を選択します。
-
以下のプロパティを設定します。
-
EFS ファイルシステム - 同じ VPC 内のファイルシステムのアクセスポイント。
-
ローカルマウントパス - ファイルシステムが Lambda 関数にマウントされている場所 (
/mnt/
で始まります)。
-
料金
Amazon EFS では、ストレージとスループットに対して料金が発生します。レートはストレージクラスによって異なります。詳細については、「Amazon EFS の料金
Lambda では、VPC 間のデータ転送に対して料金が発生します。これは、関数の VPC がファイルシステムを持つ別の VPC にピア接続されている場合にのみ該当します。レートは、同じリージョン内の VPC 間の Amazon EC2 データ転送と同じです。詳細については、「Lambda の料金