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

Serverless Scala

Serverless Scala

Lightweight Use Of Scala On AWS

arai-yusuke

May 28, 2016
Tweet

More Decks by arai-yusuke

Other Decks in Technology

Transcript

  1. WHOAMI Yusuke Arai Server App Programmer / AWS Solutions Architect

    http://dev.classmethod.jp/author/arai-yusuke/
  2. クラスメソッドでは、iOS / Android ネイティブアプリの 受託開発を行っています。 バックエンドチー ムは、 アプリのバックエンドになる API サー

    バー の開発を行います。API サー バー は、AWS 上 で動作するPlay Scala アプリとして開発されます。
  3. SCALA 初学者のぶつかる壁( 例) エコシステム(Play) が関数型の語法を用いる JSON Reads / Writes (Type

    class, Applicative) Iteratee / Enumerator 初学者に優しくないSlick3 のモナり具合 JVM アプリについて学ぶ必要がある DevOps はElastic Beanstalk やHeroku ならある程度は ラップされているけど、 あくまで「 ある程度」 であ って、 程なくしてJVM への理解を要求される。 公開したいならEC2 なりVPS なりのリソー スが必要
  4. AWS LAMBDA Function as a Service 実行可能なコー ドを用意してLambda Function を作成

    イベントソー ス( 着火剤) を用意し、Function を実行 処理結果を受け取ることができる (AWS ネイティブ的に使おうとするならもっと色々 機能があります!)
  5. AWS LAMBDA の特徴 実行リクエスト秒数とリクエスト数に対する課金 待機時間にはお金がかからない EC2 だとt2.micro 一ヶ月で15$ 前後かかる Lambda

    なら使われなければお金はかからない さらにAWS の無期限無料枠がある 100 万リクエスト/ 月まで無料 最大で320 万秒コンピュー ティング時間/ 月まで無料
  6. AMAZON API GATEWAY 複数のバックエンドリソー スをIntegrate してREST API としてHTTPS で公開できる バックエンドリソー

    スとして以下が利用可能 AWS Lambda その他のアプリケー ション(HTTP) モック AWS Lambda がバックエンドリソー スとして扱えるこ とが大きなポイントで、 これによってEC2 なしでも標 準的なREST API が構築可能となった。
  7. Live Coding & Demo code are also available at GitHub

    Repo https://github.com/kawashirosan/scala-fukuoka-lambda
  8. デモが終わって時間があれば触れたいこと Apex AWS Lambda のデプロイ管理ツー ル。Golang 製 サー バー レスアー

    キテクチャの利点 フルマネー ジドなら可用性を考えなくていい サー バー レスアー キテクチャでの永続化層 フルマネー ジドならDynamoDB Lambda VPC を使うならRDS, Elasticache, and so on サー バー レスアー キテクチャの未来 大規模アプリを作る妄想をする Micorservices の先で、 モノリシックの対極 現時点では難易度かなり高く現実的ではない
  9. 今日のまとめ AWS Lambda / Amazon API Gateway を使ったサー バー レス環境で、

    手軽に・ 安く・ 明日から稼働するアプリ をScala で作ってみよう! Scala アプリ開発の学習環境としても、 個人~ 小規模ア プリのデプロイ先としても、AWS Lambda / API Gateway はおすすめできます。 Scala にもサー バー レスアー キテクチャにも興味を持っ ていただけたら、 そして身近に感じていただけたら嬉 しいです