サーバーレスの勉強方法を聞いてみた

2021-01-05
How to be a Developer

Author : 西村 航

こんにちは、テクニカルトレーナー/マネージャーの西村 (@kuwablo) です。
AWS トレーニングのトレーナーを担当しつつ、AWS 初学者向け勉強方法 などお客様の学びを支援する記事をAWS 公式ブログに書いたり、チームメンバーのマネジメント業務も合わせて行っています。

皆さんは「サーバーレス」という単語を聞いたことはありますか ? 「サーバーレスの名前だけは聞いたことがあるけど。。。」という方から「現場でバリバリ使っているよ!」という方までいらっしゃると思います。私がトレーニングを実施する際に「サーバーレスを使ってみたいけど、何から勉強して良いのかわからない。」「効率的にサーバーレスを勉強できる方法があれば同僚に教えたい。」といったサーバーレスの勉強方法に関する質問をいただくことがよくあります。

本記事では、そういった方々を対象に前半と後半に分けてお話していきます。

前半:サーバーレスに関するメリット、ユースケース、アンチパターン
後半:サーバーレスに関するオススメの勉強方法 (座学、ハンズオン)

今回は、サーバーレスを深堀りするためにも、サーバーレスの有識者であるシニア サーバーレススペシャリスト ソリューションアーキテクトの 下川さん (@_kensh) を招いてインタビュー形式で進めていきます。それではお楽しみください 。


サーバーレスに関するメリット、ユースケース、アンチパターン

西村「はじめまして、テクニカルトレーナー/マネージャーの西村です。よろしくお願いします。」

下川「はじめまして、シニア サーバーレススペシャリスト ソリューションアーキテクトの下川です。よろしくお願いします。」

img_way-to-learn-serverless_01

(写真左) 西村 航 テクニカルトレーナー/マネージャー
(写真右) 下川 賢介 シニア サーバーレススペシャリスト ソリューションアーキテクト

西村「早速ですが、私が実施しているトレーニングの場で聞かれる質問に関していくつか質問させてください。細かい話なのですが、“サーバレス” と “サーバーレス” のどちらの記載が一般的でしょうか ? “バ” の後を伸ばすべきかが地味に気になっています。」

下川“サーバレス” よりも “サーバーレス” の方が、AWS ドキュメント検索時のヒット率が上がるので、“サーバーレス”と私は書きますね。」

西村「ちょっと得する話ですね、ありがとうございます。抽象的なお話ですが、サーバーレスとは何でしょう ? と聞かれたらどう応えるべきでしょうか。サーバーレスとは、サーバーがレスという表現だとシックリ来ないので知りたいなと。」

下川サーバーを意識しない、という解釈が理解しやすいかと思います。AWS のデータセンター上でサーバーは稼働していますが、お客様がサーバーを意識しなくてよくなりますので、アプリケーションの本質であるロジック開発 に注⼒することができるようになります。」

西村「なるほど、その表現はスッと入りますね。ところで AWS のサービスは 90 % 以上がカスタマーのフィードバックから開発されているという有名な話がありますが、サーバーレスの代表的なサービスである AWS Lambda もそうでしょうか ?」

下川「いいえ。マネージド型のデータウェアハウスサービスである Amazon Redshift は多くのお客様からの要望が直接的にサービス立ち上げにつながった例です。しかし、AWS Lambda は違います。お客様とのディスカッションで浮かんだアイデアから、何らかのイベントが発生し処理が開始された時のみ数秒間処理するコンピュートがあればいいのではないか、という考えにつながり開発されました。」

西村「おぉ、そうなんですね ! ちょっと話したくなるサーバーレスの豆知識ですね。早速同僚に話してみます。こういう場面にサーバーレスがハマる ! とかはありますか ?」

下川2 つあります。1 つ目はイベント・ドリブンなアーキテクチャーを構築したい場面、2 つ目はスクラップ & ビルドしたい場面です。前者に関しては、永続的に稼働させず、画像が配置されたときなど何かイベントが発生したときのみ、稼働させたいようなケースにフィットします。後者に関しては、小さく始めても柔軟にスケーリングしますし、ダメだったらまた作ればいいやと気軽に使えるので新サービスの開発には特に相性が良いと思いますね。」

西村「なるほど、確かにサーバーの場合はマシン増強をどのタイミングで実施するかとか考える必要ありますもんね。サーバーレスの良いところは何でしょうか ?」

下川運用管理の手間削減とコスト効率化があげられますね。単純なコンピューティングリソースの料金だけではなく、ビジネスへの貢献や運用部の方々のワークなどのシステム全体のコスト効率を最適化することによって、お客様環境にとってプラスになると考えます。」

