1日1%成長する ~Aws Lambda Part2~
AWSの学習メモ
- AWSのblackbaltの動画を15分以上毎日見る
- 動画を簡単にまとめる
Aws Lambda Part2 基本 メモリ - 64MBごとに128MB~3008MB - メモリ容量に応じてCPU能力なども比例 - メモリ容量が一定を超えるとコア数増加 タイムアウト - MAX900秒(15分) プログラムモデルの基本 ハンドラー - エントリポイント - パラメータはJson形式 コンテキスト - ランタイムに関する情報が含まれ、ハンドラー内部からアクセス可 - コンテキストオブジェクトが2つめのパラメータとして渡される - コールバックを使用する言語の場合、コールバックメソッドの振る舞いを設定可能 ロギング - AWS CloudWatch Logs - CloudWatch Logsの制限があるのでそれに影響される場合もある 例外 - 各言語ごと - Lambda関数を同期的に呼び出している場合はクライアントへのエラーがレスポンスされる - ステートレスで作成 - 関数はリクエストのたび違うコンピューティングリソースになる可能性がある - ローカルファイルシステムへのアクセス等は制限される - 永続化にはs3、dynamodbまたはクラウドストレージサービスへ保存 設計図 - Python、Nodeはサンプルレコード集がある - Serverless Application Responsitoryというものがある - 作成したサーバレスアプリケーションを公開、共有するための機能 - 設計図はサービスチームによるメンテナンス、ユーザによる追加登録は不可能 VPC VPC内のリソースインターネットを経由せずにアクセス可能 AZごとに1つ以上のサブネットを指定しておくのがおすすめ ※AZ障害発生時やIPアドレス枯渇時にも別のAZでLambda関数を実行可能 ENIを利用 - 作成・削除はLambdaが完全コントロール - ENIにはサブネットのIPがDHCPで動的に割り当てられる - IAM roleにAWSLambdaVPCAccessExecuteRoleというポリシーをアタッチしておく VPCアクセスの注意 - 設定したタイミングからインターネットにアクセスできない - パブリックIPアドレスは割り当てられない - 必要な場合はNATインスタンスを用意 or Amazon VPC Natゲートウェイを利用 ENIまたはサブネットIPが無い場合はリクエストに失敗する - 非同期呼び出しの場合はこのエラーはCloudWatch Logに記録されない - コンソールで実行するなど、同期実行でエラー応答は取得可能 ※ENIキャパシティ:Projected peak concurrent executions * (Memory in GB/3GB)