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

俺たちのプロトタイプ

 俺たちのプロトタイプ

Yuji Takayama

March 19, 2021
Tweet

More Decks by Yuji Takayama

Other Decks in Technology

Transcript

  1. ⾃⼰紹介 τϨϊέʔτגࣜձࣾ ͔ͨ΍· Ώ͏͡ ∁ࢁ ༟࢘ ུྺ ೥͔Β "84 ೝఆΠϯετϥΫλʔʢ""*ʣͱͯ͠

    "84 ೝఆΫϥεϧʔϜτϨʔχϯάΛ୲౰ લ৬͸ɺγοΫεɾΞύʔτͰ.PWBCMF5ZQFͷ ϦʔυΤϯδχΞ݉ϓϩμΫτϚωʔδϝϯτΛ୲౰ !ZVKJ :VKJ TXPSECSFBLFS
  2. "84ೝఆΠϯετϥΫλʔͷ͓࢓ࣄ u "84ೝఆΫϥεϧʔϜτϨʔχϯάͷ࣮ࢪ u ిࢠςΩετʢ7JUBM4PVSDF#PPLTIFMGʣͷςΩετҾ͖׵͑ίʔυͷ഑෍ u 2XJL-BCT ʢϋϯζΦϯ؀ڥʣ ͷϩάΠϯΞΧ΢ϯτͷ഑෍ u

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

    u ిࢠςΩετΛར༻ͨ͠ߨٛ u 2XJL-BCT ͰͷϋϯζΦϯ࣮ࢪ u डߨऀ͔Βͷ࣭໰ड෇ͱղ౴ u τϨʔχϯάͷ࣮ࢪܗଶ u ΫϥεϧʔϜτϨʔχϯά u ΦϯϥΠϯ -JWFτϨʔχϯά u σϞαΠτɺ࣮ࢪͷ͓ॿ͚πʔϧ࡞੒ɺαϯϓϧ࡞੒
  5. コースに必要なお知らせをサーバーレスで u 要件 u Bookshelf の電⼦テキスト引き換えコードを個別に渡せる u QwikLabs のログインアカウントとパスワードを個別に渡せる u

    課題 u クラスルームでは、⼀⼈ずつ情報を転記したペーパーを配布していたが、 オンラインでは紙を渡せない。 u Zoom の個別チャットで渡すのは時間が掛かる u そもそも毎回 Word で差し込み印刷するのも⼿間が掛かる
  6. アーキテクチャ u Amplify による⾃動構築 u フロントエンド、バックエンド u フロントエンドは Vue.JS で

    Amplify コンポーネントを利⽤ u テキストコード、ラボアカウントは CSV ファイルでコースごとに準備し S3 バケットにアップロードして Lambda で⾃動取り込み u Vue.JS のウェブアプリは Amplify の ホスティングから配信
  7. 導⼊後の効果 u オンライン、オフラインともに準備の⼿間が減った u EXCEL データの準備、Word の差し込み印刷が不要 u ペーパーの配布よりも短時間でコースのお知らせを配布できる u

    Amplify Console によるフロントエンドの CI/CD は開発環境も作れるから プロダクションへの展開の前に確認がしやすい u Amplify によるバックエンド構築は内部的には CloudFormation が動くので 別の講師が⾃分で環境構築するときも楽ちん u サーバーレスで管理するサーバーがないので楽ちん
  8. 演習の完了報告をサーバーレスで u 要件 u 演習がおわったことを受講者が⾃⾝で連絡できる u 演習で感じたことやふとした疑問などをコメントできる u 課題 u

    オフラインでは、受講者の進み具合を確認するために部屋の中をぶらりと歩けば ⼤抵のことは気がつくし、受講者もその場で雑談ベースでも質問したり、 講師側からも感想とかを聞き出しやすかった。 オンラインでは、受講者の進み具合をはかりにくいし、受講者側も気軽に 質問しにくい様⼦。 u オフラインでも、淡々と作業するだけになることがある
  9. アーキテクチャ u Vue.JS のウェブアプリは S3 + CloudFront による静的配信 u レポートは

    API Gateway から SNS に 統合リクエストでスルー u Rocket.Chat への投稿と DynamoDB への格納を SNS + SQS でファンアウト することで Rocket.Chat の障害に対応 u Rocket.Chat は スポットインスタンス でコースごとに起動
  10. 導⼊後の効果 u 受講者側のメリット u 演習が終わったあとにコメントを書くために内容を整理する時間が取れている u 感動や驚きを伝えられる u ちょっときになったことを気軽に質問できる u

    講師側のメリット u 進捗具合を把握できる u コース中や演習前に伝えた内容の理解度をはかれるので、演習後の解説において どこを話すかの戦略が⽴てられる u ⼀撃インフラ構築⽤ CloudFormation テンプレートがあるのであとから続く 講師も構築が楽ちん u サーバーレスで管理するサーバーがないので楽ちん
  11. Zoom の投票作成と管理をサーバーレスで u 要件 u Zoom の投票作成の作業を⾃動化する u 投票で使う質問は再利⽤できる u

    課題 u オンラインLiveトレーニングで使う Zoom には、投票機能があるのでこれを受講者へ の確認テストや、ちょっと質問などで使っている。しかし、毎ミーティングごとに ⽤意しないといけない上、1項⽬ずつ⼿作業で⼊⼒する必要があるので⼿間である。 u 同じコースであれば、毎回同じ質問を使いたいが毎回⼊⼒しているので⾃⼰管理に なってしまう。
  12. アーキテクチャ u 社内の複数の講師が使うことを考慮し てユーザー管理は Cognito を利⽤ u API Gateway は、Cognito

    オーサラ イザーを利⽤してログインできた⼈ だけが API を実⾏できるように制限 u Zoom API の認証情報は Secrets Manager で管理
  13. 匿名で質問できるフォームをサーバーレスで u 要件 u 受講者は、コース実施中にいつでも好きなタイミングで質問できる u 受講者は、匿名性をもって質問できる u 受講者は、他の受講者の質問と解答を共有できる u

    課題 u 積極的に質問をしてくださる受講者の⽅もいますが、多くの⽅は質問を躊躇ってしま うことが多いと思います。 u 講師が話をしている中で質問のタイミングを逃す u こんな質問をしていいのか不安 u コース中に質問を確認したタイミングでは⼤丈夫だったけど、次第にこれってなん だっけと思い始めて⾃分で調べていたらコースが進んで現在地が不明になる
  14. アーキテクチャ u 質問フォームは S3 + CloudFront によ る静的配信 u 質問の投稿は、API

    Gateway 経由で 後続処理にファンアウト u Rocket.Chat へ投稿 u DynamoDB に保存 u MS Teams に投稿 u Rocket.Chat へのリプライは Webhook で DynamoDB 経由 Kintone ⾏き