西村「なるほど。ここまで良い点をメインで聞いてきましたが、逆に気をつけるべきことはありますか ?」

下川「全てをサーバーレスで解決しようとすることがアンチパターンということですかね。」

西村「少し意外な発言ですね。詳しく聞かせてください。」

下川ハンマーを持つ人にはすべてが釘に見える、という言葉があります。世の中のものは全てが釘ではないのでハンマーで打つべきではないものもあります。システムも同じで、全てのシステムをサーバーレスで開発しようというサーバーレスありきの考え方は正しくありません。ビジネスにマッチするかどうかでサーバーレスを採用するかどうかを決めるべきです。」

西村「なるほど。」

下川「例えば、BASE 特性で新陳代謝を高める要件が求められるカスタマーフェイシングなシステムを開発する場合はサーバーレスな構成がフィットする可能性が高いと思います。しかし、ACID 特性が強く求められていてモノリシックに作られた基幹システムをサーバーレスで部分的ではなく完全にリプレイスすることがお客様のビジネスに貢献するかは、システム前提など踏まえてしっかりと議論する必要があると思います。」

西村「確かにお客様がハッピーになるかは事前に確認が必要そうですね。」

下川重要なのはお客様のビジネスに貢献するためには、どういうアーキテクチャがベストなのかを最初に考えることです。そのためにも、 AWS Lambda は 15 分の最大実行時間の制限があるから AWS Step Functions で切り分けるか AWS Fargate のランタスクで実施しよう、といった広い範囲での技術的な引き出しを持つことが重要になります。」

西村「なるほど ! サーバーレスの有識者の方にお話いただくと説得力がありますね。勉強すると使いたくなりますが、使いたいかどうかではなく、使う前に使うべきかどうかを判断することが重要なんですね。あと、私が AWS Lambda を勉強していて驚いたのが、取り扱っている言語が非常に多いですね。」

下川「そうですね。様々な言語を選択できるのもメリットかと思います。例えば従来のオンプレ環境の場合だと、ストリーミングなら Java、Web のバックエンドなら  Python など用途に応じて言語を変更すると、ロギングやトレーシングやメトリックなどの運用部分の方式が異なってくるため管理が非常に大変でした。しかし、AWS では AWS X-Ray / Amazon CloudWatch などで非機能要件がコンポーネントの関心ごとから分離されているので、適材適所で使いやすくなり、様々な言語の良さをビジネスに合わせて活かすことができます。」

西村「それはメリットにつながりますね。セキュリティ対策でオススメのドキュメントや情報などありますか ?」

下川AWS Lambda のセキュリティ概要 のホワイトペーパーはオススメですね。責任共有モデルとの話など含めてわかりやすく記載されています。直近のホットな話しですと 2020 年 10 月 のアップデートの AWS Lambda が AWS PrivateLink のサポートを開始 でしょうか。トラフィックをパブリックインターネットに公開せずに、Virtual Private Cloud (VPC) から Lambda 関数を呼ぶことができます。」

西村「おぉ PrivateLink 対応 ! セキュリティ要件が厳しいお客様には喜ばれそうですね。理解が深まりました。ありがとうございます。ここからはサーバーレスの勉強方法に関して質問させてください。」


サーバーレスに関するオススメの勉強方法 (座学、ハンズオン)

西村「座学の勉強方法とハンズオンの勉強方法の両方をお話させてください。まずは座学での勉強方法に関して情報交換させてください。体系的にサーバーレスを理解できる資料とかありますか ?」

下川「私が AWS Dev Day Online Japan で発表した 今日から始める、サーバーレス Well-Architected Framework (AWS Dev Day Online Japan オンデマンド に登録 いただくことで視聴可能になります。) の資料に目を通していただけると良いかと思います。サーバーレス の開発はスモールスタートで始めることが出来ますが、構築や運用のプラクティスが知りたいという声をよくお聞きしますので、この資料ではサーバーレス のホワイトペーパーに沿って、すぐに始めることができる実践的なプラクティスを記載しました。」

img_way-to-learn-serverless_02

下川さんが AWS Dev Day Online Japan で発表した資料の「今日から始める、サーバーレス Well-Architected Framework」ですが、サーバーレスの構築・運用のプラクティスが書かれていて、体系的かつ具体的に記載されていて最初に目を通すには最適な資料かと思います。

西村「これは非常に分かりやすいですね!体系的に Well-Architected Framework の 5 本の柱に沿って記載されていますし、実践するためのサービスやノウハウが具体的に書かれていて、まず最初に目を通すには最適な資料ですね。」

下川「他にも AWS Dev Day Online Japan のセッションはオンデマンドで公開中ですので、是非視聴してみてください。」

