東大計数工学科講義「AWSによるクラウド入門」の感想
四連休はツイッターで回ってきた東大計数工学化の講義でつかわれているらしい教材をやっていた。
出身研究室の先輩が東大計数工学科の講義の一部として担当した『AWSによるクラウド入門』の資料が公開されています。
— Shion Honda (@shion_honda) July 10, 2020
クラウド入門者向けに簡潔かつ平易な言葉で書かれている貴重な資料です。5つのハンズオンで、最後は俳句を投稿するWebアプリを実装・デプロイします。https://t.co/XmFGGnsP3r pic.twitter.com/9nDxzBovTW
学習用のDocker imageが既に用意されていてコンテナを立ち上げれば準備が全て終わるので便利。 内容も細かい技術の特徴というよりはなぜその技術が生まれたのか?を中心に書かれていて勉強になった。
なぜクラウドを使うのか?
設定一つでスケールアウト、スケールアップ共に可能。物理サーバーを管理する必要がない。
なぜサーバーレス?
サーバーフルクラウドとの対比で書かれていてわかりやすかった。
従来WebサービスだとAPIサーバーに送られるタスクの消費する計算資源は一定ではないのにもかかわらず、どんなタスクでもサーバーのインスタンスを一台割り当てなければいけない。サーバーの稼働率を高めてコストパーフォーマンスを最大化するのにもコストがかかる。
サーバーレスではサーバーの計算資源を丸々専有してプロセスを常駐させるのではなく、実行したいプログラムをクラウドに提出してクラウド側の大きな計算資源の一部を使って提出されたプログラムを実行する。この方式だと必要のない計算資源を使うようなことがなくなるのでコストパーフォーマンスを最大化しやすい。
S3もDynamoDBもサーバーレスの考え方が元になっているストレージサービスで、最初に決まった容量を買うのではなく使った容量でコストが決まる方式。
「従来のサーバーフルクラウドは賃貸、サーバーレスクラウドは電気・ガス・水道料金のようなもの」という解説もわかりやすかった。
サーバーレスのデメリットも解説があった。AWSならAWSに寄り添ったシステムになってしまうので、サーバーフルよりもプラットフォーム間の移動は難しくなる。クラウドプロパイダーとしては自社システムに依存してもらいたいのだろうということだった。
Hands-onを試してみて
この教材は最後に実際にVue.jsを使った静的アセットをS3において、LamdaにGET、POSTの関数を配置してDynamoDBでデータを永続化するWebサービスをAWSに構成する。実際に自分がコードを書くことはなく、用意されたスクリプトを叩いて、結果をAWSコンソールから確認するという作業が主だった。 実際に複数のリクエストを同時にAPIGatewayに送ったりするスクリプトも用意されていて、本当に試しやすい教材でした。用語の説明も一つ一つ丁寧だった。こんな授業を受けられる学生が羨ましいですな。