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

サーバーレス開発を1年で完全にマスターする学び方/How I mastered Serverless from ZERO over the past year

サーバーレス開発を1年で完全にマスターする学び方/How I mastered Serverless from ZERO over the past year

https://jawsug-nagoya.doorkeeper.jp/events/76573
2018-08-28 JAWS-UGナイト in AWSome Day 名古屋
での発表です。

TATSUNO Yasuhiro

August 28, 2018
Tweet

More Decks by TATSUNO Yasuhiro

Other Decks in Programming

Transcript

  1. サーバーレス開発を1年で
    完全にマスターする学び方
    TATSUNO Yasuhiro 2018/8/26
    JAWS-UGナイト in AWSome Day 名古屋

    View Slide

  2. 1. 最近採用が広まる、
    サーバーレスアーキテクチャ
    の超概要
    2. 私がサーバーレスをゼロから
    どう学んだ・学んでいるか
    本日のお話

    View Slide

  3. 2010~ ユーザ系SIer 業務用Webアプリ開発運用
    2016~
    2017~ プロダクトマネージャー

    所属: JAWS UG, Java UG, Frontend UGなど
    好きなAWS: Lambda, CloudFront
    職歴
    私の担当プロダクトを事例に紹介

    View Slide

  4. 機械学習向け教師データ作成ツール
    高品質な教師データを大人数で効率
    よく作り込めるノウハウ満載
    2018年3月一般公開、50以上の企業
    /大学で利用
    AnnoFab
    基本利用
    ¥0
    annofab.com

    View Slide

  5. 1. 数千人が日々長時間利用するB2Bアプリ。
    ビルトインのスケールアウトが不可欠
    2. 中小企業なので固定費はできるだけ抑制
    3. 製品開発に注力できるように、インフラ
    はクラウドに任せたい
    開発テーマ
    サーバーレスアーキテクチャに挑戦

    View Slide

  6. プログラム実行環境
    サーバーレスとは
    私の理解
    Lambda
    イベント駆動アプリ
    データベース/ストレージ
    必要なとき必要なだけ
    性能・量を用意できる
    使った時間だけ
    課金される
    Batch
    バッチコンピューティング
    Aurora Serverless
    オンデマンドでスケールするRDB
    AppSync
    リアルタイムデータアプリ向けBaaS
    東京リージョン
    2015年6月
    東京リージョン
    2017年6月
    東京リージョン
    2018年4月
    東京リージョン
    2018年8月
    Fargate
    サーバーレスコンテナオーケストレーション
    東京リージョン
    2018年7月
    常時起動するサーバー「レス」 使ってないときはコスト「レス」

    View Slide

  7. 1. チームメンバー全員サーバーレス未経験
    EC2/DynamoDB/S3を触った程度
    2. 私:前職はインフラは別部署任せ
    3. 技術検証2週間、開発期間2ヶ月
    2017、私とサーバーレスの出会い
    ゼロからのサーバーレス
    課題が多数

    View Slide

  8. • Lambdaの5分制限をこえる処理は?
    • 「サーバー」ないけどドメインどうやって
    割り当てる?
    • どうやってデプロイ?
    課題① 何をどう使えばいいか分からん
    ブログ見たり勉強会参加して
    コミュニティの先駆者から学ぶ
    当時情報が多かったServerless Frameworkを採用。
    今はAWS公式のSAMあり。Serverlessはプラグインに優位
    複数オリジン(S3やAPI Gateway)をCloudFrontで
    たばね、CloudFrontにドメインを割り当て
    BatchとかStepFunctionでがんば

    View Slide

  9. 1. Lambda
    2. API Gateway
    3. Batch
    4. StepFunction
    5. DynamoDB Stream
    6. CloudFront
    7. SQS
    8. SNS…
    課題② 初めて使うAWS多すぎ
    チームで手分けしてノウハウ確立→共有。
    開発イテレーションごとに担当変えて多能工化

    View Slide

  10. 1. 公式ドキュメントをあたる
    2. AWSサポートに聞く
    3. 技術検証
    課題③ やりたいことが新しすぎ or
    マイナーすぎて世間に情報がない
    公式情報が一番正確
    分からないことはTry&Error

    View Slide

  11. RDBではなくKVS(DynamoDB)
    KVSに最適なスキーマ設計って?
    複雑なクエリは遅い、トランザクションない
    課題④ 慣れ親しんだ開発手法が通じない
    分かるところから始めて改善。
    作り直しも辞さない
    8月に東京でもリリースされた
    Aurora Serverless使えば…!
    まずはRDB風に設計。
    あとから改善
    頼らないようにアプリ自体を設計

    View Slide

  12. 1. AWSのSNSアカウントをフォロー
    2. AWSについて書いてるブログを購読
    3. 勉強会に出て学ぶ
    4. AWSを使える仕事をする
    課題⑤ 変化が激しい
    勉強し続ける、実践する
    ホットで新しい分野なのでどんどんAWSが改善される

    View Slide

  13. まとめ:私の学び方
    1. 先駆者のブログやスライドから学ぶ
    2. チームで手分けして学ぶ
    3. 調べものはまず公式情報にあたる
    4. 分からないことは検証する
    5. 小さく始めて改善し、作り直しも辞さない
    6. 勉強会や仕事で実践し続ける

    View Slide