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

Everything will be Serverless

Keisuke69
December 14, 2019

Everything will be Serverless

ServerlessDays Fukuoka 2019でキーノートをさせていただいた際の資料です。ServerlessDays Tokyo 2019でのキーノートでお話した際の資料をベースに少しアップデートされています。
質問などあればTwitter (@Keisuke69)までDMなどでどうぞ!

Keisuke69

December 14, 2019
Tweet

More Decks by Keisuke69

Other Decks in Technology

Transcript

  1. © 2019, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Keisuke Nishitani (@Keisuke69) Manager, Senior Solutions Architect Amazon Web Services Japan K.K.
  2. © 2019, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Not Event-driven APIコール 処理追加
  3. © 2019, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Event-driven サブスクライブ
  4. © 2019, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 201501 201502 201503 201504 201505 201506 201507 201508 201509 201510 201511 201512 201601 201602 201603 201604 201605 201606 201607 201608 201609 201610 201611 201612 201701 201702 201703 201704 201705 201706 201707 201708 201709 201710 201711 201712 201801 201802 201803 201804 201805 201806 201807 201808 201809 201810 201811 201812 201901 201902 201903 201904 201905 201906 201907 201908 201909 Customer Loves Serverless
  5. © 2019, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 国内のお客様(抜粋)
  6. © 2019, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. AWS Lambda release history Lambda Preview Announcement Lambda GA 1.5 GB RAM Amazon API Gateway Launch Amazon DynamoDB Stream Support 300s Execution Duration Python 2.7 Support Java Support Alexa Integration Function Versioning Scheduled CloudWatch Events Support Amazon SWF Support Amazon VPC Support API Gateway Proxy Environment Variables AWS SAM Lambda@Edge Announcement Node 4.2 Support AWS CodeCommit Support C# .Net Support AWS GreenGrass Lambda Support SAM Enhancements Python 3.6 1000 Concurrency Limit PCI Certification AWS SAM Local (now AWS CLI) SOC Certification Per Function Concurrency Controls Node.js 6.10 Tagging AWS X-Ray 3 GB RAM Support HIPAA Eligible Traffic Shifting/Weighted Aliases AWS Serverless Application Repository Announcement .Net Core v2.0 AWS CLI relaunch FedRAMP Certification AWS CLI—Lambda Local, Log tailing PowerShell Support 15-Minute Execution Duration Go Support Node.js v8 Amazon SQS Support .Net 2.1 Support AWS CLI Go Debugging Console AppView 99.95% SLA *As of Dec 2019, does not include region launches 2015 2016 2017 2018 2019 VPC Improvement CloudWatch Logs Insights integration Amazon Linux 2018.03 Node.js 10 Ruby Layers Custom runtimes ALB triggers Kinesis HTTP/2 stream consumers Python 3.7 Stream batch settings Create app in Console RDS Proxy Provisioned Concurrency Node.js 12, Java 11, and Python 3.8 Customize retry behavior Des:na:ons for Async Invoka:on
  7. © 2019, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. かつてのAnti-Pattern
  8. © 2019, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. AWS Lambda と RDBMS Amazon RDS Amazon Aurora Lambda function
  9. © 2019, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. AWS Lambda と RDBMS Amazon RDS Amazon Aurora Lambda function
  10. © 2019, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Photo on Visualhunt.com
  11. © 2019, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Using Amazon RDS Proxy with AWS Lambda Amazon RDS Amazon Aurora Lambda function
  12. © 2019, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Using Amazon RDS Proxy with AWS Lambda Amazon RDS Amazon Aurora Lambda function Amazon RDS Proxy
  13. © 2019, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. RDSのコネクションプールマネージャ 東京を含む5リージョンで利用可能 (Public Preview) Lambdaからも利⽤可能 Amazon RDS Proxy
  14. © 2019, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. AWS Lambdaのネットワーキング AWS Lambda Service VPC AWS Lambda Execution Environment
  15. © 2019, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. AWS Lambdaのネットワーキング AWS Lambda Service VPC AWS Lambda Execution Environment ユーザが所有するVPC Elastic network interface
  16. © 2019, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. AWS Lambdaのネットワーキング AWS Lambda Service VPC ユーザが所有するVPC
  17. © 2019, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. AWS Hyperplane Internal network load balancing service Graphic Option 3
  18. © 2019, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. AMAZON Elastic File System AWS Managed NAT AWS PrivateLink AWS Network Load Balancer
  19. © 2019, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. AWS Lambdaのネットワーキング AWS Lambda Service VPC ユーザが所有するVPC Elastic network interface VPC to VPC NAT
  20. © 2019, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. コールドスタートレイテンシの改善 スケーリング ネットワークインターフェースの共有 VPC環境の改善
  21. © 2019, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. モダンアプリケーション 市場投⼊を加速 イノベーションの向上 信頼性の向上 コスト削減
  22. © 2019, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. オペレーション 価値を⽣まない作業をオフロード すべてを⾃動化 Developer-First な開発フロー すべてを⾃動化 Continuous Integration / Continuous Delivery アーキテクチャ 極⼩化されたスコープとマイクロサービス 疎結合、そしてイベントドリブン データ 正しいツールを利⽤ ⽬的に適した DB の利⽤ セキュリティ ⾃動化された、継続的なセキュリティ評価 適切なアクセス権限と成果物の検証 モダンアプリケーション
  23. © 2019, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 幅広いアプリケーション実⾏環境 Amazon EC2 AWS Lambda AWS Fargate Amazon ECS Amazon EKS
  24. © 2019, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. モダンアプリケーション開発を⽀援するサービス On-Premises Cloud More Less Compute Virtual Machine Amazon EC2 AWS Lambda AWS Fargate Amazon ECS Amazon EKS Databases MySQL MySQL on EC2 Amazon RDS MySQL Amazon RDS Aurora Amazon Aurora Serverless Amazon DynamoDB Storage Storage Amazon S3 Messaging ESB Amazon MQ Amazon Kinesis Amazon SQS / Amazon SNS Analytics Hadoop Hadoop on EC2 Amazon EMR Amazon Elasticsearch Service Amazon Athena オペレーション負荷 Serverless
  25. © 2019, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. MICROSERVICE API API MICROSERVICE MICROSERVICE EVENT API MICROSERVICE EVENT API MICROSERVICE APPLICATION Mobile client Client IoT PERSISTENCE PERSISTENCE Microservices architectures
  26. © 2019, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. APIはMicroservicesの⽞関
  27. © 2019, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Mobile apps Websites Services Internet Amazon CloudFront Amazon CloudWatch monitoring API Gateway cache Any other AWS service All publicly accessible endpoints AWS Lambda functions Endpoints in your VPC Regional API Endpoints AWS Lambda functions Endpoints on Amazon EC2 Your VPC AWS API Gatewayを利⽤したAPI管理
  28. © 2019, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. イベントドリブンアーキテクチャ
  29. © 2019, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. メッセージングを活⽤してコードからステート を取り除く Queues Simple Fully-managed Any volume Pub/sub Simple Fully-managed Flexible Amazon Simple Queue Service Amazon Simple Notification Service Messaging Synchronization Rapid Fully-managed Real-time Amazon CloudWatch Events
  30. © 2019, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. データと処理の状態を トラッキング 冗⻑なコードを削除 ワークフローを構築してすべてを オーケストレーション
  31. © 2019, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. コードを減らし、よりシンプルなインテグレー ション AWS Lambdaで ポーリング Step Functionsによる インテグレーション Start Submit Job Wait X Seconds Get Job Status Job Complete? Set Job Failed Set Job Succeeded Sent Message to SNS End AWS Lambda functions Synchronously Run a Batch Job Publish Success to SNS Publish Error to SNS Start End No Lambda functions
  32. © 2019, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. クラウドネイティブなアーキテクチャは ⼩さいピースで構成され、疎結合
  33. © 2019, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 「何をするか」 を書くだけでいい
  34. © 2019, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 当時のスライド
  35. © 2019, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 当時のスライド
  36. © 2019, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Photo on VisualHunt
  37. © 2019, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 1/10アイドル時間のリソースが 解放され、利⽤費が最適化 9:1 “開発:保守/運⽤” の作業 ⽐率が 1:9 から⼤きく改善 1/3 コード量の減少(従来⽐) = ⽣産性向上、保守改善 5x 従来より⽣産性が向上 アプリ展開を加速化 お客様の効果例 1⼈ 運⽤を 1 ⼈で楽に実施 機能改善に注⼒可能 2ヶ⽉ スケール、冗⻑化などの 考慮不要で短期実装可能 1/6 安定した定常稼働により 運⽤の労⼒を⼤幅に短縮 1-2⽇簡易な機能追加は短期で 実装・デプロイ可能
  38. © 2019, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Photo on Visual Hunt
  39. © 2019, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Photo on Visual hunt
  40. © 2019, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. AWS Helps your Serverless Journey Still Day 1
  41. © 2019, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Keisuke Nishitani (@Keisuke69) Manager, Senior Solutions Architect Amazon Web Service Japan K.K Everything will be serverless. ⾳楽 x キャンプ x マンガ フジロッカー Twitter: https://twitter.com/Keisuke69 ブログ: https://www.keisuke69.net/