1日1%成長する ~Aws Lambda Part2~

AWSの学習メモ

Aws Lambda Part2

VPC Q&A
    プライベートIPアドレスを固定することは?
        -> ENIはLambdaによって作成・削除が自動的に行われるので不可能

    グローバルIPアドレスを固定することは?
        -> VPCアクセスを有効にした時点でそのままインターネットへはアクセスできない

    アクセス元として特定Lambdaファンクションのみ許可は?
        -> Lambda関数に割り当てたセキュリティグループをソースとする許可ルール

    オンプレミスにあるリソースへアクセスしたい場合は?
        -> Direct ConnectやVPN

    レイテンシへの影響は?
        Lambda関数への初回アクセス時などENIの作成を伴う場合は10秒~60秒

    ENIはLambda関数ごとに作成?
        ENIは複数のLambda関数から共用させる

同時実行数
    アカウント単位:1000(デフォルト)
    関数A:上限100
    関数B:上限200
    その他:上限700
        ※DBへの書き込みや外部APIの呼び出しなどダウンストリームの流量制御や
        ENI/IPアドレスの利用量をコントロールしたい場合

環境変数
    コードの変更なく設定した値を渡すことが可能
        - DBの接続URLを本番、開発用の2種類のLambda関数で切り替え
        - key/valueのペア

    関数のコードからのアクセスは各言語でサポート
        - Node.jsはprocess.envなど

    暗号化
        - KMSで暗号化される
        - 暗号化はデプロイプロセス後
        - 関数が呼び出されると自動的に復号化される
        - 環境変数に機密情報を保存する場合はデプロイ前に暗号化することを強く推奨
            - 暗号化ヘルパー利用
        - 独自のサービスキーも利用可能(KMSの料金が適用される)

    制限
        - key/valueの合計サイズが4KB以下
        - 文字は[a-zA-Z]で開始
        - 利用可能な文字列は[a-zA-Z0-9_]

バージョニング
    ある一時点のLambdaファンクションをバージョンとして管理可能
        - 新しいバージョンはいつでも発行可能で、各バージョンには一意のARNがある
        - Lambdaファンクションの作成/更新時にpublishパラメータを追加する
        - PublishVersionを実行することで明示的に発行することも可能
        - バージョンの発行をするまでは$LATESTが唯一のバージョンとなる
        - エイリアス(特定のバージョンに対するポインタ)

Lambda Layres
    共通コンポーネントをzipファイルにしてLambda Layersとしてアップロード
    Layersはimmutableであり、アップデート管理のためにバージョニング
    5つまでLayersまで可能