$30 off During Our Annual Pro Sale. View Details »

俺たちのプロトタイプ

 俺たちのプロトタイプ

Yuji Takayama

March 19, 2021
Tweet

More Decks by Yuji Takayama

Other Decks in Technology

Transcript

  1. +"84%":4લ໷ࡇ "84ͷ5FDIͱ+"846(ͷτϨϯυΩϟονΞοϓ r
    ԶͨͪͷϓϩτλΠϓ
    ࠓ͙͢͸͡ΊΔαʔόʔϨε

    '3*

    ∁ࢁ༟࢘ˏτϨϊέʔτגࣜձࣾ

    View Slide

  2. ⾃⼰紹介
    τϨϊέʔτגࣜձࣾ
    ͔ͨ΍· Ώ͏͡
    ∁ࢁ ༟࢘
    ུྺ
    ೥͔Β "84 ೝఆΠϯετϥΫλʔʢ""*ʣͱͯ͠
    "84 ೝఆΫϥεϧʔϜτϨʔχϯάΛ୲౰
    લ৬͸ɺγοΫεɾΞύʔτͰ.PWBCMF5ZQFͷ
    ϦʔυΤϯδχΞ݉ϓϩμΫτϚωʔδϝϯτΛ୲౰
    !ZVKJ
    :VKJ
    TXPSECSFBLFS

    View Slide

  3. "84ೝఆ
    ΠϯετϥΫλʔͷ
    ͓࢓ࣄ
    ͳʹ΍ͬͯΔͷʁ
    ͳʹ΋ͷͳͷʁ

    View Slide

  4. "84ೝఆΠϯετϥΫλʔͷ͓࢓ࣄ
    u "84ೝఆΫϥεϧʔϜτϨʔχϯάͷ࣮ࢪ
    u ిࢠςΩετʢ7JUBM4PVSDF#PPLTIFMGʣͷςΩετҾ͖׵͑ίʔυͷ഑෍
    u 2XJL-BCT ʢϋϯζΦϯ؀ڥʣ ͷϩάΠϯΞΧ΢ϯτͷ഑෍
    u ిࢠςΩετΛར༻ͨ͠ߨٛ
    u 2XJL-BCT ͰͷϋϯζΦϯ࣮ࢪ
    u डߨऀ͔Βͷ࣭໰ड෇ͱղ౴
    u τϨʔχϯάͷ࣮ࢪܗଶ
    u ΫϥεϧʔϜτϨʔχϯά
    u ΦϯϥΠϯ -JWFτϨʔχϯά
    u σϞαΠτɺ࣮ࢪͷ͓ॿ͚πʔϧ࡞੒ɺαϯϓϧ࡞੒
    ˞τϨϊέʔτͰͷ͓࿩Ͱ͢ɻ͢΂ͯͷ"84ೝఆΠϯετϥΫλʔͷ͓࢓ࣄ͕͜ͷ௨ΓͰ͸༗Γ·ͤΜ

    View Slide

  5. AWS クラスルームトレーニング
    運⽤者 開発者
    アーキテクト
    プロフェッショナル
    上級コース
    コース⽇数︓3⽇
    アソシエイト
    中級コース
    コース⽇数︓3⽇
    ベーシック
    初級コース
    コース⽇数︓1⽇
    Advanced
    Architecting
    on AWS
    Architecting
    on AWS
    Systems
    Operations
    on AWS
    Developing
    on AWS
    DevOps
    Engineering
    on AWS
    Advanced
    Developing
    on AWS
    AWS Technical Essentials
    2*1
    Big Data
    on AWS (3日)
    Data
    Warehousing
    on AWS (3日)
    Deep Learning on
    AWS*2 (1日)
    Planning and Designing
    Databases on AWS (3
    日)
    Security
    Engineering
    on AWS (3日)
    Build Your First Serverless
    Web Application with
    Mob Programming*3 (1
    日)
    *2 2021年6⽉で提供終了
    *3 プライベートトレーニ
    ングのみで提供
    AWS Cloud Practitioner
    Essentials
    ※ Architecting on AWS と
    Systems Operations on AWS は、
    内容の多くが重複します
    5
    AWS Security Essentials
    *1 2021年7⽉からコース名称を「AWS Practical Startup Workshop」に変更
    Practical Data Science
    with Amazon
    SageMaker (1日)
    Running Containers on
    Amazon Elastic
    Kubernetes Service
    (Amazon EKS) (3日)
    The Machine
    Learning Pipeline on
    AWS (4日)

    View Slide

  6. "84ೝఆΠϯετϥΫλʔͷ͓࢓ࣄ
    ˞τϨϊέʔτͰͷ͓࿩Ͱ͢ɻ͢΂ͯͷ"84ೝఆΠϯετϥΫλʔͷ͓࢓ࣄ͕͜ͷ௨ΓͰ͸༗Γ·ͤΜ
    u "84ೝఆΫϥεϧʔϜτϨʔχϯάͷ࣮ࢪ
    u ిࢠςΩετʢ7JUBM4PVSDF#PPLTIFMGʣͷςΩετҾ͖׵͑ίʔυͷ഑෍
    u 2XJL-BCT ʢϋϯζΦϯ؀ڥʣ ͷϩάΠϯΞΧ΢ϯτͷ഑෍
    u ిࢠςΩετΛར༻ͨ͠ߨٛ
    u 2XJL-BCT ͰͷϋϯζΦϯ࣮ࢪ
    u डߨऀ͔Βͷ࣭໰ड෇ͱղ౴
    u τϨʔχϯάͷ࣮ࢪܗଶ
    u ΫϥεϧʔϜτϨʔχϯά
    u ΦϯϥΠϯ -JWFτϨʔχϯά
    u σϞαΠτɺ࣮ࢪͷ͓ॿ͚πʔϧ࡞੒ɺαϯϓϧ࡞੒

    View Slide

  7. コースに必要な
    お知らせ。を
    サーバーレスで
    電⼦テキストの引き換えコード
    演習環境のアカウント情報

    View Slide

  8. コースに必要なお知らせをサーバーレスで
    u 要件
    u Bookshelf の電⼦テキスト引き換えコードを個別に渡せる
    u QwikLabs のログインアカウントとパスワードを個別に渡せる
    u 課題
    u クラスルームでは、⼀⼈ずつ情報を転記したペーパーを配布していたが、
    オンラインでは紙を渡せない。
    u Zoom の個別チャットで渡すのは時間が掛かる
    u そもそも毎回 Word で差し込み印刷するのも⼿間が掛かる

    View Slide

  9. View Slide

  10. アーキテクチャ
    u Amplify による⾃動構築
    u フロントエンド、バックエンド
    u フロントエンドは Vue.JS で
    Amplify コンポーネントを利⽤
    u テキストコード、ラボアカウントは
    CSV ファイルでコースごとに準備し
    S3 バケットにアップロードして
    Lambda で⾃動取り込み
    u Vue.JS のウェブアプリは Amplify の
    ホスティングから配信

    View Slide

  11. 導⼊後の効果
    u オンライン、オフラインともに準備の⼿間が減った
    u EXCEL データの準備、Word の差し込み印刷が不要
    u ペーパーの配布よりも短時間でコースのお知らせを配布できる
    u Amplify Console によるフロントエンドの CI/CD は開発環境も作れるから
    プロダクションへの展開の前に確認がしやすい
    u Amplify によるバックエンド構築は内部的には CloudFormation が動くので
    別の講師が⾃分で環境構築するときも楽ちん
    u サーバーレスで管理するサーバーがないので楽ちん

    View Slide

  12. 演習の完了を
    連絡する。を
    サーバーレスで
    演習成果のURL共有
    演習中に感じたことや疑問を
    コメントで

    View Slide

  13. 演習の完了報告をサーバーレスで
    u 要件
    u 演習がおわったことを受講者が⾃⾝で連絡できる
    u 演習で感じたことやふとした疑問などをコメントできる
    u 課題
    u オフラインでは、受講者の進み具合を確認するために部屋の中をぶらりと歩けば
    ⼤抵のことは気がつくし、受講者もその場で雑談ベースでも質問したり、
    講師側からも感想とかを聞き出しやすかった。
    オンラインでは、受講者の進み具合をはかりにくいし、受講者側も気軽に
    質問しにくい様⼦。
    u オフラインでも、淡々と作業するだけになることがある

    View Slide

  14. View Slide

  15. アーキテクチャ
    u Vue.JS のウェブアプリは S3 +
    CloudFront による静的配信
    u レポートは API Gateway から SNS に
    統合リクエストでスルー
    u Rocket.Chat への投稿と DynamoDB
    への格納を SNS + SQS でファンアウト
    することで Rocket.Chat の障害に対応
    u Rocket.Chat は スポットインスタンス
    でコースごとに起動

    View Slide

  16. 導⼊後の効果
    u 受講者側のメリット
    u 演習が終わったあとにコメントを書くために内容を整理する時間が取れている
    u 感動や驚きを伝えられる
    u ちょっときになったことを気軽に質問できる
    u 講師側のメリット
    u 進捗具合を把握できる
    u コース中や演習前に伝えた内容の理解度をはかれるので、演習後の解説において
    どこを話すかの戦略が⽴てられる
    u ⼀撃インフラ構築⽤ CloudFormation テンプレートがあるのであとから続く
    講師も構築が楽ちん
    u サーバーレスで管理するサーバーがないので楽ちん

    View Slide

  17. Zoom の投票で使う
    質問の作成。を
    サーバーレスで
    ZOOM 投票⼀発作成

    View Slide

  18. Zoom の投票作成と管理をサーバーレスで
    u 要件
    u Zoom の投票作成の作業を⾃動化する
    u 投票で使う質問は再利⽤できる
    u 課題
    u オンラインLiveトレーニングで使う Zoom には、投票機能があるのでこれを受講者へ
    の確認テストや、ちょっと質問などで使っている。しかし、毎ミーティングごとに
    ⽤意しないといけない上、1項⽬ずつ⼿作業で⼊⼒する必要があるので⼿間である。
    u 同じコースであれば、毎回同じ質問を使いたいが毎回⼊⼒しているので⾃⼰管理に
    なってしまう。

    View Slide

  19. https://blog.trainocate.co.jp/blog/zoom-api-tool_022

    View Slide

  20. アーキテクチャ
    u 社内の複数の講師が使うことを考慮し
    てユーザー管理は Cognito を利⽤
    u API Gateway は、Cognito オーサラ
    イザーを利⽤してログインできた⼈
    だけが API を実⾏できるように制限
    u Zoom API の認証情報は Secrets
    Manager で管理

    View Slide

  21. 導⼊後の効果
    u ⼀度登録しておけば投票を使い回せるので⾮常に便利
    u すでに実施された投票も Zoom API 経由でインポートすることもできるので
    ツール導⼊前に利⽤した投票も利⽤可能
    u サーバーレスで管理するサーバーがないので楽ちん

    View Slide

  22. 匿名で質問できる
    フォーム。を
    サーバーレスで
    質問投稿
    解答コメント集約

    View Slide

  23. 匿名で質問できるフォームをサーバーレスで
    u 要件
    u 受講者は、コース実施中にいつでも好きなタイミングで質問できる
    u 受講者は、匿名性をもって質問できる
    u 受講者は、他の受講者の質問と解答を共有できる
    u 課題
    u 積極的に質問をしてくださる受講者の⽅もいますが、多くの⽅は質問を躊躇ってしま
    うことが多いと思います。
    u 講師が話をしている中で質問のタイミングを逃す
    u こんな質問をしていいのか不安
    u コース中に質問を確認したタイミングでは⼤丈夫だったけど、次第にこれってなん
    だっけと思い始めて⾃分で調べていたらコースが進んで現在地が不明になる

    View Slide

  24. https://blog.trainocate.co.jp/blog/qaforma-2020_022

    View Slide

  25. アーキテクチャ
    u 質問フォームは S3 + CloudFront によ
    る静的配信
    u 質問の投稿は、API Gateway 経由で
    後続処理にファンアウト
    u Rocket.Chat へ投稿
    u DynamoDB に保存
    u MS Teams に投稿
    u Rocket.Chat へのリプライは
    Webhook で DynamoDB 経由
    Kintone ⾏き

    View Slide

  26. 導⼊後の効果
    u 気になったタイミングで質問を⼊⼒できるのでメモして聞きそびれることが少な
    くなる
    u 匿名での質問投稿なので⼼理的に安⼼して質問できる
    u 質問内容と解答は、Rocket.Chat で共有されるので他の⼈の質問もタメになる

    View Slide

  27. なぜ、ぼくらは
    サーバーレスで
    ツールを作るのか

    View Slide

  28. なぜ僕らはサーバーレスでツールを作るのか
    u 受講者に安⼼・快適にトレーニングを受講してもらいたい
    u 疑問を持ち帰らずに吐き出してもらいたい
    u 実際に動いているサンプルとして体験してもらいたい
    u 何しろサーバーのメンテナンスや運⽤をできる限りしたくない
    u 何しろ AWS で何かを作るのが⼤好き

    View Slide

  29. ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠
    IUUQTXXXUSBJOPDBUFDPKQ
    "84ೝఆΠϯετϥΫλʔʹڵຯ͕ͰͨΒ

    View Slide