1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

メモ AWS Lambda

Posted at

参考にした講演はこちらです。
https://www.youtube.com/watch?v=QvPgjEwgiew&t=1314s

AWS Lambdaの基本(part1)

Lambda関数

  • Lambda関数とは、AWS Lambdaで実行するアプリケーションのこと
  • それぞれが隔離されたコンテナ内で実行される
  • 実行の際に呼び出す
  • コードは依存関係も含めてアップロード

サポートされている言語

サポートされていない言語はカスタムランタイムを実装することで利用可能

Lambdaファンクション基本設定

  • メモリ
    • 64MBごとに128MB~3008MB
    • 容量に応じてCPU能力も比例
    • メモリ容量が一定を超えると使用するコア数も増える
  • タイムアウト
    • 最大15分
  • 実行ロール
    • AWSリソースアクセス用のIAMロールを準備

Lambdaファンクションの制限

  • インバウンドネットワーク接続はブロックされる
  • アウトバウンドはTCP/IPとUDP/IPソケットのみ
  • ptraceシステムコールはブロックされる
  • TCP 25番ポートのトラフィックはブロックされる

Lambda の実行環境

イベントソース

  • イベントソースとは・・・イベントの発生元となるAWSのサービスまたはユーザが開発したアプリケーション
  • イベントソースには3タイプ
    • ポーリングベース・・・Lambdaがポーリングをして処理するデータが有る場合にLambda関数を実行
      • ストリームベース
      • ストリームベース以外
    • ポーリングベース以外
      • Lambda関数はイベントソースから呼び出される

呼び出しタイプ

Lambda関数のライフサイクル

  1. ENIの作成
  2. コンテナの作成
  3. デプロイパッケージのロード
  4. デプロイパッケージの展開
  5. ランタイム起動・初期化
  6. 関数/メソッドの実行
  7. コンテナの破棄
  • 1~6を新規に実行するのがコールドスタート
    • コールドスタートが起こる条件 = 利用可能なコンテナがない場合
      • 1つもコンテナがない
      • 利用可能な数以上に同時に処理すべきリクエストがきた
      • コード、設定を変更した
  • 1~6を再利用するのがウォームスタート
    • 安定的にリクエスト数が発生している場合はウォームスタート?

ユースケース

  • サーバーレスサムネイル作成

  • サーバーレス CRON Job

ラムダの制限

  • RAM 128mBから3G
  • CPU 
    • RAMに依存する
    • 2 vCPU
  • 時間制限
    • 15分間
  • /tmp ストレージ 512MB 大きなファイルを処理不可。
  • パッケージ容量制限 250MB
  • 同時実行数
    • ある時点における実行中のLambada関数の数
    • 実績に応じて制限緩和申請が可能
  • Function burst concurrency 1000?(増やすこと可能) 500-3000

ラムダ レイテンシー

★ここわからん

セキュリティ

  • IAMロール
    • ラムダが他のAWSサービスにアクセスできるようにIAMロールを割り当てる。
  • リソースベースポリシー for Lambda
    • 他のアカウントがLambdaをアクセスできるように許可
    • 他のAWSサービスがLambdaをアクセスできるように許可
  • VPCとの併用
    • ラムダをVPC内にデプロイすることが可能。
    • VPC内にデプロイしたラムダからインターネットに接続するには設定が必要。
  • ラムダの監視
    • CloudWatch
      • 実行ログは CloudWatch Logsに格納
      • メトリックスはCloudWatch Metricsに表示
      • 重要 ラムダ関数がCloudWatch logsへの書き込み(IAMロール)権限を持っているか確認
    • X-Ray
      • (X-Ray勉強しないとわからん)
      • トレースできる
      • 重要 ラムダ関数が実行ロールあるか確認

同期呼び出し(Invocation)

非同期呼び出し(Invocation)

  • S3, SNS, CloudWatch Events・・・
  • ラムダはリトライを試みる(3回)
  • ユースケース例. S3にファイルが作成されたとき
  • プロセスが冪等(idempotent)かを確かめる
    • 冪等性について勉強が必要
  • dead letter queueの送信
    • プロセスが失敗したときにSNS or SQSへ送信する
  • https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/invocation-async.html

イベントソースマッピング

疑問点

冪等性とは??

  • 1回だけ処理したいものが1回だけ処理される?
  • Lambdaは1回だけ処理したいものが複数回処理が行われることがあるから、DynamoDB等で冪等性を保証しないといけない。
    https://dev.classmethod.jp/articles/lambda-dynamodb/
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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?