
このコースの概要や実装する題材、対象者や前提知識を確認します。
このコースを受講するときの、Q&A やリソースの活用について説明します。
このコースで発生する可能性のある、AWS の料金について説明します。
AWS の概要や操作方法、「クラウド」の定義を学びます。
AWS が提供する「コンピューティングサービス」について、それぞれの概要や違いを整理します。
AWS Lambda の概要と、ユースケース、メリット・デメリットを学びます。
マネジメントコンソールを使って、Lambda の Hello World を実装してみます。
Lambda の開発で Serverless Framework がよく使われる理由を解説します。
Lambda で本格的なコードを書く準備として、AWS Cloud9 の概要を学び、環境を作成します。
このコースで必要な Node.js の準備を行います。
npm を使って Serveless Framework をインストールします。
公開されている Serverless Framework のテンプレートを準備し、テンプレートに含まれるファイルの概要を確認します。
Serverless Framework のテンプレートを少し修正して、デプロイを試します。
Serverless Framework を使い、Hello World の Lambda 関数を実装します。
Serverless Framework の片付けについて説明します。
このセクションで実装する Lambda 関数について、機能や構成を説明します。
Serverless Framework を使い、定期実行される Lambda 関数を作成します。
Slack 通知の機能の実装のため、Slack の Webhook URL を取得して、Systems Manager Parameter Store に保存します。
Systems Manager Parameter Store に保存された Webhook URL を使い、Lambda 関数から Slack に通知する処理を実装します。
AWS の操作方法を改めて学び、AWS CLI で請求情報の取得を試します。
SDK を使って、AWS Lambda から請求情報を取得する処理を実装します。
実装したコードをデプロイして、この時点で発生するエラーの内容を確認します。
AWS の認証認可を担う IAM について、IAM Policy・IAM User・IAM Role の概要を学びます。
Serverless IAM Roles Per Function を使い、Lambda 関数の IAM Role を設定します。
このセクションで実装した Lambda 関数についてふりかえります。
AWS Lambda の実行環境やトリガーについて、基本を学びます。
Web アプリケーションの仕組みを復習し、AWS でのサーバレスな Web アプリケーションの典型構成を学びます。
Serverless API Gateway Throttling を使い、EDoS 攻撃の対策を行います。
Hello World の Lambda 関数に API Gateway のトリガーを追加し、Lambda での Web API 実装を始めます。
マネジメントコンソールで DynamoDB のテーブルを作成し、DynamoDB の概要を学びます。
近年よく使われている手法である Infrastructure as Code の概要と、CloudFormation について学びます。
Serverless Framework の機能により、Infrastructure as Code で DynamoDB のテーブルを作成します。
AWS Lambda を使い、DynamoDB にタスクを登録する API を実装します。
AWS Lambda を使い、DynamoDB からタスク一覧を取得する API を実装します。
フロントエンドのホスティングで使用する S3 バケットを Infrastructure as Code で構築します。
フロントエンドのデプロイのため、Serverless S3 Sync を導入し、HTML を表示してみます。
タスク管理アプリケーションの HTML を実装します。
フロントエンドの JavaScript の Hello World を行います。
ブラウザ上の JavaScript から、タスクを登録する API を呼び出す処理を実装します。
ブラウザ上の JavaScript で、タスク一覧を取得する API を呼び出して、画面に表示する処理を実装します。
ブラウザ上の JavaScript から Lambda で実装した API を呼び出すために必要な、CORS の設定を行います。
セクションで学習したことをふりかえり、Lambda の特徴を学びます。
このコースを終えたあと、さらにステップアップする方向性を紹介します。
AWS Lambda は、「サーバレス」なアプリケーション実行環境として最も有名と言えるサービスであり、近年では多くのプロジェクトで採用されるようになっています。
そんな AWS Lambda で実践的な開発をするためには、「Serverless Framework」などのフレームワークを使うことも多く、実務でその知識が必要になることも多々あります。
しかし、プログラミングの学習課程や研修などで、AWS Lambda や Serverless Framework まで学ぶケースは多くはありません。
そして、特に AWS の知識・経験が少ない方からは、
そもそも Lambda は普通のアプリケーション実行環境と何が違うのか分からない
「サーバレス」という単語が何を指しているのかよく分からない
serverless.yml という設定ファイルが何なのか分からない
といった疑問を耳にすることが多いです。
そこでこのコースでは、上記のような疑問を持っている方を主な対象者として、AWS Lambda について、サービスの概要や他の環境との違いといった基本に始まり、Serverless Framework による実践的な開発まで速習します。
学習の過程では、
Systems Manager Parameter Store
IAM
API Gateway
DynamoDB
CloudFormation
S3
AWS SDK
といった、Lambda と組み合わせてよく使う AWS のサービスについても学びます。
キーワード
AWS Lambda
Serverless Framework
更新履歴
2023/04/23「(AWSのアップデート対応)S3 バケットの構築について」を追加
2023/06/20「(追記)npx serverless deploy のエラーについて」を追加
2024/08/05「(追記)AWS Cloud9 新規利用終了のための代替環境について」を追加
2025/02/28
「(追記)使用する Node.js のバージョンについて」を追加
「(追記)インストールする Node.js のバージョンについて」を追加
「(追記)インストールする Serverless Framework のバージョンについて」を追加
「(追記)使用するパッケージのバージョンについて」を追加