Upgrade to Pro — share decks privately, control downloads, hide ads and more …

劇的改善?? VPC Lambda Before&After

TomoyaIwata
October 26, 2019

劇的改善?? VPC Lambda Before&After

2019/10/26に開催されたDevelopers.IO 2019 Fukuokaで発表させて頂いた際の資料です

TomoyaIwata

October 26, 2019
Tweet

More Decks by TomoyaIwata

Other Decks in Technology

Transcript

  1. 6 アジェンダ • AWS Lambdaのアーキテクチャおさらい 5分 • VPC Lambdaのアーキテクチャ(新) •

    VPC Lambdaのアーキテクチャ(旧) • 改善効果について 6分 4分 6分 • どのように考え⽅を変えるべきなのか • まとめ 5分 2分
  2. 7 アジェンダ • AWS Lambdaのアーキテクチャおさらい 5分 • VPC Lambdaのアーキテクチャ(新) •

    VPC Lambdaのアーキテクチャ(旧) • 改善効果について 6分 4分 6分 • どのように考え⽅を変えるべきなのか • まとめ 5分 2分
  3. 11 アジェンダ • AWS Lambdaのアーキテクチャおさらい 5分 • VPC Lambdaのアーキテクチャ(新) •

    VPC Lambdaのアーキテクチャ(旧) • 改善効果について 6分 4分 6分 • どのように考え⽅を変えるべきなのか • まとめ 5分 2分
  4. 12 VPC Lambdaのアーキテクチャ (旧) ENIキャパシティの計算式: Projected peak concurrent executions *

    (Memory in GB / 3GB) ※Announcing improved VPC networking for AWS Lambda functions (https://aws.amazon.com/jp/blogs/compute/announcing-improved-vpc-networking-for-aws-lambda-functions/)より引⽤
  5. 13 VPC Lambdaのアーキテクチャ (旧) ※A Serverless Journey: AWS Lambda Under

    the Hood (SRV409-R1) - AWS re:Invent 2018 (https://www.slideshare.net/AmazonWebServices/a-serverless-journey-aws-lambda-under-the-hood-srv409r1-aws-reinvent- 2018?ref=https://dev.classmethod.jp/cloud/aws/reinvent2018-srv409/)より引⽤
  6. 14 VPC Lambdaの課題 • ENIの枯渇問題 • ENI作成のRate Limit • IPアドレス枯渇問題

    • ENI作成を伴うコールドスタート時の遅延 • インターネットアクセスにNAT Gatewayが必要
  7. 18 アジェンダ • AWS Lambdaのアーキテクチャおさらい 5分 • VPC Lambdaのアーキテクチャ(新) •

    VPC Lambdaのアーキテクチャ(旧) • 改善効果について 6分 4分 6分 • どのように考え⽅を変えるべきなのか • まとめ 5分 2分
  8. 19 VPC Lambdaのアーキテクチャ (新) ※Announcing improved VPC networking for AWS

    Lambda functions (https://aws.amazon.com/jp/blogs/compute/announcing-improved-vpc-networking-for-aws-lambda-functions/)より引⽤
  9. 20 VPC Lambdaのアーキテクチャ (新) ※A Serverless Journey: AWS Lambda Under

    the Hood (SRV409-R1) - AWS re:Invent 2018 (https://www.slideshare.net/AmazonWebServices/a-serverless-journey-aws-lambda-under-the-hood-srv409r1-aws-reinvent- 2018?ref=https://dev.classmethod.jp/cloud/aws/reinvent2018-srv409/)より引⽤
  10. 21 Hyperplane • AWS内部で利⽤されているSDNの技術 • S3 Load Balancerがベース • EFS、NLB、Private

    Link、Managed NATで利⽤ • デフォルト5Gbit/secの性能Tbitレベルまでスケール • msレベルのレイテンシー
  11. 23 • AWS Lambdaのアーキテクチャおさらい 5分 • VPC Lambdaのアーキテクチャ(新) • VPC

    Lambdaのアーキテクチャ(旧) • 改善効果について 6分 4分 6分 • どのように考え⽅を変えるべきなのか • まとめ 5分 2分
  12. Public subnet 24 検証1 AWS Cloud VPC • API GatewayのバックにVPC

    Lambdaを紐付け • EC2からheyコマンドで並列アクセス
  13. 25 2019/5/29時点の実⾏結果 Summary: Total: 13.4614 secs Slowest: 13.0460 secs Fastest:

    0.0194 secs Average: 1.2528 secs Requests/sec: 37.1433 Total data: 2500 bytes Size/request: 5 bytes Response time histogram: 0.019 [1] | 1.322 [448] |▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪ 2.625 [1] | 3.927 [0] | 5.230 [0] | 6.533 [0] | 7.835 [0] | 9.138 [0] | 10.441 [4] | 11.743 [9] |▪ 13.046 [37] |▪▪▪
  14. 26 2019/10/20時点の実⾏結果 Summary: Total: 1.3694 secs Slowest: 0.5470 secs Fastest:

    0.0225 secs Average: 0.0970 secs Requests/sec: 365.1342 Total data: 2500 bytes Size/request: 5 bytes Response time histogram: 0.023 [1] | 0.075 [411] |▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪ 0.127 [25] |▪▪ 0.180 [1] | 0.232 [0] | 0.285 [0] | 0.337 [0] | 0.390 [9] |▪ 0.442 [7] |▪ 0.495 [33] |▪▪▪ 0.547 [13] |▪
  15. 29 検証2の結果 Summary: Total: 21.8108 secs Slowest: 3.4042 secs Fastest:

    2.0223 secs Average: 2.1532 secs Requests/sec: 458.4892 Total data: 50000 bytes Size/request: 5 bytes Response time histogram: 2.022 [1] | 2.160 [8998] |▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪ 2.299 [1] | 2.437 [0] | 2.575 [0] | 2.713 [0] | 2.851 [0] | 2.990 [0] | 3.128 [113] |▪ 3.266 [844] |▪▪▪▪ 3.404 [43] |
  16. 33 検証3 • FargateでLocustのクラスタを作成し、API GW経由で VPC Lambdaに⼤量アクセス • Lambdaは3秒Sleep後にレスポンスを返却 •

    Usersは1,100に設定 • Hatch rateは100に設定 • 同時実⾏数の上限に達するようなワークロード
  17. 38 • AWS Lambdaのアーキテクチャおさらい 5分 • VPC Lambdaのアーキテクチャ(新) • VPC

    Lambdaのアーキテクチャ(旧) • 改善効果について 6分 4分 6分 • どのように考え⽅を変えるべきなのか • まとめ 5分 2分
  18. 39 VPC Lambdaの課題(再掲) • ENIの枯渇問題 • ENI作成のRate Limit • IPアドレス枯渇問題

    • ENI作成を伴うコールドスタート時の遅延 • インターネットアクセスにNAT Gatewayが必要
  19. 43 その他 考慮しておきたいこと • VPC Lambdaを使う ≒ 何かしらのサービスを利⽤するためのラ イブラリが必要 •

    パッケージやLayerが肥⼤化しがち 当然コールドスタートは遅い • アプリケーションフレームワークは使う︖それとも使わない︖ • モノリシックなアプリケーションをVPC Lamdbaに乗せ替えよう としていないか︖︖
  20. 44 • AWS Lambdaのアーキテクチャおさらい 5分 • VPC Lambdaのアーキテクチャ(新) • VPC

    Lambdaのアーキテクチャ(旧) • 改善効果について 6分 4分 6分 • どのように考え⽅を変えるべきなのか • まとめ 5分 2分