西村「ありがとうございます。私からはデジタルトレーニングを紹介したいと思います。AWS では無料のデジタルトレーニングが提供されていて、一部のコースは AWS Japan の認定トレーナーが日本語で収録しています。AWS Lambda に関しては入門コースの AWS Lambda Foundations (Japanese) がオススメですね。あとは、サーバーレスに興味がある人は AWS 認定デベロッパー – アソシエイト試験の認定資格にも興味をお持ちだと思うのですが、AWS 認定デベロッパー – アソシエイト試験の準備講座である Exam Readiness: AWS Certified Developer – Associate (Digital) という認定インストラクターが日本語で再収録した実写版もありますので、合わせて視聴いただけると良いかと思います。」

img_way-to-learn-serverless_03

デジタルトレーニングはオンデマンドで提供されていますので、どこでも学習することができます。また、AWS 認定トレーナーによって収録された完全日本語版のラインナップを拡充しています。

下川「私は、 AWS Lambda – リソース のページ や、AWS 公式サイトの サーバーレスコンピューティングのページ もオススメですね。」

西村「灯台下暗しでした。 概要タブ でそもそものサーバーレスの話がまとめられていますね。 デベロッパーツールのタブ とかめちゃめちゃ分かりやすいですね。 」

下川「あとは、サーバーレスを始めようのサイトをまず見るのも良いと思います。エンジニア / 開発者の方向けの 今から始めるサーバーレス、アーキテクトの方向けの 形で考えるサーバーレス設計、プロジェクト責任者の方向けの サーバーレスのビジネス効果とは の 3 つのタブに分かれていて、お客様のロールに合わせて最適なページを確認いただけます。」

西村「おぉ!エンジニア/開発者の方向けの 今から始めるサーバーレス は昔よりも情報がかなり増えていますね!随時更新されるのでしょうか ?」

img_way-to-learn-serverless_04

「今から始めるサーバーレス」のページは、タブで整理されていて、網羅性が高く情報量が多いです。

下川「はい、定期的に更新しています。サーバーレスのおさらい も上手くまとまっているのでオススメです。あとは、定番ですが サービス別資料 ですね。Let's Dive Deep into AWS Lambda Part1 & Part2サーバーレス イベント駆動アーキテクチャ はサーバーレスを型として理解しやすい良い資料ですね。後は 2020 年 11 月 18 日 に シニア サーバーレススペシャリスト ソリューションアーキテクト の福井さんが AWS Black Belt Online Seminar で発表した 形で考えるサーバーレス設計 サーバーレスユースケースパターン解説 もオススメです。また、これらの内容を含むオンデマンドのセミナー動画として イチから理解するサーバーレスアプリ開発 オンライン もあります。登録制ですがこちらもご覧ください。」

img_way-to-learn-serverless_05

「イチから理解するサーバーレスアプリ開発 オンライン」では、サーバーレスの意義やメリット、利用パターンのご紹介、運用指針などを解説しています。

西村「おぉ ! このセミナー動画は初めて知りました、ありがとうございます。Session2 のサーバーレスアプリケーションのエラー制御と監視の勘所はとても気になります。それでは、ここからは実際に手を動かすハンズオン形式の学習方法に関して情報交換させてください。私のオススメは Qwiklabs のセルフペースラボ での学習ですね。2020 年 11 月時点で無料なコースとしては、 Introduction to AWS Lambda (日本語版) や Introduction to Amazon API Gateway (日本語版) などが良いのではないでしょうか。他にも、オススメの勉強方法などありますでしょうか ?」

img_way-to-learn-serverless_06

AWS のセルフペースラボでは、AWS の各サービスや実際のクラウドシナリオを使用して、AWS が実際に稼働している環境で実践演習を行います。

下川「そうですね、サーバーレスの始め方 という開発環境の準備から具体的なラボのリンクまでギュッとまとまってて記載されているので是非見てみてください。」

img_way-to-learn-serverless_07

「サーバーレスの始め方」は PDF 2 枚の中に、学習ステップと目的に沿ったハンズオンのリンクが貼られています。

西村「これ見やすいですね ! どういうハンズオンか、どういう目的で実施できるか、とかもまとめられています。最高です。」

下川「この中でも紹介されていますが サーバーレスのウェブアプリケーションを構築 もステップがわかれていて見やすいです。」

img_way-to-learn-serverless_08

ステップがわかれていて、手順と画面キャプチャがセットで書かれているので、迷子にならずに進むことができます。

西村「キレイにまとまっていますね。手順を説明する分量も絶妙ですね。」

