プログラミング

【eLV】サーバーレスアーキテクチャ入門に参加してきた #eLV勉強会 #cloud #サーバーレス #インフラ

elv

【eLV】サーバーレスアーキテクチャ入門に参加してきました。

Contents

概要

eLV connpass
【eLV】サーバーレスアーキテクチャ入門 connpass

【eLV勉強会:サーバーレスアーキテクチャ入門】
本年、2018/01/31(水)の再演(パワーアップ版)です!! https://elv.connpass.com/event/74232/
AWS Lambdaなどで話題のサーバーレス。
興味があるけれども、モヤっとしている。
一体何が出来るのか、興味がある。
なぜ敢えてサーバーレスなのか。
色々聞いてみたいけれど、今更聞けない、サーバーレス。
サーバーレスについて始めて学ぶ方も、改めて知識を整理したい方も
お気軽にご参加ください。

内容 講師
【eLV勉強会:サーバーレスアーキテクチャ入門】 三井物産セキュアディレクション株式会社 中島 隆明さん

1.サーバレスアーキテクチャとは

1.1. サーバレスアーキテクチャの誕生

  • サーバレスの歴史
    • 2012年サーバレスKen Frommのブログにて始めた
    • 2014年 AWS Lambda提供開始
    • 2015年 API Gateway提供開始
    • 2016年 Azure Google IBMのサーバレス提供開始
  • BaaS、FaaSがサーバレスにあたる
    • FaaS Lambda,IBM Google Azure Functions

1.2. 従来型アーキテクチャとの比較

  • インスタンスが不要
  • 課金はコンピューティング時間。コードが動いていないときは、料金は発生しない
  • 既存のコードは使えるが、データの永続化が問題になる
    • データを保つためのサービスが必要(DynamoDB等)
  • スケーリングはクラウドベンダーにて管理
  • Faas関数はステートレス。一時領域は解放される
  • 長時間の実行は制限されている。動かし続けるサービスには向かない
  • 起動時の待ち時間は10ms。少し待ち時間がある
    • スループットを求める場合には、向かない
  • Lambdaでは、JavaScript,Pythonは10~100ms
  • JVMは10秒程度かかる場合もある
  • 言語によって、パフォーマンスが変わる
  • PaaSとの対比
    • インスタンスのライフサイクルが違う
    • 拡張性がもっとも違い
    • FaaSは、AutoScalingのみ
    • FaaSの場合は、サイズの固定はできないことが多い
  • コンテナとの対比
    • コンテナはOSも触ることができる
    • ビジネスロジックだけに集中したい場合は、FaaS
  • サーバレスは運用不要か?
    • アプリケーションの管理のために必要(課金が多すぎてアラート等)
  • SPassSとの対比
    • SPaaSテストがしづらい
    • FaaSは関数単位のため、テストしやすい

1.3. 提供されているサービス機能の概要

  • AWS Lambda
    • メモリ量と使った時間で課金
  • Azure Functions
    • 課金もだいたいAWSと同じ
  • Google Cloud Functions
    • 課金も他とだいたい同じ
    • 実行時間やメモリ量をユーザ側で調整可能
  • IBM Cloud Functions
    • 課金もだいたい同じだが、リクエスト回数ベースの課金
  • 各社によって使える言語が違う
  • 自社のプライベートクラウドでサーバレスを使いたい場合
    • OpenWhisk
    • OSSのサーバレスアーキテクチャ基盤

2. サーバレスアーキテクチャが実現するもの

2.1. ユースケース

  • マイクロサービス
    • 分割してサービスを作る 疎結合
    • サーバレスをDR環境に使う。使われていない間は、課金されない
  • シングルページアプリケーション
  • APIバックエンド
    • 単機能なサービスに向いている
  • モバイルバックエンド
  • データ処理
    • 予測の立てづらいのに向いている
  • コグニティブ
    • チャットボットのバックエンド
  • メッセージ駆動型

2.2. サンプルを紐解く

  • サンプル(Lambda):connpassのAPIを使って、イベントのURLをslackに投稿する
  • 追加ライブラリを使いたいときは、zipでまとめてアップロードする
  • エントリポイントが定められている。名前を変更可能
  • 環境変数を設定する場所がコンソールにあり、コードから環境変数を呼び出せる

2.3. 検討課題

  • 常に起動しているサービスには向かない
    • IaaSより高くなってしまう場合もある
  • アプリケーションのパターン
    • 一つの処理が長い場合向かない
  • どこの機能をサーバレスにするか
    • 部分的に機能を切り出す
  • DDosでコストが跳ね上がる場合がある

2.4. エクササイズ

  • チャットサービスをサーバレスに移行するなら

書籍

以下は発表の参考書籍です。
サーバレスシングルページアプリケーションは、読んだことあるので
マイクロサービスアーキテクチャを読んでみます。

感想

サーバレスの歴史から、具体的な検討課題やコードまで勉強することができました。
Lambdaしか使ったことなかったので、他社のFaasサービスについても聞けて興味深かったです。
今回初参加でしたが、eLVさんでは色々勉強会をやっているらしいので、他の勉強会も参加してみたいと思いました。