LoginSignup
1
0

More than 1 year has passed since last update.

【AWS】Lambda with EFSの構築

Posted at

きっかけ

  • Lambdaで/tmp上限の500MBを超えるファイルを扱う必要があり、その動作確認のため。

構築Step

  1. VPCの構築、SG等の設定
  2. EFS構築、アクセスポイントの設定
  3. Lambda構築、設定、動作確認

1. VPCの構築

  • 適当なVPCを作成
    スクリーンショット 2022-01-10 0.05.08.png

  • DNSホスト名を有効化
    スクリーンショット 2022-01-10 0.05.23.png

  • 適当なサブネットを作成
    スクリーンショット 2022-01-10 0.05.57.png

  • Lambda用SGを作成
    スクリーンショット 2022-01-10 0.06.59.png

  • EFS用SGを作成

    • インバウンドルールに上記で作成したSGを設定 スクリーンショット 2022-01-10 0.07.52.png
  • Lambda用IAMロールを作成

    • AWSLambdaVPCAccessExecutionRole, AmazonElasticFileSystemClientReadWriteAccessは必要 スクリーンショット 2022-01-10 0.09.36.png

2. EFSの構築、アクセスポイントの設定

  • EFSで上記で作成したVPCを選択、カスタマイズを押下
    スクリーンショット 2022-01-10 0.11.07.png

  • NW設定でSGを上記で作成したEFS用SGを設定
    スクリーンショット 2022-01-10 0.11.53.png

  • アクセスポイントを作成
    スクリーンショット 2022-01-10 0.12.50.png
    スクリーンショット 2022-01-10 0.13.02.png

3. Lambda構築、設定、動作確認

  • Lambdaを構築
     -  ロール設定を上記で作成したIAMロールに設定
    スクリーンショット 2022-01-10 0.15.01.png

  • LambdaのVPC設定で上記で作成したVPC,サブネットに設定
    スクリーンショット 2022-01-10 0.15.49.png

  • Lambdaのファイルシステム設定で作成したEFSアクセスポイントに設定
    スクリーンショット 2022-01-10 0.18.20.png

  • LambdaにEFSのマウントパス先にファイル作成するコードを記載、デプロイ
    スクリーンショット 2022-01-10 0.25.03.png

lambda_function.py
file_path = '/mnt/efs/'

def lambda_handler(event, context):
    file_name = 'test-efs.txt'
    write_string = 'test-efs'

    with open(file_path + file_name, mode='w') as f:
        f.write(write_string)

    with open(file_path + file_name) as f:
        print(f.read())
  • テストを押下し、正常終了することを確認
    スクリーンショット 2022-01-10 0.25.43.png

  • EC2からEFSにアクセスし、想定通りにファイル、コンテンツが作成されていることを確認
    スクリーンショット 2022-01-10 0.38.03.png

    • EC2にEFSをマウントする方法については過去記事参照

参考URL

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0