下川「あとは AWS Hands-on for Beginners がオススメですね。特に サーバーレスアーキテクチャで翻訳 Web API を構築する や AWS SAM を使ってテンプレートからサーバーレスな環境を構築する がサーバーレスを実際に手を動かして勉強したい方にはオススメです。 他にも サーバーレスセキュリティワークショップ などオススメはいっぱいありますので、このインタビューの後にまとめて連携しますね。 」

img_way-to-learn-serverless_09

AWS Hands-on for Beginners では、ステップバイステップで小さいサイクルで 「短い動画を見る→手を動かす」 を繰り返せるので、自分のペースでハンズオンを進めることができます。

西村「ありがとうございます ! やはり下川さん自身が手を動かしているからこそ、言葉に説得力を感じます。私も積極的に手を動かしていきたいと思います。今回のインタビューで、サーバーレスの理解が深まり、様々な学習方法を知ることができました。本日はありがとうございました。」

下川「ありがとうございました。またいつでも相談してください。」

西村「(最初から最後まで紳士すぎる ! ) ありがとうございました !」


サーバーレスに関する勉強方法のリスト

最後に、ここまでのインタビューで出てきた勉強方法に合わせて、インタビュー後に下川さんや社内のサーバーレス有識者の方々にヒアリングしたオススメのサーバーレスの勉強方法をまとめて以下にリスト化してみました。

初級者だけでなく中上級者向けのハンズオンも含めて載せていますので、「これは面白そうだな」という勉強方法があれば、是非ブックマークしてみてください。

座学


ハンズオン


まとめ

今回のインタビューを通じて、私自身普段のトレーニングでサーバーレスに関してお話しする際のメッセージングが明確になり、大変勉強になりました。対談の途中の「サーバレス」よりも「サーバーレス」で検索した方がドキュメント検索時のヒット率が上がるなど、ちょっと得する話もありがたかったです、

特に「ハンマーを持つ人にはすべてが釘に見える」というサーバーレスのアンチパターンの話は目からウロコでした。サーバーレスありきではなく、まずはシステムの要件を整理してサーバーレスが合致するかを考える、というソリューショニングの大切さを示す名言ではないかと思います。そのためにも、サーバーレスで何ができるのかを深く勉強する必要があると感じました。

今回は「勉強方法」を中心にサーバーレスに関してお話ししてきましたが、実際に開発している人がどうしているのか?コンソールで開発するのは限界があるのでは ? と私自身非常に気になってきたので、次回は「開発方法」にフォーカスしてサーバーレス有識者の方にインタビューを申し込んでみようと思います。乞うご期待 !

この記事が少しでも “How to be a Developer” な皆様のお役に立てれば幸いです。
また別の記事でお会いしましょう ! それでは !


builders.flash メールメンバーへ登録することで
AWS のベストプラクティスを毎月無料でお試しいただけます

筆者プロフィール

photo_nishimura-wataru

西村 航 (@kuwablo)
アマゾン ウェブ サービス ジャパン株式会社
トレーニングサービス本部 テクニカルトレーナー/マネージャー

多くの人に AWS を学ぶ楽しさを伝えたいと思い、テクニカルトレーナーになりました。また、マネージャーとしてチームメンバーのマネジメント業務も行っています。
サウナとキャンプと買い物が好きで、最近購入したオススメはキーボードの「HHKB」と スモークレス焼肉グリルの「やきまる」です。

話者について

photo_shimokawa-kensuke

下川 賢介 (@_kensh)
アマゾン ウェブ サービス ジャパン株式会社
シニア サーバーレススペシャリスト ソリューションアーキテクト

Serverless Specialist Solutions Architect として AWS Japan に勤務。
Serverless の大好きな特徴は、ビジネスロジックに集中できるところ。
ビジネスオーナーにとってインフラの管理やサービスの冗長化などは、ビジネスのタイプに関わらず必ず必要になってくる事柄です。
でもどのサービス、どのビジネスにでも必要ということは、逆にビジネスの色はそこには乗って来ないということ。

フルマネージドなサービスを使って関数までそぎ落とされたロジックレベルの管理だけでオリジナルのサービスを構築できるという Serverless の特徴は技術者だけでなく、ビジネスに多大な影響を与えています。

このような Serverless の嬉しい特徴をデベロッパーやビジネスオーナーと一緒に体験し、面白いビジネスの実現を支えるために日々活動しています。

AWS のベストプラクティスを毎月無料でお試しいただけます

さらに最新記事・デベロッパー向けイベントを検索

下記の項目で絞り込む
絞り込みを解除 ≫
フィルタ
フィルタ
1

AWS を無料でお試しいただけます

AWS 無料利用枠の詳細はこちら ≫
5 ステップでアカウント作成できます
無料サインアップ ≫
ご不明な点がおありですか?
日本担当チームへ相談する