
マイクロサービスのメリット、デメリットを紹介し、実務で本方式を採用するにあたってのメリットだけでなく注意点についても理解します。
ハンズオンで確認する観点(適用技術の自由度、機能の再利用性、耐障害性)と実施内容について理解します。
ハンズオンで構築するECサイトの業務、開発機能の概要と、フロントエンド、バックエンドの開発言語、デプロイ先の環境について理解します。
本ハンズオンで使用する各種AWSサービスの概要を紹介します。
ハンズオン実施前に環境構成を理解し、実施する作業概要と目的について理解します。
マイクロサービス構築、ハンズオン実施の流れについて説明します。AWSアカウント、管理者用IAMユーザをお持ちでない方は、本レクチャー添付のAWS公式手順を元にご準備をお願いします。
DynamoDB上にAPIで操作する対象となるユーザ情報、商品情報、在庫情報を格納するテーブルを作成します。
Lambda関数からDynamoDBにアクセスする権限を付与するためのロールを作成します。
各HTTPメソッド(POST/GET/PUT/DELETE)に対応する処理をPythonで作成します。
各HTTPメソッド(POST/GET/PUT/DELETE)に対応する処理をPythonで作成します。
<次のレクチャーの補足(2024/10/30追記)>
Lambda関数の動作不具合につながる恐れがあるため、下記2点に留意しハンズオンを進めてください。
・Lambda関数作成時、AWS Lambdaで選択するNode.jsのランタイムは、動画内で使用している「Node.js 16.x」になるべく近いバージョンを選択してください。
・ランタイムに「Node.js 18.x」以降のバージョンを選択した場合、コードソースの左ペインに表示されるファイルの拡張子はデフォルトでmjsとなりますが、jsに変更し関数を作成してください。(動画内で記述しているLambda関数はCommonJS形式で記述しています。Node.js 18.x以降では、ファイル拡張子mjsはCommonJS形式ではなく、必ずES Modules形式として扱われ、期待した動作とならない可能性があるためです。)
各HTTPメソッド(POST/GET/PUT/DELETE)に対応する処理をNode.jsで作成します。
POST、GET、PUT、DELETE各メソッド作成、Lambda関数との紐付け、マッピングテンプレート作成、ステージ定義、CORSの有効化、APIデプロイまで実施しインターネット経由でAPIが利用できるようにします。
POST、GET、PUT、DELETE各メソッド作成、Lambda関数との紐付け、マッピングテンプレート作成、ステージ定義、CORSの有効化、APIデプロイまで実施しインターネット経由でAPIが利用できるようにします。(マッピングテンプレートはユーザ情報操作同様のため、ユーザ情報操作のレクチャーよりダウンロードしたものをご使用ください。)
POST、GET、PUT、DELETE各メソッド作成、Lambda関数との紐付け、マッピングテンプレート作成、ステージ定義、CORSの有効化、APIデプロイまで実施しインターネット経由でAPIが利用できるようにします。(マッピングテンプレートはユーザ情報操作同様のため、ユーザ情報操作のレクチャーよりダウンロードしたものをご使用ください。)
REST APIで構築した各サービスを組合せることで、疑似的にECサイト構築用の機能(ユーザ情報登録~商品購入)を作成し、業務実施できることを確認することで、マイクロサービスの特徴である「適用技術の自由度」の確認を行います。
ハンズオン①で開発した各サービスの組合せ方法を変え、疑似的にECサイトのバックヤード業務機能(商品、在庫管理)を作成することで、マイクロサービスの特徴である「機能の再利用性」の確認を行います。
ハンズオン②で開発したバックヤード業務機能(商品、在庫管理)のうち、疑似的に在庫管理機能に障害を発生させます。障害の影響が在庫管理機能に限定され、商品管理業務は継続できることを確認することで、マイクロサービスの特徴である「耐障害性」の確認を行います。(クライアントサイドのソースコードはハンズオン②と同様のため、ハンズオン②のレクチャーでダウンロードしたファイルをご使用ください。)
各ハンズオンで使用したソースコードを元に、ご自身でECサイトの機能をマイクロサービスとして構築される際のご参考として、クライアントサイド、サーバサイドのデバッグ、ログ出力、不具合発生個所特定、対策手順について学びます。また、特に本講座の前提環境(API Gateway, Lambda)でマイクロサービス構築時に発生しがちなエラーと原因、対策方法について添付資料にてご確認いただけます。
<コースの概要>
本コースは前半の理論編でマイクロサービスの概要をご理解いただいた後、後半の実践編でAWS上の環境を使用して数多くのハンズオンを実施することで、より理解が深まる構成となっております。
ハンズオンではAmazon API Gateway、AWS Lambda、Amazon DynamoDB等のサービスを使用して、ECサイト構築、利用を通じてマイクロサービスの仕組みを実践的に学ぶことができます。
<他教材との違い>
本コースと他教材(書籍やYoutube動画教材等)との違いは以下の通りです。
・1本完結型コースであるためご自身でネット検索やマニュアル確認等を行う手間がかからない。
・なぜマイクロサービスが必要なのか、なぜその手順で設定するのか等、解説する技術や手順一つとってもその理由や背景を詳細に説明しているため途中で止まらずに受講できる。
・全レクチャー動画ダウンロード可能なため、場所を問わずどこからでも受講できる。
<コース受講後の姿>
本コース受講後には以下のスキルを自然と身に付けることができます。
・マイクロサービスの特徴や用途、メリットデメリットについて自分の言葉で説明できるようになる
・AWS各種サービス(Amazon API Gateway、AWS Lambda、Amazon DynamoDB等)を使用し、自力でREST API構築ができるようになる
・REST APIの組合せによりマイクロサービス構築ができるようになる
・マイクロサービス構築時に発生しがちなエラーと解決方法を理解し、自力で調査、対策(デバッグ、ログ出力・確認、改修)ができるようになる
<コースの内容>
本コースの内容は以下の通りです。
コース概要
本コース受講にあたって
自己紹介
本コースのねらい
本コースの内容
マイクロサービス概要
マイクロサービスのイメージ
マイクロサービスの特徴
マイクロサービスのメリット、デメリット
マイクロサービス構築ハンズオン(理論編)
ハンズオン実施概要
ECサイト業務・開発機能の概要
AWSサービス紹介
環境構成
構築の流れ
マイクロサービス構築ハンズオン(実践編)
DB作成
IAMロール作成
Lambda関数作成(ユーザ情報操作)
Lambda関数作成(商品情報操作)
Lambda関数作成(在庫情報操作)
REST API作成(ユーザ情報操作)-リソース作成-
REST API作成(ユーザ情報操作)-メソッド作成-
REST API作成(商品情報操作)-リソース作成-
REST API作成(商品情報操作)-メソッド作成-
REST API作成(在庫情報操作)-リソース作成-
REST API作成(在庫情報操作)-メソッド作成-
マイクロサービスハンズオン①
マイクロサービスハンズオン②
マイクロサービスハンズオン③
(付録)エラー解決虎の巻
AWS構築環境削除
削除対象リソースの確認
削除対象リソースの削除
ボーナスレクチャー
ボーナスレクチャー
<変更履歴>
・2023/8/13: Q&A起因で「以降のLambda関数作成系3レクチャー(ユーザ情報操作、商品情報操作、在庫情報操作)の補足」レクチャーを追加
・2023/9/25: 「3.5.構築の流れ」レクチャーの添付ファイル(AWSアカウント作成.txt)を最新化
・2023/8/13: Q&A起因で「以降のLambda関数作成系3レクチャー(ユーザ情報操作、商品情報操作、在庫情報操作)の補足」レクチャーを修正(動画内で選択しているランタイムNode.js 16.xが選択できない場合の指針を追記)
・2024/10/22: 「以降のLambda関数作成系3レクチャー(ユーザ情報操作、商品情報操作、在庫情報操作)の補足」レクチャーを削除(2024/10/30に追加したレクチャーに置き換え)
・2024/10/30: 「次のレクチャーの補足」レクチャーを追加(Node.jsのランタイムに関する補足をNode.jsで開発する在庫情報操作のレクチャーの直前に追加)
・2025/8/21: Q&A起因で「Lambda関数作成(在庫情報操作)」レクチャーの添付資料4ファイル(stock-post-function.txt、stock-get-function.txt、stock-put-function.txt、stock-delete-function.txt)をAWS SDK v3対応版に更新(Node.js 18.x以降環境対応)