[レポート]エンタープライズアプリケーションのサーバーレスジャーニー #reinvent #ENT314

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

本記事は「ENT314-R - The Future of Enterprise Applications is Serverless」の参加レポートです。

Lambdaの登場以降エンタープライズアプリケーションでもサーバレス化が進んでいます。このセッションでは事例を通してLambaを中心としたサーバーレスの開発/移行についての理解を深めることができます。

セッション概要

At re:Invent 2014, we announced AWS Lambda and ushered in a whole new world of application design, one without the need to manage or think about traditional server infrastructure. Since then, serverless has become one of the hottest topics in the industry. Customers like Capital One and Coca Cola talk about how serverless saved them time and money, helped them reduce their operational burden, and drove developer agility and innovation. What is serverless, and what are the key trends you should be aware of? Where does one start on the journey of building serverless applications? We cover all of this and more in this session.

レポート

アジェンダ

  • サーバーレスについて
  • サーバーレスは何から始めるべきか
  • centrica社(British Gas)のサーバーレスジャーニー

サーバーレスについて

サーバーレスとは​​何か

  • 管理するサーバーがない
  • 使った分だけスケール
  • アイドル費用が発生しない
  • 可用性とフォールトトレランスが組み込まれている

サーバーレスによって得られる効果

  • より高い機敏性
  • オーバーヘッドの減少
  • スケールの拡大
  • 柔軟性の向上
  • 市場投入時間の短縮

Lambdaのユースケース

  • Webアプリケーション
  • バックエンド
  • データープロセッシング
  • チャットボット
  • アレクサ

サーバーレスのアーキテクチャ

  • S3 + Lambda
  • Data Publish to topic + SNS + Lambda
  • SQS + Lambda
  • Kinesis + Lambda
  • Chatbot + Lex + Lambda
  • CloudWatchEvent + Lambda

サーバーレスは何から始めるべきか

利用すべきフレームワーク

  • AWS
    • AWS SAM
    • AWS Amplify
    • AWS Chalice
  • Theid-party
    • APEX
    • Serverless Framework
    • architect
    • SPARTA

AWS SAM

AWS が公式で提供しているサーバーレスアプリケーションを構築するためのフレームワーク (モデル) 。Lambda, API Gateway, DynamoDB のリソースをひとまとめに管理 (作成 / 更新 / 削除) することが可能。

British Gas社のサーバーレスジャーニー

Centrica

  • イギリス、アイルランド、北アメリカにあるエネルギー会社
  • 25MNの顧客口座と28億BNの年間売上高

British Gas

  • Centricaのガス事業を運営
  • ガス利用者はWEBで支払額を確認・支払をすることができる

オールドアーキテクチャ

  • モノリシックな構成
    • 強く結合されたアーキテクチャ・・・全ての変更に対し包括的なテストが必要になる
    • インフラストラクチャ監視の保守アップグレード・・・遅く、高価
    • 新しいコンポーネントサービスの導入・・・難易度が高い
    • リリース・・・サイクルタイムは数ヶ月、四半期

チームの編成を変更

  • プロジェクト単位のチームをプロダクト単位へ

クラウドの採用原則

エンタープライズで利用するシステムの原則とクラウドを利用する上での必要事項をそれぞれ分けて定義しています。

サーバーレスジャーニー後のアーキテクチャ

  • Webアプリケーションはサーバーレスで実現(API Gateway、Lambda)
  • CodeシリーズによりCI/CDを実現
  • IAM、Certificate Manager、KMSなどのサービスを利用しセキュリティを強化

これまでに学んだ教訓

  • 学ぶべきことがたくさんある(小さなステップで実施するべき)
  • 新しいサービスではなく、既存のバックエンドサービスとの統合を開始する
  • コネティビティーの確立に時間がかかる(事前に計画を立てる)

得られた利益

  • コスト削減
    • 事業費の規模の縮小
  • フォーカス
    • 基盤となるインフラストラクチャについて心配することなく、コアビジネスロジックと顧客経験に焦点を当てる
  • アジリティ
    • 1日および1週間の短いサイクルでのリリース

まとめ

サーバーレスの概要からメリットまで幅広く学べるセッションでした。 近年エンタープライズアプリケーションでもLambdaを使った事例は増えてきています。サーバーレスには難しい部分もありますが、それに見合うだけのメリットもあると思います。まだサーバーレスアプリケーションを構築したことがない方は、小さいところからサーバーレスを導入してみてはいかがでしょうか。